Как исправить ошибку «Идентификация пользователя не выполнена» в 1С:Комплексная автоматизация 2

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

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

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

Выясняем техническую причину сбоя

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

Первый уровень — это уровень платформы 1С:Предприятие. Информация о пользователях хранится в специальной системной таблице базы данных под названием v8users. Именно здесь хранятся имя входа, имя пользователя, признак активности и SHA-1 хеш пароля. Объект платформы, отвечающий за эти данные, называется ПользовательИнформационнойБазы.

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

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

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

  1. Ручная смена пароля в Конфигураторе. Если администратор меняет пароль пользователя напрямую через Конфигуратор, платформа успешно перезаписывает хеш в системной таблице v8users. Однако прикладной код БСП об этом изменении ничего не знает. В результате при попытке смены пароля в пользовательском режиме система просит ввести текущий пароль. Пользователь вводит верный пароль, установленный в Конфигураторе, но БСП сверяет его со своей устаревшей контрольной суммой и выдает ошибку несоответствия.
  2. Сбой транзакции при записи. При создании или изменении пользователя в режиме «1С:Предприятие» сначала создается объект в платформе, а затем записывается элемент справочника. Если в этот момент произошел сетевой сбой или аварийно завершился рабочий процесс сервера rphost, транзакция прерывается. Связь между GUID платформенного пользователя и UUID элемента справочника нарушается.
  3. Копирование базы данных. При нерегулярном или некорректном переносе лицензий, восстановлении баз из бэкапов на SQL-сервере без очистки старых сессий связь между системной таблицей пользователей и справочником может «поплыть».

Ниже мы рассмотрим подробные пошаговые методы исправления этой проблемы.

Решение 1. Принудительное обновление пароля в Конфигураторе

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

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

Решение 2. Использование стандартного инструмента сопоставления БСП

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

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

Решение 3. Полный перезапуск авторизации через отключение активности

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

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

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

Решение 4. Программный поиск десинхронизированных пользователей

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


Выборка = Справочники.Пользователи.Выбрать();
Пока Выборка.Следующий() Цикл
    // Пропускаем группы пользователей
    Если Выборка.ЭтоГруппа Тогда
        Продолжить;
    КонецЕсли;
    
    // Пытаемся найти платформенного пользователя по записанному UUID
    ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Выборка.ИдентификаторПользователяИБ);
    
    Если ПользовательИБ = Неопределено И ЗначениеЗаполнено(Выборка.ИдентификаторПользователяИБ) Тогда
        Сообщить("Внимание! Обнаружена битая связь для пользователя: " + Выборка.Наименование);
    КонецЕсли;
КонецЦикла;

Этот код обходит справочник Пользователи и сверяет записанный в базе идентификатор с реальными пользователями платформы. Если метод НайтиПоУникальномуИдентификатору возвращает значение Неопределено, это сигнализирует о том, что связь нарушена, и пользователя необходимо сопоставить заново методами, описанными выше.

Решение 5. Очистка кэша сеансов на сервере приложений 1С

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

Для решения этой проблемы выполним следующие действия:

  1. Откроем консоль администрирования серверов 1С:Предприятия.
  2. Найдем нашу информационную базу в списке.
  3. Перейдем в ветку Сеансы и завершим все зависшие сеансы проблемного пользователя, если они там присутствуют.
  4. Если это не помогло, выполним перезапуск службы 1C:Enterprise 8.3 Server Agent (на операционной системе Windows это служба 1C:Enterprise 8.3 Server Agent, на Linux — демон srv1cv83). Это действие полностью очистит оперативную память рабочих процессов и заставит сервер перечитать таблицу пользователей заново при следующей попытке входа.

Решение 6. Проверка логической целостности базы данных

Если сбои авторизации у пользователей вашей базы данных происходят систематически без видимых на то причин, это может свидетельствовать о частичном повреждении физических таблиц СУБД (например, индексов системной таблицы v8users). В этой ситуации рекомендуется выполнить тестирование и исправление базы данных.

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

Мы подробно проанализировали проблему сбоя идентификации пользователей в 1С:Комплексная автоматизация 2. Понимание двухуровневой структуры хранения учетных записей позволяет быстро локализовать неисправность и восстановить работоспособность системы без потери персональных настроек пользователей.

← На главную