При администрировании прав доступа в современных конфигурациях, таких как 1С:ERP Управление предприятием или других решениях на базе Библиотеки стандартных подсистем (БСП), часто возникает задача выяснить, за какие именно действия и объекты отвечает та или иная роль. Метаданные типовых решений насчитывают сотни ролей и тысячи объектов, поэтому простой просмотр всего дерева прав может превратиться в трудоемкий процесс. Разберем несколько эффективных способов анализа прав как в режиме разработки («Конфигуратор»), так и в режиме пользовательской работы («1С:Предприятие»).
Когда мы открываем роль в дереве метаданных конфигуратора, платформа по умолчанию разворачивает всю структуру метаданных конфигурации. В результате приходится просматривать множество неиспользуемых объектов. Рассмотрим, как быстро отсечь лишнее:
Общие > Роли.Чтение, Просмотр, Добавление, Изменение и т.д.).Действия > Вывести список. Платформа сформирует табличный документ, который можно сохранить или скопировать.В типовых конфигурациях на платформе 1С:Предприятие 8.3 с БСП механизм доступа строится вокруг «Профилей групп доступа», а роли носят атомарный характер. Чтобы система не вычисляла права «на лету» медленными платформенными методами, БСП хранит разрешенные права в специальной служебной таблице.
Проанализируем этот механизм. При обновлении конфигурации или обработке прав заполняется регистр сведений ПраваРолей (в некоторых редакциях — ПраваРолейБСП). В этом регистре в явном виде хранятся строки вида:
Роль — имя роли метаданных.ОбъектМетаданных — объект конфигурации, к которому дается доступ.Право — разрешенное действие (чтение, добавление, изменение и т.д.).Добавление, Изменение, Чтение — флаги доступности.Чтобы быстро посмотреть все права конкретной роли, откроем этот регистр сведений через меню Функции для технического специалиста (или Все функции), найдем регистр ПраваРолей и установим отбор по колонке Роль. В результате мы мгновенно получим структурированный список всех разрешений без необходимости открывать конфигуратор.
Если задача состоит не просто в изучении низкоуровневой роли, а в понимании того, что может делать реальный пользователь (например, Кассир или Бухгалтер), конфигуратор малоинформативен. В ERP одна бизнес-роль собирается из десятков технических атомарных ролей через Профиль групп доступа.
Разберем, как посмотреть результирующие права в интерфейсе программы:
Права доступа. В настройках отбора можно указать конкретного пользователя, профиль групп доступа или объект метаданных (например, документ ПриходныйКассовыйОрдер).Выясним причину, почему наличие права в роли не всегда гарантирует доступ к данным в рабочей базе ERP:
Чтение или Изменение, платформа применяет условия ограничений доступа на уровне записей. Если в группе доступа пользователя не заданы разрешенные значения (например, доступные организации, склады или подразделения), платформа заблокирует выборку данных на уровне запроса к базе данных.