Поиск пользователя в базе 1С: от списка до таблицы SQL
Содержание
Чтобы найти пользователя 1С в типовой конфигурации, откройте Администрирование → Настройки пользователей и прав → Пользователи и наберите в списке часть фамилии или логина. Если человека там нет, ищите в Конфигураторе: Администрирование → Пользователи. Кто работает в базе прямо сейчас, покажет консоль кластера серверов, а кто заходил вчера — журнал регистрации.
Способ выбирают по тому, что известно на входе. Есть ФИО или логин — хватит списка. Есть только GUID из лога или ошибки — нужен короткий код. Есть имя компьютера или время события — журнал регистрации. Доступа к программе нет, а к СУБД есть — запрос к таблице v8users, только на чтение.
Два списка пользователей: что именно вы ищете
В базе на платформе 8.3 пользователь живёт в двух местах сразу. Путаница между ними — главная причина, по которой «пользователь есть, но его не видно».
| Где хранится | Что это | Где смотреть |
|---|---|---|
| Пользователи информационной базы | Учётная запись платформы: имя для входа, пароль, роли, вход через Windows | Конфигуратор, Администрирование → Пользователи |
| Справочник «Пользователи» | Карточка в конфигурации: ФИО, группы доступа, контакты, настройки | Режим 1С:Предприятие, раздел настроек пользователей |
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) эти записи связаны. В карточке справочника хранится реквизит ИдентификаторПользователяИБ — это GUID учётной записи платформы.
Связь бывает разорвана:
- 🔸 учётную запись завели в Конфигураторе, а карточку в справочнике — нет;
- 🔸 карточку пометили недействительной, а учётная запись осталась;
- 🔸 учётную запись удалили, а карточка с пустой связью висит в списке.
Поэтому, если пользователь не нашёлся в одном месте, проверьте второе.
Как найти пользователя в списке программы
Это основной способ для администратора и ответственного бухгалтера. Нужны права администратора или полные права.
| Конфигурация | Путь к списку |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Настройки пользователей и прав → Пользователи |
| Зарплата и управление персоналом 3.1 | Администрирование → Настройки пользователей и прав → Пользователи |
| Управление торговлей 11 | НСИ и администрирование → Настройки пользователей и прав → Пользователи |
Поиск по ФИО или логину
- Откройте список пользователей.
- Нажмите
Ctrl+Fили просто начните печатать в строке поиска над списком. - Введите часть фамилии: «Иван» найдёт и «Иванова», и «Иванченко».
- Откройте карточку двойным щелчком.
В карточке смотрите поля «Полное имя» и «Имя (для входа)». Логин часто не совпадает с ФИО: ivanova, buh2, Склад1. Если ищете по логину из окна входа, вводите именно его.
Поиск по группе
Слева от списка обычно есть дерево групп пользователей. Встаньте на нужную группу — список сузится до её участников. Это удобно, когда известен только отдел: «кто-то из бухгалтерии».
Недействительные пользователи
Уволенных сотрудников принято не удалять, а помечать флагом «Недействителен» в карточке. Такие записи в списке могут быть скрыты отбором. Если человек точно был, а в списке его нет — проверьте настройки отбора списка и снимите ограничение на недействительных.
Ищите по тексту, а не прокруткой. В базе на 200 сотрудников глазами легко пропустить запись, отсортированную по полному имени, когда вы ищете по логину.
Поиск пользователя в Конфигураторе
Конфигуратор показывает учётные записи платформы — то, с чем человек реально входит в базу. Сюда идут, когда справочника нет, конфигурация нетиповая или нужно проверить способ аутентификации.
- Запустите базу в режиме «Конфигуратор» под пользователем с правами администратора.
- Откройте
Администрирование → Пользователи. - Щёлкните по заголовку колонки «Имя» или «Полное имя», чтобы отсортировать список.
- Начните набирать имя — курсор перейдёт к первой совпадающей строке.
- Откройте учётную запись двойным щелчком.
На вкладке «Основные» видно:
- ✅ включена ли аутентификация 1С:Предприятия и есть ли пароль;
- ✅ включена ли аутентификация операционной системы и какой доменный логин привязан (
\\DOMAIN\ivanova); - ✅ стоит ли флажок «Показывать в списке выбора».
На вкладке «Прочие» — роли и основной язык.
Учётные записи в Конфигураторе меняйте только если в базе нет справочника «Пользователи» или вы точно знаете, что делаете. В конфигурациях на БСП правильный путь — через карточку в режиме 1С:Предприятие: иначе связь карточки и учётной записи может разойтись.
Если знаете только доменный логин Windows
Пользователь входит без пароля, по учётке Windows, и вы знаете только DOMAIN\login. В списке Конфигуратора доменный логин не выводится колонкой, поэтому открывайте записи-кандидаты и смотрите вкладку «Основные». Быстрее найти по журналу регистрации или по консоли кластера: там видно имя пользователя 1С рядом с именем компьютера.
Кто сейчас в базе: консоль кластера и «Активные пользователи»
Частая задача администратора — понять, кто держит сеанс: база не обновляется, висит блокировка, кончились лицензии.
Обработка «Активные пользователи»
В типовых конфигурациях список открытых сеансов есть прямо в программе. Его вызывают из раздела администрирования (группа «Обслуживание») или через меню «Функции для технического специалиста» (в старых релизах — «Все функции») → «Обработки». В Конфигураторе тот же список — Администрирование → Активные пользователи.
В списке видно имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание, веб-клиент), время начала и номер сеанса.
Консоль администрирования серверов 1С
Для клиент-серверной базы надёжнее смотреть со стороны кластера. Консоль подключается к агенту сервера (по умолчанию порт 1540).
- Откройте «Администрирование серверов 1С Предприятия».
- Раскройте
Центральный сервер → Кластеры → <кластер> → Информационные базы → <база> → Сеансы. - Отсортируйте по колонке «Пользователь» или «Компьютер».
- Сеансы всех баз кластера собраны в ветке
Кластеры → <кластер> → Сеансы.
Если консоль не открывается после установки новой версии платформы, перерегистрируйте оснастку: запустите от администратора 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 журнал открывается из Администрирование → Обслуживание, в Конфигураторе — Администрирование → Журнал регистрации.
Отбор по пользователю или компьютеру
- Откройте журнал и вызовите настройку отбора.
- Укажите интервал — без него журнал за год грузится долго.
- Заполните нужное поле: «Пользователь», «Компьютер» или «Событие».
- Примените отбор и откройте нужную запись.
Полезные события для поиска:
- 🔑 «Сеанс. Аутентификация» — кто и с какого компьютера вошёл;
- ⛔ «Сеанс. Ошибка аутентификации» — кто подбирает пароль или ошибся логином;
- 👤 «Пользователи. Новый», «Пользователи. Изменение», «Пользователи. Удаление» — кто и когда создал, поменял или удалил учётную запись.
Если пользователя уже удалили, в журнале вместо имени будет его 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.