Точкой входа для использования функционала является вызов процедуры в модуле формы в событии "ПриСозданииНаСервере", но для корректности его также нужно вызывать в модуле обработчика события "ПриЧтенииНаСервере", поэтому в конфигурации вызов осуществляется из общей служебной процедуры "ПриЧтенииСозданииНаСервере":
ДенежныеСредстваСервер.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
Могу предположить, что изначально функционал разрабатывался для одного документа, а уже потом расширился до 16 документов + 4 справочников. На мой взгляд, все это можно было вынести в отдельную подсистему. Но продолжим.
Именно здесь происходит инициализация всего, что потребуется в дальнейшем. А самое интересное, это возможность расширения. Именно здесь происходит определение имени объекта, откуда была вызван механизм, и "передача управления" модулю менеджера, для заполнения соответствующих настроек полей формы.
НастройкиПолейФормы = ИнициализироватьНастройкиПолейФормы();
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);
Менеджер.ЗаполнитьНастройкиПолейФормы(НастройкиПолейФормы);
Процедура "ЗаполнитьНастройкиПолейФормы" должна находиться в модуле менеджера, для корректной работы. И именно она определяет свойства полей формы в зависимости от данных объекта.
Здесь расскажу плюсы, которые я увидел в данном функционале. Это возможность заранее определить настройки видимость, доступность полей в зависимости от значений реквизитов объекта. К примеру, Вам нужно скрыть поле договор или еще ряд полей (какие захотите), если свойство "ПодотчетноеЛицо" Заполнено, на уровне настроек полей, можно это сделать, "не спускаясь" на уровень формы, и не прописывать в модуле формы условия.
Пример: Документ "Авансовый отчет"
Задача: Нужно, при изменении значения переключателя на значение "Мультвалютный", изменять доступность поля "Валюта" на "Ложь", и соответственно, при переключении обратно, делать снова доступным.
В "Новом механизме" вызывается процедура формы на сервере. Она и производит настройку свойств элементов формы.
Сразу скажу. В качестве параметра "ИзмененныйРеквизит" можно отправлять сразу несколько значений разделенных запятыми, к примеру "Мультивалютный, ПодотчетноеЛицо". И тогда механизм обработает все зависимые поля, на основании значений измененных реквизитов.
А как система определяет, какие настройки полей соответствует именно этому Измененному реквизиту? Отвечаю. При инициализации формы, выше мы обсуждали, создается коллекция "ЗависимостиПолей", которая хранит соответствие реквизитов на основании отборов указанных разработчиком в модуле менеджера.
т.е. в нашем примере накладывается отбор ...."Мультивалютный", Ложь);, значит в коллекцию "ЗависимостиПолей" попадет строка со значениями "Мультивалютный" и его полями для настройки.
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "")
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
-----------------------------------------------------------------------------
P.S. Опишу, как можно доработать существующие документы, используя расширения, а также разберу на примере, как можно встроить в "свои" объекты. Если статья найдет отклик или будет такой запрос.
1С:ERP. Управление холдингом (3.1.10.8).