Поиск пользователя в базе 1С: от списка до таблицы SQL

· 9 мин

Содержание

Чтобы найти пользователя 1С в типовой конфигурации, откройте Администрирование → Настройки пользователей и прав → Пользователи и наберите в списке часть фамилии или логина. Если человека там нет, ищите в Конфигураторе: Администрирование → Пользователи. Кто работает в базе прямо сейчас, покажет консоль кластера серверов, а кто заходил вчера — журнал регистрации.

Способ выбирают по тому, что известно на входе. Есть ФИО или логин — хватит списка. Есть только GUID из лога или ошибки — нужен короткий код. Есть имя компьютера или время события — журнал регистрации. Доступа к программе нет, а к СУБД есть — запрос к таблице v8users, только на чтение.

Два списка пользователей: что именно вы ищете

В базе на платформе 8.3 пользователь живёт в двух местах сразу. Путаница между ними — главная причина, по которой «пользователь есть, но его не видно».

Где хранитсяЧто этоГде смотреть
Пользователи информационной базыУчётная запись платформы: имя для входа, пароль, роли, вход через WindowsКонфигуратор, Администрирование → Пользователи
Справочник «Пользователи»Карточка в конфигурации: ФИО, группы доступа, контакты, настройкиРежим 1С:Предприятие, раздел настроек пользователей

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

Связь бывает разорвана:

  • 🔸 учётную запись завели в Конфигураторе, а карточку в справочнике — нет;
  • 🔸 карточку пометили недействительной, а учётная запись осталась;
  • 🔸 учётную запись удалили, а карточка с пустой связью висит в списке.

Поэтому, если пользователь не нашёлся в одном месте, проверьте второе.

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

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

КонфигурацияПуть к списку
Бухгалтерия предприятия 3.0Администрирование → Настройки пользователей и прав → Пользователи
Зарплата и управление персоналом 3.1Администрирование → Настройки пользователей и прав → Пользователи
Управление торговлей 11НСИ и администрирование → Настройки пользователей и прав → Пользователи

Поиск по ФИО или логину

  1. Откройте список пользователей.
  2. Нажмите Ctrl+F или просто начните печатать в строке поиска над списком.
  3. Введите часть фамилии: «Иван» найдёт и «Иванова», и «Иванченко».
  4. Откройте карточку двойным щелчком.

В карточке смотрите поля «Полное имя» и «Имя (для входа)». Логин часто не совпадает с ФИО: ivanova, buh2, Склад1. Если ищете по логину из окна входа, вводите именно его.

Поиск по группе

Слева от списка обычно есть дерево групп пользователей. Встаньте на нужную группу — список сузится до её участников. Это удобно, когда известен только отдел: «кто-то из бухгалтерии».

Недействительные пользователи

Уволенных сотрудников принято не удалять, а помечать флагом «Недействителен» в карточке. Такие записи в списке могут быть скрыты отбором. Если человек точно был, а в списке его нет — проверьте настройки отбора списка и снимите ограничение на недействительных.

Ищите по тексту, а не прокруткой. В базе на 200 сотрудников глазами легко пропустить запись, отсортированную по полному имени, когда вы ищете по логину.

Поиск пользователя в Конфигураторе

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

  1. Запустите базу в режиме «Конфигуратор» под пользователем с правами администратора.
  2. Откройте Администрирование → Пользователи.
  3. Щёлкните по заголовку колонки «Имя» или «Полное имя», чтобы отсортировать список.
  4. Начните набирать имя — курсор перейдёт к первой совпадающей строке.
  5. Откройте учётную запись двойным щелчком.

На вкладке «Основные» видно:

  • ✅ включена ли аутентификация 1С:Предприятия и есть ли пароль;
  • ✅ включена ли аутентификация операционной системы и какой доменный логин привязан (\\DOMAIN\ivanova);
  • ✅ стоит ли флажок «Показывать в списке выбора».

На вкладке «Прочие» — роли и основной язык.

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

Если знаете только доменный логин Windows

