Как правильно добавить новую роль в расширение для управления доступом к объектам основной конфигурации?

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

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

Принцип работы прав доступа при использовании расширений

Для начала проанализируем, как платформа 1С обрабатывает права, когда они определены и в основной конфигурации, и в расширении. В системе действует принцип суммирования прав (логическое «ИЛИ»). Это означает, что если хотя бы в одной из назначенных пользователю ролей (будь то роль из основной конфигурации или из расширения) разрешено определенное действие, то действие считается разрешенным для всей системы в целом.

Однако здесь есть важный нюанс. Если в основной конфигурации на конкретный объект метаданных (например, Документ.РеализацияТоваровУслуг) права назначены только в роли с полными правами, а у обычного пользователя таких прав нет, то объект для него считается полностью закрытым. Чтобы открыть к нему доступ через расширение, нам необходимо не просто создать роль, но и правильно «связать» ее с объектами основной конфигурации.

Шаг 1: Обязательное заимствование объектов метаданных

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

  1. Найдите нужный объект в дереве метаданных основной конфигурации.
  2. Нажмите правую кнопку мыши и выберите пункт «Добавить в расширение».
  3. После этого объект появится в дереве метаданных вашего расширения. Теперь он доступен для выбора в редакторе прав новой роли.

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

Шаг 2: Проблема «пустого списка» и стандартные реквизиты

Выясним причину, по которой пользователь может видеть пустой журнал документов, даже если роль назначена и права на «Чтение» объекта стоят. В 1С право на просмотр списка (динамического списка в форме журнала или списка документов) тесно завязано на наличие прав на конкретные поля этого объекта.

Если у пользователя есть право на чтение документа, но нет прав на его реквизиты Дата и Номер, система безопасности платформы может скрыть записи целиком, так как она не может отобразить основные идентифицирующие данные. Разберем, как это исправить:

  1. В расширении разверните заимствованный объект.
  2. Перейдите в ветку Стандартные реквизиты.
  3. Заимствуйте в расширение реквизиты Дата, Номер, Проведен, ПометкаУдаления.
  4. В редакторе вашей новой роли в расширении перейдите к этому объекту и на вкладке «Реквизиты» (включая стандартные) проставьте галочки «Просмотр» и «Редактирование» (если требуется).

Как показывает практика, именно отсутствие прав на стандартные реквизиты в новой роли расширения является самой частой причиной «пустых списков».

Шаг 3: Права на обычные реквизиты и табличные части

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

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

Шаг 4: Права на интерфейс и формы

Помимо прав на данные, пользователю нужны права на элементы интерфейса. Рассмотрим, что еще нужно отметить в новой роли расширения:

  1. Подсистемы: Чтобы документ отобразился в панели разделов (меню), роль должна иметь право «Просмотр» на соответствующую подсистему. Эту подсистему также нужно предварительно заимствовать в расширение.
  2. Формы: Убедитесь, что даны права на «Просмотр» форм документа.
  3. Интерактивные права: Не забудьте про права «Интерактивное открытие», «Интерактивное добавление» и другие, если роль предполагает активные действия пользователя, а не только просмотр.

Шаг 5: Особенности работы с Библиотекой стандартных подсистем (БСП)

Если вы работаете в современной типовой конфигурации (например, 1С:ERP, УТ 11, БУХ 3.0), то простого назначения роли в конфигураторе может быть недостаточно для того, чтобы она корректно подхватилась механизмами управления доступом БСП. Посмотрим на алгоритм действий в этом случае:

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


// Запуск обновления идентификаторов объектов метаданных
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Также проверьте, включена ли ваша новая роль в соответствующий Профиль групп доступа в пользовательском интерфейсе (раздел «Администрирование — Настройки пользователей и прав»).

Резюме и рекомендации

Подводя итог, можно подтвердить: добавлять новые роли в расширение для объектов основной конфигурации можно и нужно. Это позволяет сохранить конфигурацию на поддержке и упростить будущие обновления. Чтобы роль «взлетела», придерживайтесь следующего чек-листа:

Соблюдение этих правил гарантирует корректную работу системы прав доступа и избавит вас от проблем с невидимыми данными в журналах и формах 1С.

← На главную