Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамРазработка пользовательских…

1С:Предприятие 8.2 /
Разработчикам /
Разработка пользовательских интерфейсов

Оглавление

Обновление списков при интерактивных действиях пользователя

См. также

 

1. Платформа 1С:Предприятиепо умолчанию обновляет содержимое динамических списков при выполнении пользователем стандартных команд по изменению элементов этого списка (Записать, Провести, Пометить на удаление и т.п.) и при добавлении новых элементов. Но в ряде ниже перечисленных случаев такое обновление следует предусмотреть явно в прикладном коде.

2. Команды, которые изменяют объекты и размещаются в форме списка, должны заботиться об обновлении списка объектов после своего выполнения. Например, после изменения одного объекта рекомендуется вызывать метод ОповеститьОбИзменении:

 &НаКлиенте
 Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	 ОбъектСсылка = ПараметрКоманды;
	 // Меняем объект
	 // ...
	 ОповеститьОбИзменении(ОбъектСсылка);
  КонецПроцедуры 

При изменении нескольких объектов целесообразно обновлять список однократно, в конце операции:

 &НаКлиенте
 Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	 Для Каждого ОбъектСсылка Из ПараметрКоманды Цикл
		 // Меняем объект
		 // ...
	 КонецЦикла;
	 ОповеститьОбИзменении(ТипЗнч(ПараметрКоманды[0]));
 КонецПроцедуры

3. Также должно быть обеспечено обновление данных в динамическом списке, у которого не назначена основная таблица. Такие динамические списки могут отображать данные из нескольких таблиц.

3.1 Если данные добавляются или изменяются командой, расположенной в форме динамического списка, то необходимо обновить список явно после выполнения команды.

3.2 Если данные изменяются в какой-либо другой форме (например, в форме объекта), то необходимо организовать обновление списка через оповещение. Для этого в каждой форме объекта, данные которого выводятся в динамическом списке, следует реализовать обработчик события ПослеЗаписи с использованием метода Оповестить:

Оповестить ("Запись_<ИмяОбъекта>", ПараметрыОповещения, ОбъектСсылка);

где

Пример:

 &НаКлиенте
 Процедура ПослеЗаписи(ПараметрыЗаписи)
	 Оповестить("Запись_РасходнаяНакладная", ПараметрыЗаписи, Объект.Ссылка);
 КонецПроцедуры

Затем в обработчике событияОповещение в форме динамического списка разместить код по обновлению динамического списка вида:

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	Если Врег(ИмяСобытия) = Врег("Запись_РасходнаяНакладная") 
		Или Врег(ИмяСобытия) = Врег("Запись_НакладнаяНаПеремещение") Тогда
		Элементы.СписокНакладных.Обновить();
	КонецЕсли;
КонецПроцедуры

При этом имена событий следует проверять явным образом, чтобы исключить неоправданное обновление списка.

См. также


Нас находят: ОповеститьОбИзменении, 1с8 обновить форму после подписки на событие, обновить данные динамического списка, 1с динамический список при изменении данных, событие обновление динамического списка, обновление динамического списка 1с, обновить форму списка после стандартной команды, обновить форму списка после изменения, обновить список после стандартной команды 1с, обновить содержимое динамического списка на форме


Подписка на новости RSS     Добавьте в закладки Google fusion     Мы в Google+    

 

Мы ВКонтакте

 

Мы на Facebook