Видимость, доступность элементов форм (управляемые формы)


Расширение конфигурации позволяет используя типовой функционал модификации конфигурации ERP-решений (УТ 11, КА 2 и ERP 2) «на лету» изменять доступность, видимость, толькопросмотр элементов форм, а так же выполнять произвольный код, который выполняется ПриСозданииНаСервере выбранной формы.

Код расширения открытый и достаточно "топороный", но, работает и не замедляет открытие форм (зависит, конечно, от того, что выполняется в произвольном коде).
Описаний как подключить расширение конфигураций много, после подключения — надо отключить у этого расширения безопасный режим.
Расширение подключает Регистр Сведений "ВДЭФ_Настройки", все остальные дописки в расширении Общего модуля "МодификацияКонфигурацииПереопределяемый".

В разделе "Администрирование" добавляется пункт "ВДЭФ настройки".

В список форм добавлены формы Справочников, Документов, Регистров сведений, Обработок и бизнеспроцессов с задачами.
В список ролей все возможные роли из основной конфигурации и расширений(если такие есть).

1. Выбираем форму, далее подгружаются все элементы формы.

2. Выбираем необходимый элемент. 

3. Из списка ролей выбираем роль, по доступности которой правило не работает (допустим, ПолныеПрава, чтобы у всех кроме администраторов.

4. Устанавливаем флажок, Видимость, Доступность, ТолькоПросмотр.

Также есть вариант, чтобы форма вообще не открывалась (стандартная обработка = ложь; отказ = истина;) — для этого ставится только "Не открывать форму", так же выбирается нужная роль, чтобы правило не срабатывало, элемент формы можно не выбирать.

И еще вариант, когда выбрана форма, не выбран элемент, выбрана или нет роль для срабатывания и стоит галка "ТолькоПросмотр" — форма откроется целиком со свойством "ТолькоПросмотр" = Истина;

Также, если будет заполнено поле Произвольный код, то он выполнится после всех выбранных действий.

На каждый элемент формы создаётся отдельная строка регистра.

Есть небольшие баги(допустим, правило которое создаётся, применяется так же и на форму записи ВДЭФ_Настройки, т.к. форма на которую "вешаются" ограничения получается через "ПолучитьФорму()". Следовательно, может получиться так, что правило, которое вы создали не откроется на редактирование, его достаточно будет удалить и создать заново), которые, возможно, исправлю, но они мало влияют на суть.

Делал для себя, но, вдруг кому пригодится:) Месяц в боевом режиме — полёт нормальный.

Если будут вопросы или ошибки — пишите, постараюсь ответить.

UPD: Если какая-то форма не работает, значит в модуле этой формы, в обработчике ПриСозданииНаСервере не добавлено:

СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

Соответственно, чтобы форма работала, можно добавить её в это же расширение через конфигуратор, и создать ПриСозданииНаСервере, выбрать "После" и дописывать код который написан выше.

Хоть механизм и типовой, но не на всех формах добавлен.

Проверено на конфигурации Комплексная Автоматизация 2 (2.4.9.70), Технологическая Платформа 8.3.14.1854 и 8.3.15.1565. Должно работать на любой конфигурации где применяется типовой функционал модификации конфигурации(УТ 11, КА 2 и ERP 2).

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *