При разработке в среде 1С:Предприятие 8.3, особенно в конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), таких как 1С:Бухгалтерия государственного учреждения 2.0 (БГУ 2.0), программисты часто сталкиваются с ситуацией: новая роль создана, права на нужные объекты назначены, но при попытке входа система выдает фатальную ошибку: «Авторизация не выполнена. Работа системы будет завершена. Недостаточно прав для входа в программу». Разберем детально, почему так происходит и как правильно настроить доступ.
Проанализируем ситуацию. В современных конфигурациях процесс запуска программы — это не просто проверка права Запуск. Это сложная последовательность программных инициализаций. Когда мы создаем роль в Конфигураторе и назначаем ее пользователю, платформа пытается выполнить программный код в модуле сеанса и модуле управляемого приложения. Если у пользователя нет прав на чтение системных констант, параметров сеанса или доступ к общим модулям, которые используются в процедуре ПриНачалеРаботыСистемы, выполнение прерывается с ошибкой прав доступа еще до того, как откроется рабочий стол.
Рассмотрим подробнее, какие компоненты БСП требуют обязательного доступа для любого пользователя:
ТекущийПользователь) программа не сможет инициализировать окружение.Пользователи и ИдентификаторыОбъектовМетаданных критически важен для работы подсистемы управления доступом.Для того чтобы платформа вообще позволила пользователю инициировать соединение, необходимо предоставить ему так называемые «технологические» права. В зависимости от типа клиента, через который осуществляется вход, в конфигурации должны быть выбраны соответствующие роли:
ЗапускВебКлиента) — дает право на запуск самого приложения.Как совершенно верно отмечено в обсуждении, секрет кроется в «Базовых правах». В старых версиях конфигураций существовала одна общая роль Пользователь. В современных решениях на БСП (как БГУ 2.0) этот набор прав разбит на несколько составляющих для обеспечения гибкости. Чтобы система успешно загрузилась, пользователю необходимо назначить роль:
БазовыеПрава).Эта роль содержит минимальный набор разрешений на чтение системных объектов, без которых работа в интерфейсе невозможна. Проанализируем, что именно она дает: доступ к общим формам, возможность чтения констант версии программы, доступ к подсистеме печати и базовым классификаторам.
Назначение роли напрямую в Конфигураторе — это только половина дела. В БГУ 2.0 активно используется программное ограничение прав на уровне записей (RLS) и справочники профилей. Разберем по шагам, как правильно легализовать новую роль в режиме «1С:Предприятие»:
ИдентификаторыОбъектовМетаданных. Обычно это делается автоматически, но можно форсировать процесс, используя внешнюю обработку из состава БСП или запустив программу с параметром:
/ЗапуститьОбновлениеИнформационнойБазы
Базовые права, если она не назначена пользователю через другие профили.Если после добавления базовых ролей ошибка сохраняется, выясним причину через отладку. Посмотрим на процедуру ПриДобавленииПараметровСеанса в модуле сеанса. Проанализируем следующую ситуацию: если в коде происходит обращение к объекту, на который у нашей роли нет прав, возникнет исключение.
Пример кода, который может вызывать ошибку при нехватке прав:
Процедура УстановитьПараметрыСеанса(ИменаПараметров)
Если ИменаПараметров = Неопределено Тогда
// Чтение константы без прав вызовет ошибку "Недостаточно прав"
ПараметрыСеанса.ТекущийПользователь = ПоискТекущегоПользователя();
КонецЕсли;
КонецПроцедуры
В данном случае, если у роли нет права Чтение на справочник Пользователи, вход будет заблокирован.
Подведем итог нашего исследования. Для успешного запуска системы под новой ролью в БГУ 2.0 необходимо соблюдение трех условий:
Запуск тонкого клиента и флаг Просмотр на корень конфигурации.Базовые права БСП (или её аналога).Важный совет: старайтесь не модифицировать стандартные роли и не создавать абсолютно пустые роли «с нуля» без включения их в общую экосистему БСП. Лучшая практика — создавать свои роли только для специфических объектов (ваших новых документов или справочников), а общие права (вход в программу, работа с печатью, поиск) делегировать стандартному профилю «Открытие сеанса» или «Базовые права». Это гарантирует, что при обновлении конфигурации ваш пользователь не «отвалится» из-за изменения структуры метаданных.