#std746¶
Обработчики событий ОбработкаПолученияПредставления и ОбработкаПолученияПолейПредставления¶
1.¶
С помощью данных обработчиков модуля менеджера объекта можно переопределить представление объекта информационной базы, которое выводится в полях форм и в списках. Пример реализации:
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
Поля.Добавить("Наименование");
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Представление = ?(
ПустаяСтрока(Данные.Наименование),
НСтр("ru = 'Без описания'"),
Данные.Наименование);
СтандартнаяОбработка = Ложь;
КонецПроцедуры
2.¶
Обработчики вызываются при любой необходимости получения представления какого-либо объекта информационной базы. Поэтому избыточные данные или неправильный выбор данных для формирования представления могут привести к существенному замедлению работы системы.
Также не следует выполнять в этих обработчиках запросы или получение объектов информационной базы (в том числе, запрещены обращения к реквизитам объектов ссылочных типов через точку, что приводит к чтению всего объекта целиком из базы данных). Также нежелательно использовать получение представления и реквизитов ссылок.
3.¶
Обработчики могут быть также вызваны, в том числе, при записи и удалении объекта в режиме обмена данными. Представление объекта при этом запрашивается для формирования записи в журнал регистрации. Поэтому к ним предъявляются те же требования, что и к логике регистрации объектов - см. п. 1.2 #std701: Разработка планов обмена с отборами.
Эти требования также справедливы при разработке планов обмена для синхронизации с другими программами (не РИБ, по правилам конвертации) с помощью подсистемы «Обмен данными» Библиотеки стандартных подсистем. Например, недопустимо #std697: обращаться к предопределенным элементам, которые еще могли быть не загружены в базу или, наоборот, уже удалены в ходе обмена данными:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
// Недопустимо: обращение к предопределенному элементу.
Если Данные.ВидОбразования = Справочники.ВидыОбразованияФизическихЛиц.ПослевузовскоеОбразование Тогда
Представление = НСтр("ru = 'Послевузовское образование'");
КонецЕсли;
КонецПроцедуры
4.¶
При реализации обработчиков следует также учитывать требования о поддержке #std680: толстого клиента, управляемое приложение, клиент-сервер.
См. также¶
- #std449: Получение представлений для ссылочных значений в табличном документе
- #std468: Пользовательские представления объектов
Проверки¶
#v8cs:module-accessibility-at-client