Решил выложить для ознакомления публики свое расширение конфигурации позволяющее упростить работу по настройке профилей групп доступа.
Если вы вынуждены использовать профили групп доступа отличные от типовых, но сделанных на основании типовых путем копирования первых или кропотливой установки галочек по образцу и подобию, то это расширение для вас.
Расширение добавляет три команды в форме профилей групп доступа позволяющие заполнить вкладку "Разрешенные действия (роли)":
- Скопировать отмеченные роли из другого профиля — позволяет выбрать другой профиль из которого будут взяты отмеченные роли и такие же роли будут отмечены в списке;
- Выполнить замену ролей для изменения на роли для чтения — берет все роли в конфигурации и пытается сопоставить их между собой и потом произвести замену, допустим есть роль "ДобавлениеИзменениеЗаказовНаПеремещение" и роль "ЧтениеЗаказовНаПеремещение", так вот если в списке отмечена роль "ДобавлениеИзменениеЗаказовНаПеремещение", то она будет заменена на роль "ЧтениеЗаказовНаПеремещение", конечно не факт что это 100% адекватная замена, но вручную подбираться эти соответствия головная боль, когда нужно сделать профиль с правами только для чтения, коих в типовом варианте не предоставляется;
- Заполнить по настройкам автозаполнения — берет настройки с вкладки "Автозаполнение ролей" и производит заполнение списка отмечая в нем роли, более подробно про механизм работы будет описано ниже.
Также добавляется вкладка "Автозаполнение ролей", на которой выведены три списка "Базовые профили", "Удаляемые роли", "Добавляемые роли" и флажок "Использовать автозаполнение ролей".
Флажок "Использовать автозаполнение ролей" позволяет указать, что если в общем списке профилей групп доступа будет нажата кнопка "Заполнить профили групп доступа по настройкам автозаполнения", то этот профиль будет пакетно перезаполнен как и другие профили, в которых тоже будет установлен данный флажок. Пакетная обработка бывает нужна при обновлении конфигурации чтобы все не типовые профили обновились. Перезаполнение будет идти согласно тех настроек, что сделаны будут в списках "Базовые профили", "Удаляемые роли", "Добавляемые роли".
В списке "Базовые профили" необходимо перечислить все профили (не автозаполняемые), из которых должны быть взяты роли для заполнения первой вкладки "Разрешенные действия (роли)". Там же в списке есть колонка "Заменить роли на редактирование ролями на чтение" в которой можно установить флажек сказав тем самым, что нужно не просто взять все роли из профиля, а еще попытаться их заменить на роли только для чтения, действие аналогичное команде "Выполнить замену ролей для изменения на роли для чтения" описанной выше.
Механизм такой, программа берет профиль, из него извлекает роли, если нужно (стоит флажок), то заменяет их ролями на чтение, потом запоминает получившиеся роли, далее берет второй профиль и проделывает то же самое, добавляет роли к первому списку и так далее. На выходе получаем большой список ролей из одного или нескольких профилей. Свернутый естественно, без дублей.
Далее вступает в действие список "Удаляемые роли", программа удаляет из ранее получившегося списка роли, которые отмечены в списке "Удаляемые роли".
Далее вступает в действие список "Добавляемые роли", программа добавляет к ранее получившемуся списку роли, которые отмечены в списке "Добавляемые роли".
По простому: берутся роли из базовых профилей (с заменами, если нужно на роли для чтения) — удаляемые роли + добавляемые роли
В типовых профилях данный функционал блокирует дабы не попортить поставляемые профили групп доступа.
Проверено на ERP 2.4.9. Предположительно все это может работать на конфигурациях типа КА 2.4, УТ 11.4 и прочих с похожей БСП.
Еще есть мысли, что можно доработать в данном расширении, но приветствуются замечания и советы.