Разбор механизма "Настройки полей формы" в 1С:ERP. Управление холдингом

18.07.23

Разработка - Механизмы типовых конфигураций

В данной статье я постараюсь разобрать механизм, который Вам может встретиться на просторах типовой конфигурации 1С:ERP. Управление холдингом. Я не могу гарантировать, что этот механизм не исключат из следующих версий конфигурации (как, собственно, и любой другой). К сожалению, мне не удалось найти его ни в одном модуле конфигурации "Библиотеки стандартных подсистем". Мне он показался интересным, и захотелось более детально во всем этом разобраться.

Точкой входа для использования функционала является вызов процедуры в модуле формы в событии "ПриСозданииНаСервере", но для корректности его также нужно вызывать в модуле обработчика события "ПриЧтенииНаСервере", поэтому в конфигурации вызов осуществляется из общей служебной процедуры "ПриЧтенииСозданииНаСервере":

ДенежныеСредстваСервер.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);

Могу предположить, что изначально функционал разрабатывался для одного документа, а уже потом расширился до 16 документов + 4 справочников. На мой взгляд, все это можно было вынести в отдельную подсистему. Но продолжим.

Именно здесь происходит инициализация всего, что потребуется в дальнейшем. А самое интересное, это возможность расширения. Именно здесь происходит определение имени объекта, откуда была вызван механизм, и "передача управления" модулю менеджера, для заполнения соответствующих настроек полей формы. 

	НастройкиПолейФормы = ИнициализироватьНастройкиПолейФормы();
	Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);
	Менеджер.ЗаполнитьНастройкиПолейФормы(НастройкиПолейФормы);

Процедура "ЗаполнитьНастройкиПолейФормы" должна находиться в модуле менеджера, для корректной работы. И именно она определяет свойства полей формы в зависимости от данных объекта. 

Здесь расскажу плюсы, которые я увидел в данном функционале. Это возможность заранее определить настройки видимость, доступность полей в зависимости от значений реквизитов объекта. К примеру, Вам нужно скрыть поле договор или еще ряд полей (какие захотите), если свойство "ПодотчетноеЛицо" Заполнено, на уровне настроек полей, можно это сделать, "не спускаясь" на уровень формы, и не прописывать в модуле формы условия.

Пример:  Документ "Авансовый отчет"

Задача: Нужно, при изменении значения переключателя на значение "Мультвалютный", изменять доступность поля "Валюта" на "Ложь", и соответственно, при переключении обратно, делать снова доступным.

 

 

 
 Классический вариант:
 
 "Новый механизм"

 

В "Новом механизме" вызывается процедура формы на сервере. Она и производит настройку свойств элементов формы. 

Сразу скажу. В качестве параметра "ИзмененныйРеквизит" можно отправлять сразу несколько значений разделенных запятыми, к примеру "Мультивалютный, ПодотчетноеЛицо". И тогда механизм обработает все зависимые поля, на основании значений измененных реквизитов.

А как система определяет, какие настройки полей соответствует именно этому Измененному реквизиту? Отвечаю. При инициализации формы, выше мы обсуждали, создается коллекция "ЗависимостиПолей", которая хранит соответствие реквизитов на основании отборов указанных разработчиком в модуле менеджера.

т.е. в нашем примере накладывается отбор ...."Мультивалютный", Ложь);, значит в коллекцию "ЗависимостиПолей" попадет строка со значениями "Мультивалютный" и его полями для настройки.

 

&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "")
	
	ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
	
КонецПроцедуры

 

-----------------------------------------------------------------------------

P.S. Опишу, как можно доработать существующие документы, используя расширения, а также разберу на примере, как можно встроить в "свои" объекты. Если статья найдет отклик или будет такой запрос.

1С:ERP. Управление холдингом (3.1.10.8).

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    1737    PROSTO-1C    0    

18

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1745    Vidz    0    

11

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    1106    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4891    Serg2000mr    32    

108

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    1058    tango    5    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aeoHeKP 19.03.24 18:42 Сейчас в теме
Спасибо за статью, автор очень выручил! Не первый час сижу и пытаюсь понять, как сломать типовой механизм, чтобы реквизит Контрагент всегда подсвечивался красной чертой как обязательный, а то полей куча, меняю какое-либо и то красный, то не красный, уже весь мозг сломал. Плавно по отладчику дошел до нужных названий и до этой статьи. Выручил примером, а главное, все коротко и в целом понятно. Длинную статью было бы тяжело читать.
2. it_box 19 03.07.24 10:49 Сейчас в теме
(1) Спасибо за слова благодарности. Всегда приятно слышать, когда то, что ты делаешь, кому-то помогает.
3. lexev 28.10.24 14:15 Сейчас в теме
Спасибо за статью! Актуальная тема. Очень ждем обещанного продолжения!
Оставьте свое сообщение