Как вернуть доступ к доработкам в расширении 1С после добавления новой роли?

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

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

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

Платформа 1С:Предприятие использует специфический механизм разграничения прав для расширений конфигурации:

  1. Режим полного доступа по умолчанию: Если в расширении конфигурации нет ни одной собственной или заимствованной роли, платформа автоматически предоставляет доступ ко всем добавленным в это расширение объектам всем пользователям информационной базы.
  2. Отключение автоматического доступа: Как только в расширении появляется хотя бы одна роль, платформа переключается в строгий режим контроля прав. Автоматический доступ отключается для всех объектов расширения. С этого момента права на любые отчеты, обработки или справочники расширения действуют только тогда, когда они явно прописаны в ролях данного расширения.
  3. Особенности прав администратора: Полные права и административные роли основной конфигурации не распространяются автоматически на объекты расширения, если в самом расширении создана новая роль, но права администратора в нем не настроены.

Способ 1. Заимствование типовых ролей конфигурации

Рассмотрим основной и самый распространенный подход для решения этой проблемы. Чтобы восстановить доступ пользователей и администраторов к доработкам, выполним следующие шаги:

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

В результате обычные пользователи получают доступ к общим доработкам через заимствованную базовую роль, администраторы сохраняют полный контроль, а специальная обработка остается доступной только выбранному кругу лиц.

Способ 2. Использование основных ролей расширения

Начиная с версии платформы 8.3.14, доступен механизм основных ролей расширения. Проанализируем, как его применить:

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

Способ 3. Разделение доработок на два независимых расширения

Если структура проекта позволяет, рассмотрим архитектурное решение с разделением функционала:

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