Второй способ связан с тем, что мы заранее должны прописать некоторый код в тех формах, в которых нужно что-то обновлять. Но зато тут уже мы можем полностью манипулировать этими формами так, как хочется.
Суть этого способа заключается в том, что существует метод глобального контекста Оповестить(). Он отсылает оповещение всем созданным (не обязательно открытым) формам. Если в форме написан обработчик события ОбработкаОповещения(), то в этом обработчике можно обработать это сообщение и выполнить нужную модификацию формы.
Примечание
Пример можно посмотреть в демонстрационной базе «Обновление динамических списков», обработка ВариантыОбновления, локальная команда формы Оповестить.
Например, как и раньше, в серверной процедуре добавляется новый товар. После этого вызывается метод Оповестить(), в котором передается идентификатор события – произвольная строка, по которой в форме можно будет понять, какой алгоритм следует выполнить (листинг 3.71).
Листинг 3.71. Использование метода «Оповестить()»
СсылкаНаНовыйЭлемент = ДобавитьЭлементНаСервере ();
Оповестить("ОбновитьСписокТоваров");
Во всех формах, в которых может понадобиться обновление списка товаров, создается обработчик события ОбработкаОповещения(). Например, он может выглядеть следующим образом (листинг 3.72).
Листинг 3.72. Обработчик события «Обработка оповещения»
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ОбновитьСписокТоваров" Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецПроцедуры
В результате во всех открытых формах, в которых существует обработчик события ОбработкаОповещения(), появится новый товар. В том числе и в тех формах, которые расположены на начальной странице (рис. 3.98).

Рис. 3.98. Обновление данных методом «Оповестить()»