Все знают, что в поставляемых профилях типовых конфигураций 1С на базе БСП, нельзя добавлять или удалять роли и виды доступа. Соответственно, если необходимо добавить к профилю новую роль или вид доступа, нужно сделать копию профиля и выполнить необходимые модификации в новом скопированном профиле.
Ничего сложного здесь, конечно же нет.
Проблемы начинают появляться после обновления конфигурации. Разработчики могут добавить или удалить какие-либо роли в поставляемом профиле. В результате чего, у пользователя, которому назначен скопированный ранее профиль, могут появиться проблемы с отсутствием доступа к объектам системы.
Следовательно, после обновления конфигурации необходимо проанализировать поставляемый профиль на предмет изменений, и повторить все эти изменения в скопированном. Если принять во внимание количество ролей в поставляемых профилях, это достаточно долгий и утомительный процесс. Тем более, если таких скопированных и дополненных профилей много.
Исходя из вышесказанного, пришла идея сделать небольшую доработку подсистемы прав доступа, чтобы была возможность наследовать состав ролей от базового профиля. В этом случае, в новом профиле, необходимо указывать только новые и удаленные роли относительно базового профиля. Дополнительный плюс - сразу видно, какие роли добавлены, а какие удалены.
Доработка достаточно простая, выполнена в расширении конфигурации, для платформы 8.3.11 и выше, так как необходимо добавлять новые реквизиты в справочник «Профили групп доступа».
Описание действия по наследованию ролей
По умолчанию, форма элемента профиля групп доступа выглядит стандартным образом, за исключением нового реквизита «Базовый профиль»:
Если выбрать базовый профиль, изменится наименование первой закладки и появиться новая - «Запрещенные роли». Причем на первой закладке будут отображены только те роли, которые отсутствуют в базовом профиле. Соответственно, на второй, будут все роли из базового профиля:
Есть возможность выбрать, или исключить все роли. А также, отобразить только выбранные.
Необходимо добавить нужные роли и виды доступа. При необходимости исключить какие-либо роли базового профиля, и записать новый профиль.
Вот и все!
Единственное, что нужно будет сделать после обновления конфигурации, это открыть и пересохранить все профили которые наследовались от базовых. Можно конечно реализовать эту процедуру при обновлении версии программы, но, мне кажется, лучше это делать вручную. Дело в том, что если в базовом профиле будет удалена какая-то роль, в наследованном она появится в списке добавленных. Нужно будет принять решения оставить ее или отключить. Также, если удаленная роль была в наследованном профиле в списке удаленных, она будет помечена как удаленная, и ее тоже нужно будет удалить:
Примечание: если удаленную роль оставить в списке удаленных, это не будет никак влиять на состав нового профиля.
Расширение тестировалось на конфигурации УТ 11.4.6.188. Однако его можно без проблем использовать для любых конфигураций 1С, построенных на базе БСП.
Платформа: 8.3.12.1790
Мои статьи по использованию механизмов БСП в типовых конфигурациях 1С
-
Возможности типовых шаблонов БСП ограничения доступа на уровне записей
-
Использование подсистемы БСП "Заполнение объектов"
-
Новый подход к обмену данными EnterpriseData
-
EnterpriseData – часть 2. Процесс выгрузки данных
-
Пример доработки правил конвертации без использования КД 3.0