1С. Создание внешней печатной формы на основе встроенной.

Зачастую возникает потребность сделать внешнюю печатную форму, набор данных для которой схож с какой-нибудь из встроенных штатных печатных форм.

Например, в программе «1С Управление торговлей 11.2» нам нужно создать печатную форму «Спецификация товара», которая будет распечатываться из документа «Заказ клиента».

Набор данных для новой внешней печатной формы схож с набором данных для встроенной печатной формы «Заказ клиента». Поэтому, выберем эту печатную форму в качестве основы для конструирования новой формы.

Создадим заготовку внешней печатной формы, как описано в статье «Создание внешнего отчёта, обработки, печатной формы«.

Потом откроем менеджер объекта конфигурации Документ «Заказ клиента», и найдём в нём Функцию «ПолучитьДанныеДляПечатнойФормыЗаказаНаТоварыУслуги». Скопируем её в модуль объекта нашей внешней печатной формы. В этой функции находится запрос, который получает данные для печатной формы. Мы можем изменить запрос, чтобы получить в нём какие-то дополнительные данные и отменить получение ненужных.

Найдём объект конфигурации Обработка «ПечатьЗаказовНаТоварыУслуги». В нём хранится макет печатной формы «Заказ клиента». Скопируем его во внешнюю печатную форму. Переименуем макет в «ПФ_MXL_Спецификация» и доработаем его под свои нужды. Из модуля менеджера обработки скопируем процедуру Печать, а также другие процедуры и функции, необходимые для печати. Их можно определить по названию. Естественно все эти процедуры и функции мы «затачиваем» под свои задачи.

Например, изменяем Функцию СформироватьПечатнуюФормуЗаказаНаТоварыИУслуги таким образом, чтобы переменная ДанныеДляПечати формировалась из процедуры нашей внешней печатной формы.

Важный момент: в процедуре ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги мы должны вместо штатного макета подставить свой.

Макет выбиратся здесь:

Пока ДанныеПечати.Следующий() Цикл
		
		Макет = УправлениеПечатью.МакетПечатнойФормы(ИмяМакета);

Мы заменим вторую строку приведённого кода на такую:

Макет = ПолучитьМакет("ПФ_MXL_Спецификация");

Всё остальное, что называется, по вкусу.

Подключается внешняя обработка в разделе Администрирование —> Дополнительные обработки.

О том, как выполнять отладку внешних печатных форм и обработок, можно почитать здесь.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *