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