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