Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Метод «ОповеститьОбИзменении()»
Дальше: Обновление формы извне

Метод «Оповестить()»

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

Суть этого способа заключается в том, что существует метод глобального контекста Оповестить(). Он отсылает оповещение всем созданным (не обязательно открытым) формам. Если в форме написан обработчик события ОбработкаОповещения(), то в этом обработчике можно обработать это сообщение и выполнить нужную модификацию формы.

Примечание

Пример можно посмотреть в демонстрационной базе «Обновление динамических списков», обработка ВариантыОбновления, локальная команда формы Оповестить.

Например, как и раньше, в серверной процедуре добавляется новый товар. После этого вызывается метод Оповестить(), в котором передается идентификатор события – произвольная строка, по которой в форме можно будет понять, какой алгоритм следует выполнить (листинг 3.71).

Листинг 3.71. Использование метода «Оповестить()»

СсылкаНаНовыйЭлемент = ДобавитьЭлементНаСервере ();

Оповестить("ОбновитьСписокТоваров");

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

Листинг 3.72. Обработчик события «Обработка оповещения»

&НаКлиенте

Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

 

Если ИмяСобытия = "ОбновитьСписокТоваров" Тогда

Элементы.Список.Обновить();

 

КонецЕсли;

 

КонецПроцедуры

В результате во всех открытых формах, в которых существует обработчик события ОбработкаОповещения(), появится новый товар. В том числе и в тех формах, которые расположены на начальной странице (рис. 3.98).

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

Назад: Метод «ОповеститьОбИзменении()»
Дальше: Обновление формы извне