Пользователь входит без пароля, по учётке Windows, и вы знаете только DOMAIN\login. В списке Конфигуратора доменный логин не выводится колонкой, поэтому открывайте записи-кандидаты и смотрите вкладку «Основные». Быстрее найти по журналу регистрации или по консоли кластера: там видно имя пользователя 1С рядом с именем компьютера.

Кто сейчас в базе: консоль кластера и «Активные пользователи»

Частая задача администратора — понять, кто держит сеанс: база не обновляется, висит блокировка, кончились лицензии.

Обработка «Активные пользователи»

В типовых конфигурациях список открытых сеансов есть прямо в программе. Его вызывают из раздела администрирования (группа «Обслуживание») или через меню «Функции для технического специалиста» (в старых релизах — «Все функции») → «Обработки». В Конфигураторе тот же список — Администрирование → Активные пользователи.

В списке видно имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание, веб-клиент), время начала и номер сеанса.

Консоль администрирования серверов 1С

Для клиент-серверной базы надёжнее смотреть со стороны кластера. Консоль подключается к агенту сервера (по умолчанию порт 1540).

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Раскройте Центральный сервер → Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
  3. Отсортируйте по колонке «Пользователь» или «Компьютер».
  4. Сеансы всех баз кластера собраны в ветке Кластеры → <кластер> → Сеансы.

Если консоль не открывается после установки новой версии платформы, перерегистрируйте оснастку: запустите от администратора RegMSC.cmd из папки bin нужной версии или выполните regsvr32 radmin.dll оттуда же.

Через командную строку rac

Когда графической консоли нет (Linux-сервер, удалённый доступ по SSH), работает утилита rac при запущенном сервере администрирования ras:

rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы>

В выводе session list ищите поля user-name и host — имя пользователя 1С и компьютер. Если кластер защищён паролем администратора, добавьте --cluster-user и --cluster-pwd. Остальные параметры смотрите в справке rac help session.

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

Как найти пользователя по GUID

GUID пользователя всплывает в технологическом журнале, в журнале регистрации удалённых пользователей, в сообщениях обмена и в выгрузках. Выглядит так: 6f9619ff-8b86-d011-b42d-00cf4fc964ff.

Важно понять, чей это GUID. Он может принадлежать учётной записи платформы или элементу справочника «Пользователи». Проверьте оба варианта.

Код для поиска

Создайте внешнюю обработку , добавьте на форму команду и выполните процедуру на сервере. Нужны административные права: без них список пользователей информационной базы недоступен.

&НаСервере
Процедура НайтиПоGUIDНаСервере(СтрокаGUID)

    ИД = Новый УникальныйИдентификатор(СтрокаGUID);

    // 1. Учётная запись платформы
    ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ИД);
    Если ПользовательИБ <> Неопределено Тогда
        Сообщить("Пользователь ИБ: " + ПользовательИБ.Имя + " (" + ПользовательИБ.ПолноеИмя + ")");
    Иначе
        Сообщить("Среди пользователей ИБ такого GUID нет");
    КонецЕсли;

    // 2. Карточка, связанная с этой учётной записью
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Пользователи.Ссылка,
    |    Пользователи.Наименование
    |ИЗ
    |    Справочник.Пользователи КАК Пользователи
    |ГДЕ
    |    Пользователи.ИдентификаторПользователяИБ = &ИД";
    Запрос.УстановитьПараметр("ИД", ИД);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Сообщить("Карточка в справочнике: " + Выборка.Наименование);
    КонецЦикла;

    // 3. Сам элемент справочника с таким GUID
    Ссылка = Справочники.Пользователи.ПолучитьСсылку(ИД);
    Объект = Ссылка.ПолучитьОбъект();
    Если Объект <> Неопределено Тогда
        Сообщить("Элемент справочника с этим GUID: " + Объект.Наименование);
    КонецЕсли;

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

Обратная задача — узнать GUID известного пользователя: у учётной записи это свойство УникальныйИдентификатор, у элемента справочника — метод Ссылка.УникальныйИдентификатор().

Для поиска по логину есть метод ПользователиИнформационнойБазы.НайтиПоИмени("ivanova"). Он ищет по имени для входа, а не по ФИО.

Журнал регистрации: кто заходил и откуда

