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