Учётные записи 1С:Предприятия 8.3: таблица v8users, файл базы и справочник «Пользователи»

· 9 мин

Содержание

1С 8.3 хранит список пользователей и их пароли внутри самой информационной базы — в служебной таблице v8users. В файловом варианте эта таблица спрятана в файле 1Cv8.1CD, в клиент-серверном — лежит в базе данных на SQL-сервере (MS SQL, PostgreSQL). Пароли там записаны не открытым текстом, а в виде хеша.

Отдельного файла «users.txt» на диске нет. Поэтому скопировать список пользователей, не трогая базу, нельзя, а перенос базы через .dt уносит с собой и всех пользователей.

Где хранятся пользователи файловой базы

В файловом режиме вся база — один файл 1Cv8.1CD. В нём и конфигурация, и данные, и служебные таблицы. Пользователи — одна из таких служебных таблиц.

Что это значит на практике:

  • 📁 скопировали 1Cv8.1CD в другую папку — у копии те же пользователи и те же пароли;
  • 🔒 открыть таблицу пользователей обычными средствами (Блокнотом, Excel) не выйдет — формат файла внутренний;
  • 🧰 посмотреть содержимое можно только сторонними утилитами для чтения формата 1CD, и это уже не штатный путь;
  • ♻️ удалить пользователя «на диске» отдельно от базы невозможно — только через Конфигуратор, режим 1С:Предприятие или код.

Рядом с файлом базы могут лежать служебные файлы: 1Cv8.1CL (блокировки), папка 1Cv8Log (журнал регистрации). Пользователей в них нет. Журнал регистрации хранит только историю действий с именами пользователей, но не учётные записи.

Если нужно понять, где на диске находится файловая база, откройте окно запуска 1С, выделите базу и нажмите «Изменить». В поле каталога указан путь к папке с 1Cv8.1CD.

Где лежат учётные записи в клиент-серверном варианте

В клиент-серверной базе пользователи хранятся в таблице v8users той базы данных, которая создана для информационной базы на SQL-сервере. В PostgreSQL имя таблицы в нижнем регистре — v8users, в MS SQL — v8users в схеме dbo.

Основные поля таблицы:

ПолеЧто в нём
IDуникальный идентификатор пользователя (GUID)
Nameимя для входа, которое видно в окне авторизации
Descrполное имя
OSNameпользователь Windows для аутентификации ОС
Dataдвоичные данные: хеш пароля, роли, настройки входа

Посмотреть имена можно обычным запросом на чтение. Например, в MS SQL Server Management Studio:

SELECT Name, Descr, OSName
FROM dbo.v8users
ORDER BY Name;

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

Читать таблицу запросом безопасно. Изменять её через SQL — нет. Любая запись в v8users в обход платформы может сделать базу недоступной для всех пользователей. Перед любыми работами с таблицами 1С на уровне СУБД сделайте резервную копию базы.

Существует известный администраторам приём «сброса» пользователей через переименование v8users и удаление записи users.usr из таблицы Params. Это неподдерживаемый способ: применяйте его только к своей базе, только на копии и только когда штатно войти невозможно.

Не путайте с данными кластера

На сервере 1С есть ещё один список — администраторы кластера и центрального сервера. Он хранится не в информационной базе, а в реестре кластера, в каталоге службы (srvinfo\reg_1541, файл 1CV8Clst.lst). Это другие учётные записи: они дают доступ к консоли кластера, но не к данным базы.

Точно так же отдельно живёт пользователь СУБД (логин SQL-сервера, под которым кластер подключается к базе). Его пароль задаётся в свойствах информационной базы в консоли кластера и к списку пользователей 1С не относится.

Пользователь ИБ и элемент справочника «Пользователи»: в чём разница

Главная путаница возникает, когда в одной базе видят два списка пользователей. Они действительно разные.

Пользователь информационной базы — объект платформы. Он хранится в v8users, его видно в Конфигураторе: Администрирование → Пользователи. У него есть имя, пароль, роли, способы аутентификации. Без него войти в базу нельзя.

Элемент справочника «Пользователи» — обычные данные прикладной конфигурации (БП 3.0, ЗУП 3.1, УТ 11 и других на Библиотеке стандартных подсистем). Он лежит в таблице справочника, как контрагент или номенклатура. Его используют в документах как «Ответственный», «Автор», в настройках прав по группам доступа.

Связь между ними — реквизит справочника ИдентификаторПользователяИБ. В нём хранится тот самый ID из v8users.

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

В типовых конфигурациях пользователей заводят в режиме 1С:Предприятие: Администрирование → Настройки пользователей и прав → Пользователи (БП 3.0, ЗУП 3.1, УТ 11). При записи карточки программа сама создаёт или меняет пользователя ИБ и проставляет связь.

Если завести пользователя только в Конфигураторе, в справочнике его не будет, и в типовой конфигурации он получит ошибки прав при входе или работе. Обратная ситуация: элемент справочника есть, а пользователя ИБ нет — тогда человек просто не увидит себя в окне входа.

Где искать и править пользователя в вашем случае?

Какие файлы и пути на компьютере связаны с пользователями

