Задача: определить список элементов формы, которые скрываются определенной функциональной опцией
- Когда элемент формы скрывается функциональной опцией его свойство "Видимость" не изменяется.
- То есть, у элемента формы свойство "Видимость"=Истина, но он все равно - не показывается на форме
- Программно "понять" что элемент формы скрыт - невозможно, ни одно свойство у скрытого элемента не изменяется
- В конфигураторе найти связь скрытого элемента формы с функциональной опцией - является достаточно трудоемкой задачей
Решение (кратко): попытаться установить элемент формы - текущим элементом формы, если это возможно, то он не скрыт.
В форме функциональные опции могут влиять на ее реквизиты, а значит(и как следствие), и на элементы формы (поля ввода, таблицы, страницы и прочие), связанные с этими реквизитами, и на команды формы, а значит, на кнопки формы, кнопки командных панелей.(источник: https://its.1c.ru/db/pubv8devui#content:144:hdoc)
В итоге, функциональные опции могут скрывать следующие элементы формы:
- таблица формы
- поле формы
- кнопка формы
Найти связь интерфейсной функциональной опции с элементом формы через конфигуратор - является достаточно трудоемкой задачей - необходимо проверить:
-
элемент формы связан с реквизитом объекта метаданных, который входит в состав функциональной опции
-
элемент формы связан с реквизитом объекта метаданных, тип этого реквизита входит в состав функциональной опции
-
элемент формы связан с реквизитом/командой формы у которых заполнено свойство "Функциональные опции"
В итоге есть только один способ программно "понять" - скрыт ли элемент формы:
- Способ: попытаться установить элемент формы - текущим элементом формы
- Для скрытого элемента формы - установить его текущим элементом не получится
- Таблица формы - полностью работает
- Поле формы - полностью работает (для поля формы которое является колонкой таблицы - попытаться установить это поле текущим элементом таблицы, следует учитывать, что в этом случае, при проверке - автоматически вызываются обработчики таблицы: ПриАктивацииЯчейки() и ПриАктивацииПоля())
- Кнопка формы - работает только для вида "Обычная кнопка" (для кнопок в командной панели или контекстном меню - не получится)
- Этот способ не отличает элементы формы, скрытые функциональными опциями от отключенных через меню формы "Еще --> Изменить форму". По этому, рекомендуется или установить стандартные настройки (Еще --> Установить стандартные настройки) или включить вручную все отслеживаемые элементы.
Внешняя обработка Менеджер открытых форм, в обработке есть два варианта поиска скрытых элементов формы:
-
Показать все скрытые элементы формы
-
Отследить действие конкретной функциональной опции
Инструкция:
- Включить функциональную опцию (если она отключена)
- В отслеживаемой форме через меню формы ЕЩЕ --> Изменить форму... включить все отключенные пользователем реквизиты, если таковые есть. (этот пункт не обязателен)
- Во внешней обработке Менеджер открытых форм: в списке форм - открыть отслеживаемую форму
- Во внешней обработке Менеджер открытых форм: Элементы формы --> Контекcтное меню --> Функциональные опции --> Показать элементы формы, скрытые функциональными опциями
- Отключить функциональную опцию
- Во внешней обработке Менеджер открытых форм: Элементы формы --> Контекcтное меню --> Функциональные опции --> Показать отличия
- Результат: список элементов формы, состояния которых (скрыт/показан) изменилось после отключения функциональной опции. Отслеживаемые элементы формы: таблица формы, поле формы и кнопка формы (кроме кнопок в командном меню или контекстном меню)

Вступайте в нашу телеграмм-группу Инфостарт








