Описание
Обработка оповещения (ОбработкаОповещения() – стандартный обработчик встроенного языка 1С, находящийся на форме объекта, вызываемый с помощью Процедуры Оповестить().
Обработка оповещения инициализируется во всех открытых, на данный момент, формах, в которых описана процедура ОбработкаОповещения(), а так же, инициализируются процедуры, подключенные с помощью обработчика ПодключитьОбработчикОповещения().
Параметры
В Обработку оповещения можно передать параметры:
· «Имя события» - ключ в виде строки, по которому можно, например, сделать проверку: из какой именно процедуры Оповестить() инициализирована ОбработкаОповещения(), и установить отбор: какие именно ОбработкиОповещения() запустить.
· «Параметр» - произвольный параметр, которым можно передать любую дополнительную информацию из формы-источника в форму-приемник (параметр, таблицу с данными и т.д.).
· «Источник» - источник события, например форма с процедурой Оповестить(), из которой инициализируется ОбработкаОповещения().
Пример использования
Есть 3 формы: «Форма1», «Форма2» и «Форма3». В формах: «Форма1», «Форма2» описаны одинаковые процедуры «ВыполнитьКоманду()», с той лишь разницей, что в из первой передается ключ – «Закрыть», а из второй – «Не закрывать».
В форме «Форма3» описана процедура ОбработкаОповещения(), и после ее инициализации процедурой ВыполнитьКоманду() из формы «Форма1», параметру «ИмяСобытия» присвоится значение «Закрыть», и после проверки, «Форма3» будет закрыта. Однако, если ОбработкаОповещения() будет инициализироваться процедурой ВыполнитьКоманду() из формы «Форма2», «Форма3» – не закроется, так как не пройдет проверку. Таким образом мы можем контролировать: на какие именно оповещения «Форма3» будет «реагировать», а на какие нет:
Форма1
&НаКлиенте
Процедура ВыполнитьКоманду(Команда)
Оповестить("Закрыть", Истина, ЭтаФорма);
КонецПроцедуры
Форма2
&НаКлиенте
Процедура ВыполнитьКоманду(Команда)
Оповестить("Не закрывать", Истина, ЭтаФорма);
КонецПроцедуры
Форма3
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Закрыть" Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
Вывод
Обработка оповещения – удобный и полезный инструмент по передаче параметров между открытыми формами, а так же позволяющий «реагировать» открытым ранее формам на какие-либо события, изменения или действия пользователя.