Учётных записей вне базы нет, но вокруг них есть несколько мест на диске, которые часто путают со «списком пользователей».

  • 📄 %APPDATA%\1C\1CEStart\ibases.v8i — список баз в окне запуска. Там пути и строки подключения, пользователей и паролей нет.
  • 🗂 %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\ — локальный кеш и настройки клиента по каждой базе. Сюда же клиент запоминает последнее введённое имя пользователя, чтобы подставить его в окно входа.
  • 🖥 каталог службы сервера 1С (srvinfo) — реестр кластера и администраторы кластера, но не пользователи баз.
  • 💾 файл .dt — выгрузка базы. Внутри есть и пользователи с паролями, поэтому хранить .dt нужно так же бережно, как саму базу.

Строка подключения в ярлыке или ibases.v8i может содержать параметры /N и /P (имя и пароль). Это открытый текст. Если кто-то прописал так пароль администратора, удалите его из ярлыка и смените пароль.

Пользовательские настройки форм и отчётов (хранилища настроек) в файловом и клиент-серверном режимах хранятся в базе, в служебных таблицах. Удаление кеша в %APPDATA% не стирает ни пользователей, ни их сохранённые варианты отчётов.

Как защищены пароли и что делать для безопасности

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

Но хеш — не броня. Тот, кто получил копию 1Cv8.1CD или доступ к SQL-базе, может попытаться подобрать простые пароли перебором. Поэтому защищать надо в первую очередь доступ к файлам.

Что делает защиту реальной:

  1. Закройте папку файловой базы правами NTFS: доступ на запись только тем, кто работает в базе, без «Все» и гостевых групп.
  2. На SQL-сервере выдайте логину кластера права только на свои базы. Не давайте пользователям 1С прямого доступа к SQL.
  3. Включите требования к паролям: в Конфигураторе Администрирование → Параметры информационной базы задаются минимальная длина и проверка сложности. В типовых конфигурациях похожие настройки есть в разделе настроек входа рядом со списком пользователей.
  4. Переведите сотрудников на аутентификацию ОС, где это возможно. Тогда пароль 1С не нужен вовсе, вход идёт по доменной учётной записи Windows.
  5. Шифруйте и храните под замком выгрузки .dt и резервные копии.
Проверка безопасности учётных записей
Выполнено: 0 / 6

Если в базе нет ни одного пользователя, платформа пускает в неё без авторизации и с полными правами. Удалив последнего пользователя в Конфигураторе, вы открываете базу всем, у кого есть к ней доступ по сети.

Как получить и изменить список пользователей из кода

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

Выгрузить список с основными свойствами:

&НаСервере
Процедура ВывестиПользователейНаСервере()

    Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();

    Для Каждого ПользовательИБ Из Пользователи Цикл
        Сообщить(СтрШаблон("%1 | %2 | пароль задан: %3 | ОС: %4",
            ПользовательИБ.Имя,
            ПользовательИБ.ПолноеИмя,
            ?(ПользовательИБ.ПарольУстановлен, "да", "нет"),
            ПользовательИБ.ПользовательОС));
    КонецЦикла;

КонецПроцедуры

Найти пользователя и сменить ему пароль:

&НаСервере
Процедура СменитьПарольНаСервере(ИмяПользователя, НовыйПароль)

    ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
    Если ПользовательИБ = Неопределено Тогда
        ВызватьИсключение СтрШаблон("Пользователь %1 не найден", ИмяПользователя);
    КонецЕсли;

    ПользовательИБ.Пароль = НовыйПароль;
    ПользовательИБ.Записать();

КонецПроцедуры

Полезные свойства объекта ПользовательИнформационнойБазы:

  • Имя, ПолноеИмя — имя для входа и представление;
  • ПарольУстановлен — задан ли пароль (сам пароль прочитать нельзя);
  • АутентификацияСтандартная, АутентификацияОС, ПользовательОС — способы входа;
  • Роли — коллекция ролей, можно проверить Роли.Содержит(Метаданные.Роли.ПолныеПрава);
  • УникальныйИдентификатор — тот самый ID, который записывается в справочник в ИдентификаторПользователяИБ.

Текущего пользователя получают через ПользователиИнформационнойБазы.ТекущийПользователь().

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

Перенос пользователей в другую базу

Штатного «экспорта только пользователей» в Конфигураторе нет. Варианты:

СпособКогда подходитРиски
Выгрузка и загрузка .dtновая база — полная копия старойданные целевой базы заменяются полностью
Код через ПользователиИнформационнойБазыразные базы, нужен только состав пользователейпароли не переносятся, их придётся задать заново
Заведение вручнуюдо 10–15 пользователейошибки в ролях, долго

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

Частые вопросы

Можно ли увидеть пароль пользователя 1С?
Нет. В базе хранится хеш, и ни Конфигуратор, ни режим 1С:Предприятие не показывают исходный пароль. Администратор может только задать новый.
Почему в Конфигураторе один список пользователей, а в программе другой?
В Конфигураторе — пользователи информационной базы, в программе — справочник «Пользователи». Это разные объекты, связанные по идентификатору. Расхождение обычно значит, что пользователя завели только в одном месте.
Сохранятся ли пользователи, если обновить конфигурацию?
Да. Обновление меняет конфигурацию, а таблица пользователей остаётся. Роли, которых больше нет в новой конфигурации, у пользователей пропадут.
Переносятся ли пользователи при копировании базы?
Да. Копия файла 1Cv8.1CD, выгрузка .dt и резервная копия SQL-базы содержат всех пользователей с паролями.
Что будет с документами, если удалить пользователя?
Документы ссылаются на элемент справочника «Пользователи», а не на пользователя ИБ. Поэтому в типовых конфигурациях сотрудника не удаляют, а помечают недействительным и снимают ему право входа — история авторства в документах сохраняется.