Зачастую возникает потребность сделать внешнюю печатную форму, набор данных для которой схож с какой-нибудь из встроенных штатных печатных форм.
Например, в программе «1С Управление торговлей 11.2» нам нужно создать печатную форму «Спецификация товара», которая будет распечатываться из документа «Заказ клиента».
Набор данных для новой внешней печатной формы схож с набором данных для встроенной печатной формы «Заказ клиента». Поэтому, выберем эту печатную форму в качестве основы для конструирования новой формы.
Создадим заготовку внешней печатной формы, как описано в статье «Создание внешнего отчёта, обработки, печатной формы«.
Потом откроем менеджер объекта конфигурации Документ «Заказ клиента», и найдём в нём Функцию «ПолучитьДанныеДляПечатнойФормыЗаказаНаТоварыУслуги». Скопируем её в модуль объекта нашей внешней печатной формы. В этой функции находится запрос, который получает данные для печатной формы. Мы можем изменить запрос, чтобы получить в нём какие-то дополнительные данные и отменить получение ненужных.
Найдём объект конфигурации Обработка «ПечатьЗаказовНаТоварыУслуги». В нём хранится макет печатной формы «Заказ клиента». Скопируем его во внешнюю печатную форму. Переименуем макет в «ПФ_MXL_Спецификация» и доработаем его под свои нужды. Из модуля менеджера обработки скопируем процедуру Печать, а также другие процедуры и функции, необходимые для печати. Их можно определить по названию. Естественно все эти процедуры и функции мы «затачиваем» под свои задачи.
Например, изменяем Функцию СформироватьПечатнуюФормуЗаказаНаТоварыИУслуги таким образом, чтобы переменная ДанныеДляПечати формировалась из процедуры нашей внешней печатной формы.
Важный момент: в процедуре ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги мы должны вместо штатного макета подставить свой.
Макет выбиратся здесь:
Пока ДанныеПечати.Следующий() Цикл Макет = УправлениеПечатью.МакетПечатнойФормы(ИмяМакета);
Мы заменим вторую строку приведённого кода на такую:
Макет = ПолучитьМакет("ПФ_MXL_Спецификация");
Всё остальное, что называется, по вкусу.
Подключается внешняя обработка в разделе Администрирование —> Дополнительные обработки.
О том, как выполнять отладку внешних печатных форм и обработок, можно почитать здесь.
Добавить комментарий