Как правильно создать новую роль в расширении 1С и настроить права доступа для пользователя

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

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

Разбор проблемы: почему возникает ошибка «Нет прав на запуск требуемого вида клиента»

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

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

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

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

Почему необходимы «Базовые права» и роли БСП

Даже если мы разрешили запуск клиента, пользователь может столкнуться с ошибкой нарушения прав доступа сразу после загрузки. Это происходит потому, что современные конфигурации построены на базе Библиотеки стандартных подсистем (БСП). Для работы интерфейса системе нужно прочитать множество служебных данных: настройки параметров сеанса, значения констант, данные о текущем пользователе.

Выясним, какие роли необходимо добавить пользователю дополнительно к основной роли из расширения:

Рассмотрим правильную стратегию: не пытайтесь запихнуть все эти права в свою роль в расширении. Это сделает её громоздкой и трудной в поддержке. Используйте механизмы типовой конфигурации в режиме 1С:Предприятие.

Настройка прав на объекты: решение проблемы «пустых реквизитов»

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

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

  1. В расширении не обязательно «заимствовать» (добавлять) каждый справочник, чтобы дать на него права. Современная платформа позволяет открывать права в роли расширения на объекты основной конфигурации.
  2. Найдем в дереве объектов роли нужные справочники: Контрагенты, Номенклатура, Склады, Организации.
  3. Установим для них право Чтение и Просмотр. Внимание: право Чтение позволяет системе получить данные программно, а Просмотр — увидеть их в интерфейсе.
  4. Если в документе есть ссылки на специфические регистры (например, цены или счета учета), на них также нужно дать право Чтение.

Использование Профилей групп доступа вместо прямой привязки ролей

Рассмотрим более эффективный метод администрирования, который советуют опытные разработчики. Вместо того чтобы назначать роль пользователю в Конфигураторе, выполним следующие действия в режиме 1С:Предприятие:

  1. Перейдем в раздел Администрирование — Настройки прав пользователей — Профили групп доступа.
  2. Создадим новый профиль, назовем его «Работа с особыми клиентами».
  3. В списке ролей этого профиля найдем нашу роль из расширения (она будет выделена в списке).
  4. Добавим к ней типовые профили или роли: Чтение номенклатуры, Чтение контрагентов, Вывод на печать.
  5. Создадим Группу доступа, выберем созданный профиль и включим в неё нашего пользователя.

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

Обновление справочника идентификаторов объектов метаданных

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


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

После выполнения этой команды ваша роль из расширения гарантированно появится в списках выбора профилей групп доступа.

Заключение

Создание роли в расширении — это не только установка галочек напротив нужных документов. Это комплексная настройка, включающая:

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

← На главную