Кто есть в базе 1С: выгружаем пользователей, их роли и активные сеансы

· 9 мин

Содержание

Быстрее всего вывести список пользователей 1С в Конфигураторе: Администрирование → Пользователи. В пользовательском режиме БП 3.0 и ЗУП 3.1 тот же список лежит в Администрирование → Настройки пользователей и прав → Пользователи, а выгрузить его в Excel можно командой Ещё → Вывести список….

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

Что именно вы хотите получить: три разных списка

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

Что нужноГде хранитсяЧем смотреть
👤 Все учётные записи, под которыми можно войтиПользователи информационной базы (платформа)Конфигуратор, код, SQL-таблица v8users
🗂 Сотрудники с ФИО, группами доступа, контактамиСправочник «Пользователи» (типовые конфигурации на БСП)Раздел администрирования, запрос
🟢 Кто в базе прямо сейчасСеансы«Активные пользователи», консоль кластера, rac

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

Для отчёта «кто может зайти в базу» берите список из Конфигуратора или код. Для отчёта «кто у нас работает и с какими правами» — справочник и группы доступа.

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

Через Конфигуратор

  1. Запустите базу в режиме Конфигуратора под пользователем с правом администрирования.
  2. Откройте Администрирование → Пользователи.
  3. В списке видно имя для входа и полное имя. Двойной щелчок открывает карточку.
  4. На вкладке «Основные» — способы аутентификации (1С, операционная система, OpenID) и пользователь Windows. На вкладке «Прочие» — роли, основной язык и режим запуска.

Если список пустой, в базе нет ни одной учётной записи. Такая база открывается без запроса логина и пароля, и любой вошедший получает полные права.

Через пользовательский режим

В типовых конфигурациях на «Такси» путь к справочнику такой:

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

Чтобы сохранить список в файл:

  1. Откройте форму списка и настройте колонки через Ещё → Изменить форму…, если нужны дополнительные поля.
  2. Выберите Ещё → Вывести список…, отметьте нужные колонки и нажмите «ОК».
  3. В открывшемся табличном документе сохраните результат в формате .xlsx через меню сохранения.

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

Кто работает в базе прямо сейчас: активные сеансы

Файловая база

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

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

Клиент-серверная база: консоль администрирования

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

Узел «Соединения» показывает низкоуровневые подключения. Для вопроса «кто в базе» он менее удобен: у одного сеанса бывает несколько соединений.

Клиент-серверная база: утилита rac

Для скриптов и выгрузки в текстовый файл есть консольная утилита rac. Она работает через сервер администрирования RAS (по умолчанию порт 1545), поэтому служба RAS должна быть запущена.

rem 1. Узнать идентификатор кластера
rac localhost:1545 cluster list

rem 2. Узнать идентификатор информационной базы
rac localhost:1545 infobase summary list --cluster=<uuid-кластера>

rem 3. Сеансы конкретной базы
rac localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы>

rem То же с данными о лицензиях
rac localhost:1545 session list --cluster=<uuid-кластера> --licenses

Если на кластере задан администратор, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>. Вывод можно перенаправить в файл: > sessions.txt. Остальные параметры смотрите в rac help session.

rac и консоль показывают только сеансы. Реестр учётных записей базы через них не получить: для этого нужен Конфигуратор, код или SQL.

Пользователи в SQL: таблица v8users

В клиент-серверной базе учётные записи хранятся в служебной таблице v8users. Это удобно, когда платформа не запускается или нужно быстро сверить десятки баз.

Запрос для MS SQL Server:

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

Для PostgreSQL имя таблицы пишется строчными буквами, поля тоже: SELECT name, descr, osname FROM v8users;.

Что в полях:

  • 🔑 Name — имя для входа;
  • 📝 Descr — полное имя;
  • 🖥 OSName — привязанный пользователь Windows, если включена аутентификация ОС;
  • 🕒 Changed — дата последнего изменения записи.

Роли и настройки лежат в двоичном поле Data, разбирать его SQL-запросом бессмысленно. Список ролей получайте средствами платформы.

Только чтение. Любая правка v8users в обход платформы ломает учётные записи, а восстановить их потом можно лишь из резервной копии. Запросы выполняйте под учётной записью с правами только на чтение.

Справочник «Пользователи» в SQL хранится в таблице вида _Reference<номер>. Номер у каждой конфигурации свой. Узнать его можно функцией ПолучитьСтруктуруХраненияБазыДанных() или внешней обработкой, которая показывает структуру хранения. Проще и надёжнее сделать то же запросом на языке 1С:

ВЫБРАТЬ
	Пользователи.Наименование КАК ФИО,
	Пользователи.Недействителен КАК Недействителен,
	Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторИБ
ИЗ
	Справочник.Пользователи КАК Пользователи
ГДЕ
	НЕ Пользователи.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
	ФИО

Запрос выполняется в любой консоли запросов. Поле ИдентификаторПользователяИБ связывает строку справочника с учётной записью платформы.

Роли и права доступа пользователей

Роли в Конфигураторе

