1С:Предприятие 8.2 /
Разработчикам /
Разработка пользовательских интерфейсов
Обновление списков при интерактивных действиях пользователя
1. Плат форма1С:Предприятиепо умолчанию обновляет содержимое динамических списков при выполнении пользователе м стандартных команд по изменению элементов этого списка (Записать, Провести, Пометить на удаление и т.п.) и при добавлении новых элементов. Но в ряде ниже перечисленных случаев такое обновление следует предусмотреть явно в прикладном коде.
2. Команды, которые изменяют объекты и размещаются в форме списка, должны заботиться об обновлении списка объектов после своего выполнения. Например, после изменения одного объекта рекомендуется вызывать метод ОповеститьОбИзменении:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ОбъектСсылка = ПараметрКоманды; // Меняем объект // ... ОповеститьОбИзменении(ОбъектСсылка); КонецПроцедуры
При изменении нескольких объектов целесообразно обновлять список однократно, в конце операции:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Для Каждого ОбъектСсылка Из ПараметрКоманды Цикл // Меняем объект // ... КонецЦикла; ОповеститьОбИзменении(ТипЗнч(ПараметрКоманды[0])); КонецПроцедуры
3. Также должно быть обеспечено обновление данных в динамическом списке, у которого не назначена основная таблица. Такие динамические списки могут отображать данные из нескольких таблиц.
3.1 Если данные добавляются или изменяются командой, расположенной в форме динамического списка, то необходимо обновить список явно после выполнения команды.
3.2 Если данные изменяются в какой-либо другой форме (например, в форме объекта), то необходимо организовать обновление списка через оповещение. Для этого в каждой форме объекта, данные которого выводятся в динамическом списке, следует реализовать обработчик события ПослеЗаписи с использованием метода Оповестить:
Оповестить ("Запись_<ИмяОбъекта>", ПараметрыОповещения, ОбъектСсылка);
где
- Запись_<ИмяОбъекта> - имя события, в котором <ИмяОбъекта> - имя объекта, как оно задано в метаданных. Например, для документа "Расходная накладная" имя события будет "Запись_РасходнаяНакладная".
- ПараметрыОповещения – как правило , это параметр события ПослеЗаписи формы объекта. Состав свойств структуры может быть расширен исходя из потребностей прикладной логики.
- ОбъектСсылка – ссылка на записываемый объект.
Пример:
&НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) Оповестить("Запись_РасходнаяНакладная", ПараметрыЗаписи, Объект.Ссылка); КонецПроцедуры
Затем в обработчике событияОповещение в форме динамического списка разместить код по обновлению динамического списка вида:
&НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если Врег(ИмяСобытия) = Врег("Запись_РасходнаяНакладная") Или Врег(ИмяСобытия) = Врег("Запись_НакладнаяНаПеремещение") Тогда Элементы.СписокНакладных.Обновить(); КонецЕсли; КонецПроцедуры
При этом имена событий следует проверять явным образом, чтобы исключить неоправданное обновление списка.
См. также
- Особенности реализации команд для форм списков
Другие материалы по теме:
конфигурирование
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Разработка пользовательских интерфейсов
Другие материалы по теме:
Графики для регистров расчета с поддержкой периода действия и особенности их конфигурирования

Мы на Facebook