Почему в 1С:Бухгалтерия 3.0 не удается войти в базу без прав администратора системы?

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

Нередко системные администраторы и специалисты 1С сталкиваются с ситуацией, когда после создания нового пользователя или обновления конфигурации вход в информационную базу становится невозможен: система выдает ошибку о недостаточности прав доступа. При этом войти под созданной учетной записью удается только в том случае, если ей назначена системная роль Администратор системы. Разберем детально, почему так происходит в современных типовых конфигурациях на платформе 1С:Предприятие 8.3, в чем кроется архитектурная причина и как правильно настроить права учетных записей.

Архитектура разграничения прав в типовых решениях (БСП)

Проанализируем механизм авторизации и хранения учетных записей. В современных типовых конфигурациях, таких как «Бухгалтерия предприятия 3.0», «ERP 2», «Управление торговлей 11» и «ЗУП 3», используется Библиотека стандартных подсистем (БСП). В отличие от старых версий (например, 1С:Бухгалтерия 2.0 на обычных формах), работа с пользователями здесь разделена на два независимых уровня:

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

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

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

Способ 1. Корректное создание пользователей через режим «1С:Предприятие»

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

Выполним следующие шаги:

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

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

Способ 2. Программная синхронизация пользователей ИБ со справочником

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

Для этого воспользуемся внешней обработкой или встроенным языком 1С. Разберем пример кода, который выполняет поиск системного пользователя по имени и связывает его с элементом справочника:


ИмяПользователяДляСвязки = "ИвановИИ";

// 1. Получаем пользователя информационной базы на уровне платформы
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователяДляСвязки);

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

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

Способ 3. Обновление параметров ограничения доступа и служебных данных

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

Проанализируем сопутствующие факторы и выполним диагностику:

  1. Завершение отложенного обновления: Перейдем в раздел «Администрирование» → «Обслуживание» → «Результаты обновления программы». Если в списке присутствуют незавершенные фоновые процедуры обновления, необходимо дождаться их завершения или запустить вручную. До окончания этих процедур вход непривилегированным пользователям может быть заблокирован.
  2. Проверка блокировки сеансов: В разделе «Администрирование» → «Обслуживание» → «Блокировка работы пользователей» проверим, не установлен ли флаг запрета работы пользователей после проведения регламентных работ.
  3. Принудительное обновление регистров прав: Если структуры доступа рассинхронизированы, выполним программный вызов обновления параметров прав:
    
    // Принудительное обновление служебных параметров подсистемы управления доступом
    УправлениеДоступом.ОбновитьПараметрыОграниченияДоступа();
    

Выполнение указанных рекомендаций устраняет конфликт авторизации и позволяет пользователям входить в базу с назначенными прикладными правами без необходимости назначения роли Администратор системы.

← На главную