Оповестить о печати документов
В этой подсистеме входит общая форма Печать документа для просмотра, редактирования и печати сформированных печатных форм, а также для отправки печатной формы по электронной почте и сохранения в файл. Данная форма вызывается из документов и списков документов программы по команде Печать.( см рис 1)

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