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

Метод «ОповеститьОбИзменении()»

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

Этот метод уведомит все динамические списки, расположенные в созданных на клиенте формах, об изменении этого объекта, и они обновят свои данные. Но есть особенность: этот метод не обновит те динамические списки, у которых не задана основная таблица.

Преимущество этого способа заключается в том, что нам ничего не нужно знать об открытых формах, не нужно «влезать» внутрь этих форм – платформа все сделает сама.

Примечание

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

Чтобы посмотреть, как будут обновляться различные формы (включая формы, размещенные на начальной странице), в конфигурации созданы «обычная» основная форма списка и специальная форма списка справочника Товары, в которой для динамического списка не назначена основная таблица.

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

Рис. 3.96. Начальная страница

Кроме того, обе формы списка программно открыты в окнах клиентского приложения из модуля управляемого приложения при начале работы системы (листинг 3.68).

Листинг 3.68. Модуль управляемого приложения

Процедура ПриНачалеРаботыСистемы()

 

ОткрытьФорму("Справочник.Товары.ФормаСписка");

ОткрытьФорму("Справочник.Товары.Форма.СпециальнаяФормаСписка");

 

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

Предположим, в модуле формы обработки существует серверная функция, добавляющая новый элемент в справочник Товары (листинг 3.69).

Листинг 3.69. Серверная функция

&НаСервереБезКонтекста

Функция ДобавитьЭлементНаСервере ()

 

ОбъектТовара = Справочники.Товары.СоздатьЭлемент();

ОбъектТовара.Наименование = "Новый товар " + Строка(ТекущаяДата());

ОбъектТовара.Записать();

 

Возврат ОбъектТовара.Ссылка;

 

КонецФункции

Эта функция возвращает ссылку на тот товар, который был добавлен.

А в процессе выполнения некоторого алгоритма на клиенте выполняется следующий код (листинг 3.70).

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

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

ОповеститьОбИзменении(СсылкаНаНовыйЭлемент);

Сначала вызывается серверная функция и добавляется новый товар, а затем полученная ссылка передается в метод ОповеститьОбИзменении().

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

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

ПРИМЕЧАНИЕ

В нижней части рисунка для лучшего сравнения результатов обновления формы списка товаров расположены рядом друг с другом в рабочей области основного окна (не на начальной странице) приложения.

Назад: Глава 3.14. Обновление данных в динамических списках
Дальше: Метод «Оповестить()»