Журнал отвечает на вопросы «кто это сделал», «под кем зашли с этого компьютера» и «кто был в базе в 3 часа ночи».

В Бухгалтерии 3.0 и ЗУП 3.1 журнал открывается из Администрирование → Обслуживание, в Конфигураторе — Администрирование → Журнал регистрации.

Отбор по пользователю или компьютеру

  1. Откройте журнал и вызовите настройку отбора.
  2. Укажите интервал — без него журнал за год грузится долго.
  3. Заполните нужное поле: «Пользователь», «Компьютер» или «Событие».
  4. Примените отбор и откройте нужную запись.

Полезные события для поиска:

  • 🔑 «Сеанс. Аутентификация» — кто и с какого компьютера вошёл;
  • ⛔ «Сеанс. Ошибка аутентификации» — кто подбирает пароль или ошибся логином;
  • 👤 «Пользователи. Новый», «Пользователи. Изменение», «Пользователи. Удаление» — кто и когда создал, поменял или удалил учётную запись.

Если пользователя уже удалили, в журнале вместо имени будет его GUID. Дальше — поиск по GUID из предыдущего раздела или по файлам журнала.

Поиск по файлам журнала

Журнал лежит в каталоге 1Cv8Log внутри папки базы (файловая версия) или в каталоге данных сервера (клиент-серверная). В старом текстовом формате в файле 1Cv8.lgf есть словарь, где пользователи записаны строками вида:

{1,6f9619ff-8b86-d011-b42d-00cf4fc964ff,"Иванова",3},

Здесь пара «GUID — имя» сохраняется даже после удаления учётной записи. Поиск по GUID через findstr или любой текстовый редактор сразу даёт имя. Новый формат журнала (файл .lgd) — это база SQLite, её открывают любым просмотрщиком SQLite только на чтение.

Поиск пользователя прямо в таблице SQL

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

Учётные записи платформы хранятся в таблице v8users. Имя для входа — в колонке Name, полное имя — в Descr, доменный логин — в OSName.

Для MS SQL Server:

SELECT Name, Descr, OSName, Changed
FROM dbo.v8users
WHERE Name LIKE N'%иван%' OR Descr LIKE N'%иван%'
ORDER BY Name;

Для PostgreSQL имена колонок в нижнем регистре:

SELECT name, descr, osname
FROM v8users
WHERE name ILIKE '%иван%' OR descr ILIKE '%иван%';

Только чтение. Изменение и удаление строк в v8users в обход платформы ломает учётные записи и нарушает лицензионное соглашение 1С. Пароли там лежат не открытым текстом, их нельзя «прочитать» запросом.

Справочник «Пользователи» в СУБД — отдельная таблица с именем вида _Reference123. Номер зависит от конфигурации. Узнать его можно в 1С функцией ПолучитьСтруктуруХраненияБазыДанных(). Наименование элемента лежит в колонке _Description.

В файловой базе SQL-доступа нет: таблица пользователей находится внутри файла 1Cv8.1CD. Там остаются Конфигуратор и журнал регистрации.

Почему пользователь не находится

Диагностика: выберите симптом

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

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

Как в коде узнать текущего пользователя?
Функция ИмяПользователя() возвращает логин, ПолноеИмяПользователя() — полное имя. В конфигурациях на БСП ссылку на карточку даёт Пользователи.ТекущийПользователь().
Можно ли узнать пароль найденного пользователя?
Нет. Платформа хранит не пароль, а его хеш. Администратор может только задать новый пароль в карточке пользователя.
Как найти пользователя, если в базе нет ни одного администратора с известным паролем?
Войти без пароля можно только под учётной записью, у которой пароль пустой. Иначе нужен человек, знающий пароль, или восстановление из резервной копии, где пароль известен.
Видит ли консоль кластера пользователей файловой базы?
Нет. Консоль работает только с клиент-серверными базами. Для файловой базы используйте «Активные пользователи» и журнал регистрации.
Сколько пользователей сейчас занимают лицензии?
В консоли кластера в списке сеансов видно лицензию каждого сеанса. Через командную строку то же покажет rac session list --licenses.