Как узнать, какие права дает определенная роль в 1С:ERP?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

При администрировании прав доступа в современных конфигурациях, таких как 1С:ERP Управление предприятием или других решениях на базе Библиотеки стандартных подсистем (БСП), часто возникает задача выяснить, за какие именно действия и объекты отвечает та или иная роль. Метаданные типовых решений насчитывают сотни ролей и тысячи объектов, поэтому простой просмотр всего дерева прав может превратиться в трудоемкий процесс. Разберем несколько эффективных способов анализа прав как в режиме разработки («Конфигуратор»), так и в режиме пользовательской работы («1С:Предприятие»).

Способ 1. Анализ роли в Конфигураторе с фильтрацией

Когда мы открываем роль в дереве метаданных конфигуратора, платформа по умолчанию разворачивает всю структуру метаданных конфигурации. В результате приходится просматривать множество неиспользуемых объектов. Рассмотрим, как быстро отсечь лишнее:

  1. Откроем дерево конфигурации и перейдем в ветку Общие > Роли.
  2. Двойным кликом откроем интересующую нас роль.
  3. По умолчанию в окне отображаются абсолютно все объекты. Чтобы оставить только те позиции, на которые в данной роли действительно назначены права, нажмем кнопку установки фильтра на командной панели окна роли (пиктограмма воронки с фильтром по установленным правам).
  4. После включения фильтра в списке останутся только те документы, справочники, регистры и общие права, для которых выставлены флаги (например, Чтение, Просмотр, Добавление, Изменение и т.д.).
  5. Если необходимо получить плоский текстовый список прав для дальнейшего анализа или передачи коллегам, нажмем в окне роли пункт меню Действия > Вывести список. Платформа сформирует табличный документ, который можно сохранить или скопировать.

Способ 2. Анализ через служебный регистр сведений БСП в режиме «1С:Предприятие»

В типовых конфигурациях на платформе 1С:Предприятие 8.3 с БСП механизм доступа строится вокруг «Профилей групп доступа», а роли носят атомарный характер. Чтобы система не вычисляла права «на лету» медленными платформенными методами, БСП хранит разрешенные права в специальной служебной таблице.

Проанализируем этот механизм. При обновлении конфигурации или обработке прав заполняется регистр сведений ПраваРолей (в некоторых редакциях — ПраваРолейБСП). В этом регистре в явном виде хранятся строки вида:

  1. Роль — имя роли метаданных.
  2. ОбъектМетаданных — объект конфигурации, к которому дается доступ.
  3. Право — разрешенное действие (чтение, добавление, изменение и т.д.).
  4. Добавление, Изменение, Чтение — флаги доступности.

Чтобы быстро посмотреть все права конкретной роли, откроем этот регистр сведений через меню Функции для технического специалиста (или Все функции), найдем регистр ПраваРолей и установим отбор по колонке Роль. В результате мы мгновенно получим структурированный список всех разрешений без необходимости открывать конфигуратор.

Способ 3. Использование типового отчета «Права доступа»

Если задача состоит не просто в изучении низкоуровневой роли, а в понимании того, что может делать реальный пользователь (например, Кассир или Бухгалтер), конфигуратор малоинформативен. В ERP одна бизнес-роль собирается из десятков технических атомарных ролей через Профиль групп доступа.

Разберем, как посмотреть результирующие права в интерфейсе программы:

  1. Перейдем в раздел НСИ и администрирование > Администрирование > Настройки пользователей и прав.
  2. Откроем подраздел Группы доступа или перейдем по ссылке Отчеты по правам доступа.
  3. Сформируем типовой отчет Права доступа. В настройках отбора можно указать конкретного пользователя, профиль групп доступа или объект метаданных (например, документ ПриходныйКассовыйОрдер).
  4. Отчет покажет, через какие именно роли и профили пользователю предоставлено право на просмотр, редактирование или проведение выбранного объекта.

Важные архитектурные нюансы: атомарность и RLS

Выясним причину, почему наличие права в роли не всегда гарантирует доступ к данным в рабочей базе ERP:

  1. Атомарность ролей: В ERP роли узкоспециализированы. Роль может давать только право чтения на документ, но не давать права на открытие формы или просмотр реквизитов. Полный доступ к функционалу формируется только в совокупности ролей, входящих в назначенный профиль.
  2. Ограничение на уровне записей (RLS): Даже если в роли взведен флаг Чтение или Изменение, платформа применяет условия ограничений доступа на уровне записей. Если в группе доступа пользователя не заданы разрешенные значения (например, доступные организации, склады или подразделения), платформа заблокирует выборку данных на уровне запроса к базе данных.
← На главную