В карточке пользователя (Администрирование → Пользователи) откройте вкладку «Прочие». Отмеченные флажки — роли, выданные этой учётной записи. Чтобы понять, что даёт роль, найдите её в дереве конфигурации в ветке Общие → Роли и откройте: редактор покажет права на каждый объект.

Ручной осмотр карточек подходит для 5–10 пользователей. Для 50 удобнее код из следующего раздела.

Группы доступа в типовых конфигурациях

В БП 3.0, ЗУП 3.1 и УТ 11 роли напрямую не назначают. Пользователя включают в группы доступа, а у группы есть профиль — набор ролей. Поэтому права смотрят так:

  1. Откройте карточку пользователя в справочнике.
  2. Перейдите по ссылке «Права доступа » на панели навигации карточки.
  3. Здесь видно, в каких группах состоит пользователь и какие профили к ним привязаны.

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

Какой список вам нужен?

Выгрузка списка кодом: внешняя обработка

Для полной картины — имя, ФИО, пользователь Windows и все роли в одной строке — создайте внешнюю обработку.

  1. В Конфигураторе выберите Файл → Новый… → Внешняя обработка.
  2. Добавьте форму, на форме — команду «ВывестиПользователей» и кнопку для неё.
  3. В модуль формы вставьте код:
&НаСервере
Процедура ВывестиПользователейНаСервере()

	Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл

		СписокРолей = Новый Массив;
		Для Каждого Роль Из ПользовательИБ.Роли Цикл
			СписокРолей.Добавить(Роль.Имя);
		КонецЦикла;

		Сообщить(СтрШаблон("%1 | %2 | ОС: %3 | роли: %4",
			ПользовательИБ.Имя,
			ПользовательИБ.ПолноеИмя,
			ПользовательИБ.ПользовательОС,
			СтрСоединить(СписокРолей, ", ")));

	КонецЦикла;

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

&НаКлиенте
Процедура ВывестиПользователей(Команда)
	ВывестиПользователейНаСервере();
КонецПроцедуры
  1. Сохраните обработку и откройте её в пользовательском режиме через Файл → Открыть.

Результат появится в окне сообщений, откуда его можно скопировать. СтрСоединить доступна с платформы 8.3.6, для более ранних релизов собирайте строку в цикле.

Полезные вариации того же кода:

  • 🛡 только администраторы: внутри цикла проверьте ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава). Имя роли ПолныеПрава есть в типовых конфигурациях на БСП, в самописной проверьте его в дереве ролей;
  • 🔐 кто входит по Windows: условие ПользовательИБ.АутентификацияОС;
  • 🙈 скрытые из списка выбора при входе: НЕ ПользовательИБ.ПоказыватьВСпискеВыбора.

Для активных сеансов есть функция ПолучитьСеансыИнформационнойБазы(). У каждого сеанса есть свойства Пользователь, ИмяКомпьютера, ИмяПриложения, НачалоСеанса. Это аналог окна «Активные пользователи», но в виде, удобном для логирования.

Если обработка нужна регулярно, сделайте вывод не в сообщения, а в табличный документ. Его сразу можно сохранить в Excel.

Что проверить при аудите учётных записей

Выгрузка ролей нужна обычно не сама по себе, а для проверки безопасности. Тем же циклом удобно отловить четыре вида проблемных записей:

  1. Без пароля. Условие ПользовательИБ.АутентификацияСтандартная И НЕ ПользовательИБ.ПарольУстановлен. Под такой записью войдёт любой, кто знает имя.
  2. С полными правами. Проверка роли ПолныеПрава, описанная выше. В рабочей базе таких записей обычно две-три: администратор 1С, резервная служебная запись, иногда главный бухгалтер.
  3. Уволенные сотрудники. Сравните выгрузку со списком работающих. Учётную запись уволенного лучше не удалять, а запретить ей вход: история документов при этом сохранится.
  4. Общие записи вроде «Бухгалтер» или «Склад». По журналу регистрации потом не понять, кто именно провёл документ. Заведите каждому сотруднику свою учётную запись.

Результат проверки сохраните вместе с датой: при следующем аудите будет с чем сравнить.

Почему список не выводится или выводится не тот

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

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

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

Можно ли посмотреть пароли пользователей 1С?
Нет. Платформа хранит только хеш пароля, ни Конфигуратор, ни SQL его не покажут. Забытый пароль администратор просто задаёт заново в карточке пользователя.
Как узнать, когда пользователь последний раз заходил в базу?
Через журнал регистрации: установите отбор по пользователю и по событию начала сеанса. Последняя строка и будет последним входом.
Можно ли получить список пользователей из файла 1Cv8.1CD без запуска 1С?
Штатно нет. Таблицы файловой базы читает только платформа. Запустите базу в Конфигураторе под администратором или сделайте копию и откройте её.
Почему пользователя нет в списке выбора при входе?
В его карточке снят флажок «Показывать в списке выбора». Пользователь при этом существует и может войти, если введёт имя вручную.
Сколько пользователей может быть в одной базе?
Число учётных записей платформа не ограничивает. Ограничено число одновременных сеансов — количеством лицензий.