Что делать, если в 1С пропали пользователи и не удается войти в базу

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

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

Рассмотрим, почему возникает эта проблема и как оперативно восстановить доступ к базе данных и Конфигуратору.

Выясним причины сбоя

Разберем основные факторы, приводящие к таинственному исчезновению учетных записей:

  1. Сбой при реструктуризации или приеме пакета РИБ: При обновлении конфигурации или применении изменений платформа временным образом модифицирует служебную таблицу пользователей v8users. Если в этот момент происходит незапланированное завершение сеанса, разрыв связи с СУБД или сбой сервера, исходные данные не восстанавливаются.
  2. Конфликт уникальности индексов в СУБД: При редактировании прав или пользователей может возникнуть ошибка записи в таблицу dbo.v8users (например, нарушение уникального индекса ByName). В результате платформа блокирует доступ к записи, оставляя систему без административных учетных записей.
  3. Рассинхронизация пользователей ИБ и прикладного справочника: В 1С учетные записи платформы (ПользователиИнформационнойБазы) и элементы справочника Пользователи хранятся отдельно. Механизм РИБ передает элементы справочника, но не пароли и хэши платформенных пользователей.
  4. Сбой кэша процессов кластера серверов: Служебные процессы rphost и ragent могут закэшировать устаревшие или поврежденные данные авторизации.

Способ 1. Восстановление доступа в MS SQL путем сброса авторизации

Проанализируем проверенный способ решения для клиент-серверного варианта базы данных под управлением MS SQL Server или PostgreSQL. Метод позволяет зайти в Конфигуратор без авторизации, а затем вернуть прежнюю таблицу пользователей.

Разберем процесс по шагам:

  1. Создайте резервную копию базы данных: Перед выполнением любых операций в СУБД обязательно сделайте полный Backup информационной базы.
  2. Откройте среду управления СУБД (SQL Server Management Studio): Выполните запрос для переименования служебной таблицы v8users во временную (например, v8users_old).
  3. Отредактируйте запись в таблице Params: В таблице Params найдите запись, где значение поля FileName равно users.usr, и переименуйте его в users.usr_old.
  4. Запустите Конфигуратор: Поскольку платформа не обнаружит служебных таблиц пользователей, она сочтет, что в базе нет ни одного пользователя, и запустит Конфигуратор без запроса логина и пароля. На данном этапе платформа автоматически создаст новую пустую таблицу v8users и файл users.usr.
  5. Верните оригинальные таблицы: Не закрывая открытый Конфигуратор, вернитесь в SQL Server Management Studio. Удалите вновь созданную пустую таблицу v8users, переименуйте v8users_old обратно в v8users, а в таблице Params измените users.usr_old назад на users.usr.
  6. Обновите список пользователей: В открытом Конфигураторе перейдите в меню Администрирование — Пользователи. Список пользователей с их правами и паролями снова станет доступен. Сохраните изменения.

Способ 2. Восстановление в файловом варианте (.1cd)

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

  1. Правка внутренней структуры файла базы: С помощью специализированных утилит работы с файлами формата .1cd выполняется сброс таблицы PARAMS (удаление записи users.usr) и очистка/переименование таблицы V8USERS. После этого выполняются аналогичные шаги по входу в Конфигуратор и пересозданию администратора.
  2. Пересоздание периферийного узла РИБ: Если пропажа пользователей произошла в подчиненном узле РИБ, наиболее быстрым и надежным решением является повторная выгрузка образа периферийного узла из центральной базы данных. В центральной базе учетные записи сохраняются, поэтому новый образ инициализирует узловую базу с корректным списком пользователей.

Способ 3. Очистка кэша кластера серверов 1С

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

  1. Остановите службу сервера 1С:Предприятие (ragent).
  2. Перейдите в каталог данных кластера (по умолчанию C:\Program Files\1cv8\srvinfo или /opt/1C/v8.3/x86_64/srvinfo).
  3. Удалите папки кэша процессов, имеющие вид snacc* или файлы кэша в папках рабочих процессов.
  4. Запустите службу сервера 1С и проверьте авторизацию.

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

← На главную