Почему не удается добавить роль из расширения в профиль групп доступа в 1С?

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

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

Выясним причину проблемы

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

Роли с таким установленным флагом расцениваются системой как административные и потенциально опасные, так как они могут создать уязвимость бесконтрольного доступа к данным. Из-за этого механизма безопасности БСП программно фильтрует и скрывает такие роли при попытке добавить их в обычные, неполноправные профили групп доступа. Вы сможете увидеть такую роль только в том профиле, где уже присутствует роль ПолныеПрава.

Решение для профилей обычных пользователей

Если наша задача — создать роль для обычных пользователей и наделить их определенными правами на объекты расширения, выполним следующие действия:

  1. Откроем свойства нашей новой роли в дереве метаданных расширения.
  2. Снимем флажок Устанавливать права для новых собственных объектов.
  3. После этого вручную установим права на все необходимые новые объекты расширения внутри этой роли (галочками).

Согласно стандартам разработки, роли должны быть «атомарными», то есть покрывать небольшие конкретные функции. После снятия этого флага наша роль перестанет считаться административной и станет видимой для добавления в любые профили групп доступа.

Обновление служебных справочников (кэш БСП)

Иногда бывает так, что даже после снятия флага роль все равно не появляется в списке профиля групп доступа. Проанализируем эту ситуацию: скорее всего, это связано с кэшированием метаданных в механизмах БСП. Новые роли должны быть корректно зарегистрированы в служебных справочниках идентификаторов объектов метаданных и расширений.

Чтобы обновить эти данные, запустим информационную базу в режиме 1С:Предприятие с параметром запуска:

/С ЗапуститьОбновлениеИнформационнойБазы

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

Альтернативный вариант для администраторов

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

Для этой задачи категорически не нужно создавать собственную новую роль с галочкой автоматической установки прав. Поступим более грамотно:

  1. Заимствуем в наше расширение типовую системную роль ПолныеПрава из основной конфигурации.
  2. Именно в этой заимствованной роли выдадим права на новые объекты нашего расширения.

Таким образом мы сохраним логику работы БСП, не нарушим стандарты безопасности, а пользователи с полными правами (администраторы) автоматически получат необходимый доступ к нашим доработкам.

← На главную