Untitled
Функция ПечатьПеремещениеТоваровВПроизводство(ТабДокумент) Экспорт Макет = ПолучитьМакет("ПеремещениеТоваровВПроизводство"); ВыборкаТабличнойЧасти = ЭтотОбъект.Товары; ФорматВыводаКоличества = обПраво("ФорматВыводаКоличества", Права,,ЭтотОбъект); //Настроим макет отчёта //Удаляем колонку "ЯчейкаХранения", если ни в одной из номенклатур этот реквизит не заполнен //Увеличиваем за её счёт колонку "Товар" ЕстьЯчейкиХранения=Ложь; Для Каждого СтрокаТЧ Из ВыборкаТабличнойЧасти Цикл Если НЕ обЗначениеНеЗаполнено(СтрокаТЧ.Ячейка) Тогда ЕстьЯчейкиХранения = Истина; Прервать; КонецЕсли; КонецЦикла; Если НЕ ЕстьЯчейкиХранения Тогда ОбластьТовар = Макет.Область("Товар"); ОбластьЯчейкаХранения = Макет.Область("ЯчейкаХранения"); ОбластьТовар.ШиринаКолонки = ОбластьТовар.ШиринаКолонки + ОбластьЯчейкаХранения.ШиринаКолонки; Макет.УдалитьОбласть(ОбластьЯчейкаХранения,ТипСмещенияТабличногоДокумента.ПоВертикали); КонецЕсли; //Настроим макет ОбластьШапкаТаблицы = дкПривестиМакетПечатнойФормы(ЭтотОбъект,Макет); //вывод заголовка документа ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ЭтотОбъект); ТекстЗаголовка = дкПолучитьПредставление(ЭтотОбъект); ДополнительныеПараметры = спСоздатьПараметрыПолученияПредставления(); ДополнительныеПараметры.Вставить("ИспользоватьКПППодразделения"); ДополнительныеПараметры.Вставить("ПодразделениеКомпании", ПодразделениеКомпании); ОбластьМакета.Параметры.ПредставлениеОрганизации = спПолучитьПредставление(Организация, , ДополнительныеПараметры); ОбластьМакета.Параметры.ПредставлениеПоставщика = спПолучитьНаименование(ЭтотОбъект.СкладКомпании); ОбластьМакета.Параметры.ТекстЗаголовка = ТекстЗаголовка; ОбластьМакета.Параметры.ЗаказНарядПредставление=дкПолучитьПредставление(ЭтотОбъект.ДокументОснование); ОбластьМакета.Параметры.АвтомобильПредставление=ОтобразитьИнформациюОбАвтомобиле(); ОбластьМакета.Параметры.ПредставлениеПолучателя = спПолучитьНаименование(ЭтотОбъект.Цех); //вывод свойств СтрокаСвойств = дкПолучитьСтрокуСвойствДокумента(ЭтотОбъект); ОбластьМакета.Параметры.СтрокаСвойств = СтрокаСвойств; ТабДокумент.Вывести(ОбластьМакета); НомерСтраницы = 2; НомерСтраницыПред = НомерСтраницы; //теперь выводим шапку ТабДокумент.Вывести(ОбластьШапкаТаблицы); //готовим области строки ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьМакетаИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице"); СтруктураИтоговПоСтранице = Новый Структура(); //заполним параметры шапки таблицы для следующего листа ОбластьШапкаТаблицы.Параметры.ТекстЗаголовка = ТекстЗаголовка; ОбластьШапкаТаблицы.Параметры.НомерСтраницы = "Страница: " + НомерСтраницы; ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); // ++ пп_ПомощникПродаж ЕстьКод = обПраво("ВыводитьКодВПечатныхФормах", Права,, ЭтотОбъект); // -- пп_ПомощникПродаж //перебор строк Для каждого СтрокаТабличнойЧасти Из ВыборкаТабличнойЧасти Цикл //заполняем данные строки СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,ЭтотОбъект); // ++ пп_ПомощникПродаж // Если запрещен вывод кода, то для этого документа сделаем исключение Если Не ЕстьКод Тогда СтруктураСтроки.ТоварНаименование = СтруктураСтроки.Код + " " + СтруктураСтроки.ТоварНаименование; КонецЕсли; // -- пп_ПомощникПродаж //В возвращаемой структуре нет ключа "Ячейка", создадим его СтруктураСтроки.Вставить("Ячейка"); //Если ЯчейкаХранения не определена для данной номенклатуры, то печатаем пробел ЯчейкаДляПечати = СокрЛП(СтрокаТабличнойЧасти.Ячейка.Код); СтруктураСтроки.Ячейка = ?(обЗначениеНеЗаполнено(ЯчейкаДляПечати)," ",ЯчейкаДляПечати); ОбластьМакета.Параметры.Заполнить(СтруктураСтроки); //доп. области мсвДопОбластиПодвала = Неопределено; Если ВыборкаТабличнойЧасти.Индекс(СтрокаТабличнойЧасти) = ВыборкаТабличнойЧасти.Количество()-1 Тогда мсвДопОбластиПодвала = Новый Массив; мсвДопОбластиПодвала.Добавить(ОбластьПодвал); КонецЕсли; //выводим строку, делая проверку попадания на лист НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьМакета, ОбластьШапкаТаблицы, ОбластьМакетаИтогоПоСтранице, НомерСтраницы, СтруктураИтоговПоСтранице, ЭтотОбъект, мсвДопОбластиПодвала); //инициализация итогов по странице Если НомерСтраницы <> НомерСтраницыПред Тогда СтруктураИтоговПоСтранице = Новый Структура(); НомерСтраницыПред = НомерСтраницы; ОбластьШапкаТаблицы.Параметры.НомерСтраницы = "Страница: " + НомерСтраницы; КонецЕсли; //добавляем итоги дкДобавитьИтогиПоСтранице(СтрокаТабличнойЧасти,СтруктураИтоговПоСтранице); КонецЦикла; //Итогов по странице на этой печатной форме нет, но выводим для прорисовки завершающей чёрной линии снизу страницы дкВывестиИтогиПоСтранице(ТабДокумент,ОбластьМакетаИтогоПоСтранице,СтруктураИтоговПоСтранице,ЭтотОбъект); //Подвал //Выводим общее количество деталей ВсегоНаименований = Формат(ВыборкаТабличнойЧасти.Количество(), ФорматВыводаКоличества); ОбщееКоличество = Формат(ВыборкаТабличнойЧасти.Итог("Количество"), ФорматВыводаКоличества); ОбластьПодвал.Параметры.Итого = "Всего наименований " + ВсегоНаименований + " в количестве " + ОбщееКоличество; // Выводим представления и расшифровки подписей Отпустил = дкОтветственноеЛицо(ЭтотОбъект,"Отпустил"); Отпустил.ОтпустилПредставление = ?(обЗначениеНеЗаполнено(Отпустил.Отпустил),"","/ " + Отпустил.ОтпустилПредставление + " /"); ОбластьПодвал.Параметры.Заполнить(Отпустил); Получил = дкОтветственноеЛицо(ЭтотОбъект,"Получил"); Получил.ПолучилПредставление = ?(обЗначениеНеЗаполнено(Получил.Получил),"","/ " + Получил.ПолучилПредставление + " /"); ОбластьПодвал.Параметры.Заполнить(Получил); НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьПодвал, , , НомерСтраницы,,ЭтотОбъект); Возврат ТабДокумент; КонецФункции //ПечатьПеремещениеТоваровВПроизводство()
Leave a Comment