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