![]() |
![]() |
![]() |
|
Внешний отчет на УНФке Заказ на производство | ☑ | ||
---|---|---|---|---|
0
alexodel
04.04.19
✎
14:29
|
Здравствуйте дорогие профессионалы, поделитесь пожалуйста со мной опытом
т.е. Пишу внешку которая должна формировать при нажатии кнопки таблице... т.е. нужны вывести табличную часть документа из УНФ 1.6 Заказ на производство и не могу вынести табличную часть спецификации детально к каждой продукции... Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Перем ПервыйДокумент, НомерСтрокиНачало, Ошибки; ТабличныйДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ДанныеПечати = Новый Структура; Запрос = Новый Запрос; Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов); Запрос.Текст = "ВЫБРАТЬ | ЗаказНаПроизводство.Ссылка КАК Ссылка, | ЗаказНаПроизводство.Номер КАК Номер, | ЗаказНаПроизводство.Дата КАК ДатаДокумента, | ЗаказНаПроизводство.Организация КАК Организация, | ЗаказНаПроизводство.Ответственный КАК Исполнитель, | ЗаказНаПроизводство.ЗаказПокупателя КАК Заказ, | ЗаказНаПроизводство.Старт КАК ДатаЗапуска, | ЗаказНаПроизводство.Финиш КАК ДатаВыпуска, | ЗаказНаПроизводство.СтруктурнаяЕдиница КАК Подразделение, | ЗаказНаПроизводство.Организация.Префикс КАК Префикс, | ЗаказНаПроизводство.Продукция.( | НомерСтроки КАК НомерСтроки, | ВЫБОР | КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """" | ТОГДА ЗаказНаПроизводство.Продукция.Номенклатура.Наименование | ИНАЧЕ ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное | КОНЕЦ КАК ПредставлениеНоменклатуры, | Номенклатура.Артикул КАК Артикул, | Номенклатура.Код КАК Код, | Характеристика КАК Характеристика, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Количество КАК Количество | ) КАК ТаблицаПродукция, | ЗаказНаПроизводство.Запасы.( | НомерСтроки КАК НомерСтроки, | ВЫБОР | КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """" | ТОГДА ЗаказНаПроизводство.Запасы.Номенклатура.Наименование | ИНАЧЕ ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное | КОНЕЦ КАК ПредставлениеНоменклатуры, | Номенклатура.Артикул КАК Артикул, | Номенклатура.Код КАК Код, | Характеристика КАК Характеристика, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Количество КАК Количество | ) КАК ТаблицаЗапасы |ИЗ | Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство |ГДЕ | ЗаказНаПроизводство.Ссылка В(&МассивОбъектов) | |УПОРЯДОЧИТЬ ПО | Ссылка, | НомерСтроки"; Продукция = Запрос.Выполнить().Выбрать(); Пока Продукция.Следующий() Цикл ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");// НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(Продукция.ДатаДокумента, Продукция.Номер, Продукция.Префикс); ДатаДокумента = Формат(Продукция.ДатаДокумента, "ДЛФ=DD"); ДанныеПечати.Вставить("ТекстЗаголовка", СтрШаблон(НСтр("ru ='Требование на склад № %1 от %2'"), НомерДокумента, ДатаДокумента)); ОбластьМакета.Параметры.Заполнить(Продукция); ОбластьМакета.Параметры.Заполнить(ДанныеПечати); ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("ШапкаПродукция"); ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого1"); ТаблицаПродукция = Продукция.ТаблицаПродукция.Выгрузить(); ПараметрыНоменклатуры = Новый Структура; ОбластьМакетаСтрока = Макет.ПолучитьОбласть("СтрокаПродукция"); Для каждого СтрокаТабличнойЧастиПродукция Из ТаблицаПродукция Цикл ДанныеПечати.Очистить(); ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиПродукция.НомерСтроки); ПараметрыНоменклатуры.Очистить(); ПараметрыНоменклатуры.Вставить("Содержание", Неопределено); ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧастиПродукция.ПредставлениеНоменклатуры); ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиПродукция.Характеристика); ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиПродукция.Артикул); ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Ложь); ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(ПараметрыНоменклатуры)); ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(СтрокаТабличнойЧастиПродукция)); ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиПродукция.Количество); ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиПродукция.ЕдиницаИзмерения); ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати); ТабличныйДокумент.Вывести(ОбластьМакетаСтрока); // // цикл спецификации // ОбластьМакетаСтрокаСпецификации = Макет.ПолучитьОбласть("СтрокаСпецификации"); ЗапросСпецификация = Новый Запрос; ЗапросСпецификация .УстановитьПараметр("МассивОбъектов", МассивОбъектов); ЗапросСпецификация.Текст= "ВЫБРАТЬ | ЗаказНаПроизводство.Ссылка КАК Ссылка, | ЗаказНаПроизводство.ЗаказПокупателя КАК Заказ, | ЗаказНаПроизводство.СтруктурнаяЕдиница КАК Подразделение, | ЗаказНаПроизводство.Организация.Префикс КАК Префикс, | ЗаказНаПроизводство.Продукция.( | НомерСтроки КАК НомерСтроки, | ВЫБОР | КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """" | ТОГДА ЗаказНаПроизводство.Продукция.Номенклатура.Наименование | ИНАЧЕ ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное | КОНЕЦ КАК ПредставлениеНоменклатуры, | Номенклатура.Артикул КАК Артикул, | Номенклатура.Код КАК Код, | Характеристика КАК Характеристика, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Количество КАК Количество | ) КАК ТаблицаПродукция, | ЗаказНаПроизводство.Запасы.( | НомерСтроки КАК НомерСтроки, | ВЫБОР | КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """" | ТОГДА ЗаказНаПроизводство.Запасы.Номенклатура.Наименование | ИНАЧЕ ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное | КОНЕЦ КАК ПредставлениеНоменклатуры, | Номенклатура.Артикул КАК Артикул, | Номенклатура.Код КАК Код, | Характеристика КАК Характеристика, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Количество КАК Количество | ) КАК ТаблицаЗапасы |ИЗ | Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство |ГДЕ | ЗаказНаПроизводство.Ссылка В(&МассивОбъектов) | |УПОРЯДОЧИТЬ ПО | Ссылка, | НомерСтроки"; Спецификация = Запрос.Выполнить().Выбрать(); ОбластьМакетаСтрокаСпецификации = Макет.ПолучитьОбласть("СтрокаСпецификации"); Пока Спецификация.Следующий() Цикл ТаблицаСпецификация = Спецификация.ТаблицаЗапасы.Выгрузить(); Для каждого СтрокаТабличнойЧастиСпецификации Из ТаблицаСпецификация Цикл ДанныеПечати.Очистить(); ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиСпецификации.НомерСтроки); ПараметрыНоменклатуры.Очистить(); ПараметрыНоменклатуры.Вставить("Содержание", Неопределено); ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧастиСпецификации.ПредставлениеНоменклатуры); ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиСпецификации.Характеристика); ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиСпецификации.Артикул); ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Истина); //Ложь ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(ПараметрыНоменклатуры)); ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(СтрокаТабличнойЧастиСпецификации)); ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиСпецификации.Количество); ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиСпецификации.ЕдиницаИзмерения); ОбластьМакетаСтрокаСпецификации.Параметры.Заполнить(ДанныеПечати); ТабличныйДокумент.Вывести(ОбластьМакетаСтрокаСпецификации); КонецЦикла; // КонецЦикла; КонецЦикла; ТабличныйДокумент.Вывести(ОбластьМакетаИтого); КонецЦикла; // МАТЕРИАЛЫ Материалы = Запрос.Выполнить().Выбрать(); ОбластьМакетаШапкаМатериалов = Макет.ПолучитьОбласть("ШапкаМатериалов"); ТабличныйДокумент.Вывести(ОбластьМакетаШапкаМатериалов); ОбластьМакетаСтрока = Макет.ПолучитьОбласть("СтрокаМатериалов"); ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого2"); Пока Материалы.Следующий() Цикл ТаблицаЗапасы = Материалы.ТаблицаЗапасы.Выгрузить(); Для каждого СтрокаТабличнойЧастиЗапасы Из ТаблицаЗапасы Цикл ДанныеПечати.Очистить(); ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиЗапасы.НомерСтроки); ПараметрыНоменклатуры.Очистить(); ПараметрыНоменклатуры.Вставить("Содержание", Неопределено); ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧастиЗапасы.ПредставлениеНоменклатуры); ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиЗапасы.Характеристика); ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиЗапасы.Артикул); ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Ложь); ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(ПараметрыНоменклатуры)); ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(СтрокаТабличнойЧастиЗапасы)); ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиЗапасы.Количество); ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиЗапасы.ЕдиницаИзмерения); ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати); ТабличныйДокумент.Вывести(ОбластьМакетаСтрока); КонецЦикла; ТабличныйДокумент.Вывести(ОбластьМакетаИтого); ОбластьМакета = Макет.ПолучитьОбласть("Подписи"); ОбластьМакета.Параметры.Заполнить(Материалы); ТабличныйДокумент.Вывести(ОбластьМакета); КонецЦикла; Возврат ТабличныйДокумент; КонецФункции Можете посмотреть макет здесь http://prntscr.com/n7dt6a Жду от Вас..... |
|||
1
runoff_runoff
04.04.19
✎
15:57
|
а где заполнение списка ОбъектыПечати?..
|
|||
2
alexodel
04.04.19
✎
17:56
|
(1) ну, в этой теле цикл выдает одно и то же спецификацию... а мне нужно каждого продукта свою спецификацию...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |