Меню


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

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

Оглавление

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

См. также

 

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

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

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

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

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

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

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

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

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

где

Пример:

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

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

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

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

См. также


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


Подписка на новости RSS         Мы в Google+    

 

Мы ВКонтакте

 

Мы на Facebook