Как правильно создать и настроить свою роль в 1С:Управление торговлей и избежать ошибок доступа?

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

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

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

Почему «РольТест» со всеми правами в Конфигураторе выдает ошибки?

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

1. Жесткие программные проверки в коде (метод РольДоступна)

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


Если Не РольДоступна("ДобавлениеИзменениеРеализацийТоваровУслуг") Тогда
    ДоступностьКнопокПроведения(Ложь);
    ВызватьИсключение "Недостаточно прав для выполнения операции!";
КонецЕсли;

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

2. Отсутствие системных (базовых) ролей

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

Как БСП работает с ролями «под капотом»

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

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

Для обновления этого кэша используется специальный механизм. Запустить его можно двумя способами:

  1. Запустить сеанс «1С:Предприятие» из-под администратора с параметром командной строки /C ЗапуститьОбновлениеИнформационнойБазы.
  2. Программно вызвать обновление справочника через консоль кода:

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

Пошаговый алгоритм правильной настройки прав в доработанной УТ

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

Рассмотрим по шагам, как правильно настроить доступ:

Шаг 1. Создание точечной роли в Конфигураторе

Не нужно дублировать в своей роли права на типовые объекты. Создайте новую роль (например, ДобавлениеИзменениеДоработанныхОбъектов) и отметьте в ней права только на ваши новые, добавленные в процессе кастомизации объекты метаданных (документы, справочники, регистры).

Шаг 2. Обновление вспомогательных данных БСП

После сохранения конфигурации и обновления базы данных запустите систему с ключом обновления:

"C:\Program Files\1cv8\...\1cv8.exe" ENTERPRISE /F "ПутьКБазе" /N "Администратор" /P "Пароль" /C ЗапуститьОбновлениеИнформационнойБазы

Это заставит БСП пересчитать кэш метаданных и внести вашу новую роль в справочник ИдентификаторыОбъектовМетаданных.

Шаг 3. Создание Профиля групп доступа в режиме Предприятия

Теперь перейдите в интерфейс «1С:Предприятие» под учетной записью администратора:

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

Шаг 4. Назначение прав пользователю

Перейдите в справочник Группы доступа, создайте новую группу (или откройте существующую), выберите созданный на Шаге 3 профиль и добавьте в список участников нужного пользователя. При записи группы доступа БСП сама программно назначит пользователю весь собранный пакет ролей непосредственно в Конфигураторе.

Важная особенность: как система ведет себя с «Полными правами»

Стоит учитывать важный нюанс работы БСП с администраторами системы. Если пользователю назначается предопределенная группа доступа «Администраторы» (или напрямую в Конфигураторе выдается роль ПолныеПрава):

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

← На главную