Подсистема «Печать» библиотеки стандартных подсистем предназначена для формирования печатных форм объектов на основе табличных макетов (формат MXL) или макетов офисных документов в форматах Microsoft Word и OpenOffice.org Writer.
В этой подсистеме входит общая форма Печать документа для просмотра, редактирования и печати сформированных печатных форм, а также для отправки печатной формы по электронной почте и сохранения в файл. Данная форма вызывается из документов и списков документов программы по команде Печать.( см рис 1)
Рис 1 Общая форма Печать документов библиотеки БСП
Мне работодатель дал следующее техническое задание – установить статус распечатано на определенные важные виды документов в момент, когда пользователь отправляет на печать документ. Задача очень проста, но оказалась интересной из-за недоработки в модуле общей формы Печать документов функционала – а именно, не дороботка в теле процедуры печать. Мне пришлось изменить программный код в этой процедуре и добавить строку вызова метода глобального контекста Оповестить :
Отметим, что структура параметры этой формы имеет много свойств, одно из них – ПараметрКоманды, которое содержит массив ссылок объектов ( документов). Кроме того, методОповестить посылает оповещение всем созданным формам и всем подключенным через метод ПодключитьОбработчикОповещения процедурам модуля управляемого приложения (модуля обычного приложения) или общего модуля.
После этого, в модуле формы документа, а также в модуле формы списка документа нужно подключить процедуру обработчика оповещения, куда будут переданы указанные параметры оповещения. Поэтому, в модуле этих форм , в обработчике события ОбработкаОповещения я добавил следующий программный код:
&НаКлиентеПроцедураОбработкаОповещения(ИмяСобытия, Параметр, Источник)
ЕслиИмяСобытия = "Напечатано" и Источник="ПечатьДокументов"
и ТипЗнч(Параметр) = Тип("Массив")Тогда УстановитьСтатусРаспечатаноНасервере(Параметр); // запись в регистре сведений Статусы документа
КонецЕсли;КонецПроцедуры