Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Внешние отчеты т.е. на макет внешнего отчета нужно подтянуть со справочника СПЕЦИФИКАЦИИ

Внешние отчеты т.е. на макет внешнего отчета нужно подтянуть со справочника СПЕЦИФИКАЦИИ
Я
   alexodel
 
03.04.19 - 10:21
Доброго времени суток, дорогие коллеги!
Будьте добры... нужно вытянуть из документа заказ на производство УНФ 1.6 необходимые параметры на внешний отчет. Необходимым параметром является справочник СПЕЦИФИКАЦИЯ, которая взаимосвязанная со справочником Номенклатуры
Если короче:

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказНаПроизводство.Ссылка КАК Ссылка,
    |    ЗаказНаПроизводство.Номер КАК Номер,
    |    ЗаказНаПроизводство.Дата КАК ДатаДокумента,
    |    ЗаказНаПроизводство.Организация КАК Организация,
    |    ЗаказНаПроизводство.Ответственный КАК Исполнитель,
    |    ЗаказНаПроизводство.ЗаказПокупателя КАК Заказ,
    |    ЗаказНаПроизводство.Старт КАК ДатаЗапуска,
    |    ЗаказНаПроизводство.Финиш КАК ДатаВыпуска,
    |    ЗаказНаПроизводство.СтруктурнаяЕдиница КАК Подразделение,
    |    ЗаказНаПроизводство.Организация.Префикс КАК Префикс,
    |    ЗаказНаПроизводство.Продукция.(
    |        НомерСтроки КАК НомерСтроки,
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """"
    |                ТОГДА ЗаказНаПроизводство.Продукция.Номенклатура.Наименование
    |            ИНАЧЕ ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное
    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.Код КАК Код,
    |        Характеристика КАК Характеристика,
    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Количество КАК Количество
    |    ) КАК ТаблицаПродукция,
    |    ЗаказНаПроизводство.Запасы.(
    |        НомерСтроки КАК НомерСтроки,
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """"
    |                ТОГДА ЗаказНаПроизводство.Запасы.Номенклатура.Наименование
    |            ИНАЧЕ ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное
    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.Код КАК Код,
    |        Характеристика КАК Характеристика,
    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Количество КАК Количество
    |    ) КАК ТаблицаЗапасы
    |ИЗ
    |    Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
    |ГДЕ
    |    ЗаказНаПроизводство.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка,
    |    НомерСтроки";



    //
    //    ПРОДУКЦИЯ
    //
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.Покупатель = "покупатель";
    ОбластьМакета.Параметры.Подразделение = "Подразделение";
    ОбластьМакета.Параметры.ДатаЗапуска = "ДатаЗапуска";
    ОбластьМакета.Параметры.Финиш = "Финиш";
    ОбластьМакета.Параметры.Отвественный = "Отвественный";
    
    ОбластьМакета.Параметры.НомерЗаказаНаПроизводство = "НомерЗаказаНаПроизводство";
    ОбластьМакета.Параметры.ДатаЗаказНаПроизводство = "ДатаЗаказНаПроизводство";
    ОбластьМакета.Параметры.НомерЗаказаПокупателя = "НомерЗаказаПокупателя";
    ОбластьМакета.Параметры.ДатаЗаказПокупателя = "ДатаЗаказПокупателя";
    
    Продукция = Запрос.Выполнить().Выбрать();
    
    
    Пока Продукция.Следующий() Цикл
        
        //Запросспец = Новый Запрос;
        //Запросспец.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
        //Запросспец.Текст =
        //    "ВЫБРАТЬ
        //    |    ЗаказНаПроизводство.Запасы.(
        //    |        НомерСтроки КАК НомерСтроки,
        //    |        ВЫБОР
        //    |            КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """"
        //    |                ТОГДА ЗаказНаПроизводство.Запасы.Номенклатура.Наименование
        //    |            ИНАЧЕ ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное
        //    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
        //    |        Номенклатура.Артикул КАК Артикул,
        //    |        Номенклатура.Код КАК Код,
        //    |        Характеристика КАК Характеристика,
        //    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        //    |        Количество КАК Количество
        //    |    ) КАК ТаблицаЗапасы
        //    |ИЗ
        //    |    Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
        //    |ГДЕ
        //    |    ЗаказНаПроизводство.Ссылка В(&МассивОбъектов)
        //    |
        //    |УПОРЯДОЧИТЬ ПО
        //    |    НомерСтроки";
        //Спецификация=Запросспец.Выполнить().Выбрать();
        //Для каждого СтрокаТабличнойЧастиПродукция Из Спецификация Цикл
        //    xx=СтрокаТабличнойЧастиПродукция.ПредставлениеНоменклатуры;
        //    xx=СтрокаТабличнойЧастиПродукция.Артику;
        //    xx=СтрокаТабличнойЧастиПродукция.Код;
        //    xx=СтрокаТабличнойЧастиПродукция.Характеристика;
        //    xx=СтрокаТабличнойЧастиПродукция.ЕдиницаИзмерения;
        //    xx=СтрокаТабличнойЧастиПродукция.Количество;
        //КонецЦикла;
        //
        ТаблицаПродукция = Продукция.ТаблицаПродукция.Выгрузить();
        ПараметрыНоменклатуры = Новый Структура;
        ОбластьМакетаСтрока = Макет.ПолучитьОбласть("СтрокаПродукция");
        
        
        Для каждого СтрокаТабличнойЧастиПродукция Из ТаблицаПродукция Цикл
            
            ДанныеПечати.Очистить();
            ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиПродукция.НомерСтроки);
            
            ПараметрыНоменклатуры.Очистить();
            ПараметрыНоменклатуры.Вставить("Содержание", Неопределено);
            ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧастиПродукция.ПредставлениеНоменклатуры);
            ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиПродукция.Характеристика);
            ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиПродукция.Артикул);
            ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Ложь);
            
            ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(ПараметрыНоменклатуры));
            ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(СтрокаТабличнойЧастиПродукция));
            
            ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиПродукция.Количество);
            ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиПродукция.ЕдиницаИзмерения);
            
            ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
            
        КонецЦикла;
        
    КонецЦикла;
    
    
    
    //
    //    МАТЕРИАЛЫ
    //
    Материалы = Запрос.Выполнить().Выбрать();
    ОбластьМакетаШапкаМатериалов = Макет.ПолучитьОбласть("ШапкаМатериалов");    
    ТабличныйДокумент.Вывести(ОбластьМакетаШапкаМатериалов);
    ОбластьМакетаСтрока = Макет.ПолучитьОбласть("СтрокаМатериалов");
    
    Пока Материалы.Следующий() Цикл
        
        ТаблицаЗапасы = Материалы.ТаблицаЗапасы.Выгрузить();
        Для каждого СтрокаТабличнойЧастиЗапасы Из ТаблицаЗапасы Цикл
            
            ДанныеПечати.Очистить();
            ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиЗапасы.НомерСтроки);
            
            ПараметрыНоменклатуры.Очистить();
            ПараметрыНоменклатуры.Вставить("Содержание", Неопределено);
            ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧастиЗапасы.ПредставлениеНоменклатуры);
            ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиЗапасы.Характеристика);
            ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиЗапасы.Артикул);
            ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Ложь);
            
            ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(ПараметрыНоменклатуры));
            ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(СтрокаТабличнойЧастиЗапасы));
            
            ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиЗапасы.Количество);
            ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиЗапасы.ЕдиницаИзмерения);
            
            ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
            
        КонецЦикла;
    
        
        
    КонецЦикла;

вот код, в коде есть ошибки на итератор...
 
 
   sqr4
 
1 - 03.04.19 - 10:39
(0) да там и на строку пади указатель есть в которой ошибка, но ты никому не говори, а то больно просто получается

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует