Почему возникает ошибка при создании пользователей в чистой базе 1С:Управление торговлей 11 через Конфигуратор и как правильно настроить доступ?

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

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

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

Архитектурные особенности подсистемы пользователей в БСП

Разберем, почему ручное добавление учетных записей в Конфигураторе нарушает работу типовой конфигурации. В современных решениях 1С механизм аутентификации и разграничения прав функционирует на двух неразрывно связанных уровнях:

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

Связующим звеном между этими уровнями выступает реквизит ИдентификаторПользователяИБ в справочнике Пользователи, куда записывается уникальный идентификатор (GUID) учетной записи платформы.

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

Штатный алгоритм первого запуска чистой базы

Рассмотрим правильную последовательность действий при развертывании чистой конфигурации:

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

Способ исправления: полный сброс списка пользователей

Если пользователи уже были ошибочно созданы через Конфигуратор и вход заблокирован, разберем по шагам, как вернуть базу к состоянию корректного первого запуска:

  1. Откроем базу в режиме «Конфигуратор».
  2. Перейдем в главное меню: Администрирование > Пользователи.
  3. Выделим и полностью удалим всех созданных пользователей из списка, чтобы таблица стала пустой.
  4. Сохраним изменения и запустим базу в режиме «1С:Предприятие».
  5. Дождемся окончания процедур начальной инициализации конфигурации.
  6. Перейдем в раздел НСИ и администрирование > Настройки пользователей и прав > Пользователи и создадим необходимых пользователей с назначением соответствующих прав и групп доступа.

Принудительный запуск процедур обновления и инициализации

В некоторых случаях после загрузки файла .cf автоматическая инициализация данных не стартует сама по себе. Чтобы гарантированно запустить начальное заполнение служебных данных и групп доступа БСП, запустим систему с параметром командной строки.

Для этого в строке запуска или в настройках параметров запуска базы в стартере 1С укажем дополнительный параметр:

/C ЗапуститьОбновлениеИнформационнойБазы

Параметр ЗапуститьОбновлениеИнформационнойБазы принудительно вызовет процедуры обработчиков обновления всех подсистем БСП, включая первичное заполнение прав доступа.

Программное связывание пользователя платформы и справочника

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


ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("Администратор");
Если ПользовательИБ <> Неопределено Тогда
    СсылкаНаПользователя = Справочники.Пользователи.НайтиПоНаименованию(ПользовательИБ.Имя);
    Если СсылкаНаПользователя.Пустая() Тогда
        ОбъектПользователь = Справочники.Пользователи.СоздатьЭлемент();
        ОбъектПользователь.Наименование = ПользовательИБ.Имя;
    Иначе
        ОбъектПользователь = СсылкаНаПользователя.ПолучитьОбъект();
    КонецЕсли;
    
    ОбъектПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
    ОбъектПользователь.Записать();
КонецЕсли;

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

← На главную