Администрирование · 9 мин
В какой таблице SQL хранятся пользователи 1С
Разбираемся, где в базе SQL Server хранятся пользователи 1С: таблица Params, бинарный формат, почему нельзя править напрямую и как безопасно получить список пользователей.
Администраторы, которые впервые открывают базу 1С в SQL Server Management Studio, часто ищут таблицу с понятным именем вроде «Users» — и не находят её. Причина проста: список пользователей информационной базы не хранится в виде обычной таблицы со строками «логин — пароль». Платформа 1С сериализует эти данные и кладёт их в служебную таблицу Params (в файловой структуре базы это файл Params, в SQL — таблица с таким же именем).
Точнее, в таблице dbo.Params есть запись, в которой в поле бинарных данных лежит сериализованный объект со списком пользователей информационной базы — их имена, хеши паролей, роли, настройки аутентификации. Извлечь эти данные обычным SELECT в читаемом виде нельзя: формат внутренний, закрытый и может меняться между версиями платформы.
Ниже разберём, как устроено хранение пользователей, что реально можно посмотреть через SQL, чем это опасно и какие безопасные способы получить список пользователей существуют.
Как 1С хранит пользователей в базе данных
Платформа 1С:Предприятие делит данные информационной базы на прикладные (справочники, документы, регистры) и служебные. Прикладные объекты маппируются на понятные таблицы: _Reference для справочников, _Document для документов, _InfoRg для регистров сведений и так далее. Служебная информация — настройки, параметры, список пользователей — хранится иначе.
Список пользователей — это часть так называемых «параметров информационной базы». Платформа сериализует объект со всеми учётными записями и сохраняет его как бинарное значение в таблице Params. Внутри этой структуры для каждого пользователя хранятся: имя, полное имя, хеши паролей (по двум алгоритмам), признак аутентификации ОС, роли, язык и другие настройки.
Важно понимать разницу между двумя сущностями: пользователь информационной базы (та самая учётная запись из конфигуратора) и пользователь справочника «Пользователи» в типовых конфигурациях на БСП. Первый хранится в Params, второй — в обычной таблице справочника (например, _Reference... с именем, соответствующим справочнику «Пользователи»).
Таблица Params: что внутри
Таблица dbo.Params присутствует в каждой базе 1С на SQL Server и имеет простую структуру: имя параметра (строка) и его значение (бинарные данные). Одна из записей содержит сериализованный список пользователей информационной базы. Посмотреть состав таблицы можно простым запросом:
SELECT [Name], DATALENGTH([BinaryData]) AS DataSize FROM dbo.Params;В результате вы увидите список служебных параметров базы и размеры их бинарных значений. Запись, отвечающая за пользователей, обычно заметно растёт по мере добавления учётных записей. Однако прочитать содержимое напрямую не получится: данные сериализованы внутренним форматом платформы, а пароли в любом случае хранятся только в виде хешей — восстановить исходный пароль из базы невозможно.
Отдельно стоит таблица dbo._UsersWork (в некоторых версиях — с другим именем): в ней платформа ведёт технический учёт работы пользователей, но и она не является «таблицей учётных записей» — это рабочие данные сеансов, а не справочник логинов.
Почему нельзя править пользователей напрямую в SQL
Теоретически запись в Params можно изменить запросом UPDATE. На практике это почти гарантированно приводит к повреждению структуры хранения: сериализованный формат не документирован, контрольные данные не совпадут, и информационная база может перестать открываться или потерять список пользователей целиком.
Дополнительный риск — кластер серверов 1С кеширует параметры базы. Даже «удачная» правка может быть перезаписана работающим сервером или проявиться непредсказуемо после перезапуска служб.
Безопасные способы получить список пользователей
Самый простой путь — конфигуратор: меню «Администрирование → Пользователи». Там доступен полный список учётных записей с ролями и настройками аутентификации. Способ подходит, когда есть доступ в конфигуратор.
Программно список получают через встроенный язык — объект ПользователиИнформационнойБазы.ПолучитьПользователей(). Удобно оформить это как внешнюю обработку или выполнить через консоль кода, если она есть в конфигурации. Результат можно выгрузить в табличный документ или файл.
Для автоматизации используют пакетный режим конфигуратора или утилиты администрирования кластера (rac/ras) — они дают сведения о сеансах и активных пользователях. В типовых конфигурациях на БСП список пользователей справочника можно выгрузить обычным запросом или отчётом.
- 1Откройте конфигуратор под учётной записью с правами администратора
- 2Перейдите в меню «Администрирование → Пользователи»
- 3Проверьте список: имена, роли, признаки аутентификации ОС
- 4Если нужна выгрузка — используйте обработку с ПользователиИнформационнойБазы.ПолучитьПользователей()
- 5Сверьте результат с активными сеансами в консоли кластера
Частая задача: сбросить пароль администратора через SQL
Классическая ситуация — пароль единственного администратора утерян, доступа в конфигуратор нет. В сообществе известен приём с правкой таблицы Params: запись со списком пользователей переносится из копии базы, где заведён известный пользователь, или редактируется напрямую. Этот способ действительно существует, но он не поддерживается вендором и опасен.
Безопасная последовательность выглядит так: остановить работу пользователей, сделать полный бэкап базы средствами SQL Server, выполнить манипуляции на копии, проверить вход и только потом переносить результат в рабочую базу. Если есть возможность, предпочтительнее восстановить доступ через другую учётную запись с административными правами или через аутентификацию ОС, если она была настроена.
Как проверить результат и не навредить базе
После любых операций с доступом проверьте три вещи: база открывается в конфигураторе, список пользователей отображается полностью, вход под тестовой учётной записью проходит. Если список пользователей пуст или конфигуратор сообщает об ошибке структуры — немедленно восстанавливайте бэкап.
Для регулярного контроля полезно периодически выгружать список пользователей штатными средствами и сравнивать с предыдущими версиями: так заметны несанкционированные учётные записи.
Как проверить результат
База открывается, ошибок структуры нет
Ошибка чтения параметров базы — восстанавливайте бэкап
Все учётные записи на месте, роли корректны
Список пуст или часть пользователей пропала
Тестовый пользователь входит штатно
Ошибки аутентификации у ранее работавших учётных записей
FAQ
В какой таблице SQL хранятся пароли пользователей 1С?
Пароли в открытом виде не хранятся нигде. Хеши паролей находятся внутри сериализованной записи списка пользователей в таблице Params. Извлечь из них исходный пароль невозможно — можно только задать новый штатными средствами.
Можно ли прочитать список пользователей обычным SELECT?
Нет. Запись в Params — бинарные данные во внутреннем формате платформы. Для чтения используйте конфигуратор или встроенный язык (ПользователиИнформационнойБазы.ПолучитьПользователей()).
Где хранятся пользователи справочника «Пользователи» в типовых конфигурациях?
Это обычный справочник, его данные лежат в таблице вида _Reference… с соответствующим номером объекта метаданных. Точное имя таблицы можно узнать через функцию «ПолучитьСтруктуруХраненияБазыДанных» в конфигураторе.
Что делать, если утерян пароль единственного администратора?
Штатных средств сброса без доступа к базе нет. На практике применяют перенос записи Params из копии с известным пользователем, но это неподдерживаемая операция: делайте её только на копии с полным бэкапом. Профилактика — минимум две учётные записи с полными правами и настроенная аутентификация ОС.
Отличается ли хранение пользователей в файловой и клиент-серверной базе?
Логика одинаковая: список пользователей сериализуется в параметры базы. Разница только в физическом носителе — файл 1Cv8.1CD либо таблица Params в SQL Server, PostgreSQL или другой СУБД.
Можно ли добавить пользователя напрямую SQL-запросом?
Нет, это недокументированная и опасная операция. Добавляйте пользователей через конфигуратор, встроенный язык или механизмы интеграции (например, аутентификацию ОС или OpenID в поддерживаемых сценариях).
Что важно запомнить
Пользователи 1С хранятся в сериализованном виде в служебной таблице Params, отдельной читаемой таблицы учётных записей в SQL нет. Работайте со списком пользователей только штатными средствами платформы, а любые эксперименты с Params — исключительно на копии с полным бэкапом.