Кто сейчас в базе 1С: от списка сеансов до консоли кластера и запросов к СУБД

· 10 мин

Содержание

Посмотреть активных пользователей в 1С быстрее всего так: Администрирование → Обслуживание → Активные пользователи в пользовательском режиме или Администрирование → Активные пользователи в Конфигураторе. Список покажет, кто подключён к базе прямо сейчас, с какого компьютера и через какое приложение. Это работает и в файловом, и в клиент-серверном варианте, но нужны права администратора.

Остальные способы нужны для других задач. Журнал регистрации отвечает на вопрос «кто заходил вчера». Консоль кластера и утилита rac показывают сеансы всех баз сервера сразу и позволяют их завершить. Запрос к СУБД видит не людей, а соединения рабочих процессов. Для облака и терминального сервера есть свои инструменты.

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

Выбор зависит от двух вещей: какой у вас вариант базы и что именно нужно узнать — текущее состояние или историю.

СпособЧто показываетВариант базыКому доступен
Обработка «Активные пользователи»Текущие сеансы одной базыФайловый и клиент-серверныйПользователь с правами администратора
Журнал регистрацииИстория входов и выходовЛюбойАдминистратор базы
Консоль кластера, racСеансы всех баз сервера, лицензии, рабочие процессыТолько клиент-серверныйАдминистратор кластера
Запрос к СУБДСоединения с базой данныхТолько клиент-серверныйАдминистратор СУБД
Кабинет облака, средства WindowsПользователи сервиса, сеансы RDP, открытые файлыОблако, терминал, сетевая папкаВладелец подписки, администратор Windows

💡 Если нужно просто выгнать всех перед обновлением — сразу идите в консоль кластера (для серверной базы) или в «Активные пользователи» (для файловой). Журнал регистрации тут не поможет: он хранит прошлое.

Способ 1. Обработка «Активные пользователи» в программе и Конфигураторе

Это штатный инструмент Библиотеки стандартных подсистем. Он есть во всех типовых конфигурациях на её основе: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, Комплексная автоматизация, ERP.

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

КонфигурацияПуть
Бухгалтерия предприятия 3.0Администрирование → Обслуживание → Активные пользователи
ЗУП 3.1Администрирование → Обслуживание → Активные пользователи
УТ 11, КА 2, ERPНСИ и администрирование → Администрирование → Обслуживание → Активные пользователи

Если ссылки не видно, есть запасной вход через меню всех функций:

  1. Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
  2. Выберите Функции для технического специалиста. В старых релизах платформы пункт называется «Все функции».
  3. Разверните ветку Обработки и откройте Активные пользователи.

Если пункта для технического специалиста в меню нет, включите его: главное меню, Сервис → Параметры, флажок «Отображать команду “Все функции”».

Что видно в списке

Каждая строка — один сеанс. Колонки:

  • 👤 Пользователь — имя из списка пользователей информационной базы;
  • 💻 Компьютер — сетевое имя машины, с которой подключились;
  • 🧩 Приложение — тонкий клиент, толстый клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение;
  • 🕒 Начало работы — время открытия сеанса;
  • 🔢 Сеанс — номер, по которому сеанс ищут в консоли кластера и журнале.

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

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

Завершённый сеанс обрывается без сохранения. Если бухгалтер в этот момент заполнял документ, несохранённые изменения пропадут. Предупредите людей заранее.

Из Конфигуратора

Откройте базу в режиме Конфигуратора и выберите Администрирование → Активные пользователи. Список проще, чем в программе, но зато работает в любой конфигурации, даже нетиповой и без БСП. Ваш собственный сеанс Конфигуратора тоже окажется в списке.

Способ 2. История входов в журнале регистрации

Обработка показывает «здесь и сейчас». Чтобы понять, кто работал ночью или в выходные, нужен журнал регистрации.

Где открыть:

  • в программе: Администрирование → Обслуживание → Журнал регистрации;
  • в Конфигураторе: Администрирование → Журнал регистрации.

Как отобрать только входы и выходы:

  1. Нажмите кнопку установки отбора.
  2. В поле событий оставьте Сеанс. Начало, Сеанс. Завершение и Сеанс. Аутентификация.
  3. Задайте период — например, последние сутки.
  4. При необходимости отберите конкретного пользователя или компьютер.

Каждое событие несёт номер сеанса. Если у сеанса есть «Начало», но нет «Завершения», вариантов два: человек ещё работает или клиент упал, и сеанс закрыла платформа по таймауту. Проверить, что именно, можно сравнением с обработкой «Активные пользователи».

Событие Сеанс. Аутентификация (ошибка) полезно для безопасности: так видно попытки входа с неверным паролем.

💡 Журнал ведётся, только если уровень регистрации не «Не регистрировать». Проверьте в Конфигураторе: Администрирование → Настройка журнала регистрации. События сеансов пишутся с уровнем «Информация», поэтому при уровне «Ошибки» или «Предупреждения» входов в журнале не будет.

Способ 3. Консоль кластера и утилита rac для серверной базы

В клиент-серверном варианте главный инструмент — оснастка «Администрирование серверов 1С:Предприятия». Она ставится вместе с платформой и видит сеансы всех баз кластера.

Через консоль

  1. Запустите оснастку. Если её нет в меню «Пуск», ярлык создаётся при установке компонента администрирования; при ошибке запуска зарегистрируйте radmin.dll из каталога bin нужной версии платформы командой regsvr32.
  2. Разверните Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер.
  3. Откройте Информационные базы → нужная база → Сеансы. Чтобы увидеть всех пользователей сервера, откройте узел Сеансы на уровне кластера.

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

Узел Соединения показывает технические подключения к рабочему процессу. Их больше, чем сеансов, и для вопроса «кто работает» они вторичны.

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

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

Утилита rac работает через сервер администрирования ras. Его нужно запустить отдельно, по умолчанию он слушает порт 1545:

ras cluster --daemon

Дальше узнайте идентификатор кластера и получите список сеансов:

rac cluster list
rac session list --cluster=<uuid-кластера>

Для отбора по одной базе сначала найдите её идентификатор, потом передайте его в список сеансов:

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

Если в кластере заданы администраторы, добавьте --cluster-user= и --cluster-pwd=. По лицензиям есть отдельный вывод: rac session list --licenses --cluster=<uuid-кластера>. Остальные параметры смотрите в rac help session.

В выводе ищите поля user-name, host, app-id, started-at, last-active-at. Поле app-id подскажет тип клиента: 1CV8C — тонкий клиент, 1CV8 — толстый, WebClient — браузер, Designer — Конфигуратор, BackgroundJob — фоновое задание, COMConnection — внешнее подключение.

Вывод rac удобно сохранять в файл по расписанию. Так получается простой мониторинг загрузки без сторонних программ.

Способ 4. Запрос к СУБД и программный список сеансов

Этот способ для опытных. Сразу о главном: СУБД не знает пользователей 1С. Все запросы к базе данных идут от рабочих процессов rphost под одной учётной записью сервера. Поэтому запрос к SQL покажет нагрузку и висящие соединения, но не имена бухгалтеров.

Microsoft SQL Server:

SELECT session_id, host_name, program_name, login_name,
       login_time, last_request_end_time, status
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('buh');

PostgreSQL:

SELECT pid, usename, application_name, client_addr,
       backend_start, state, query_start
FROM pg_stat_activity
WHERE datname = 'buh';

Вместо buh подставьте имя базы данных на сервере СУБД, оно указано в свойствах информационной базы в консоли кластера. Только чтение: не меняйте и не удаляйте записи в таблицах базы 1С средствами SQL — это ломает целостность данных.

Список сеансов кодом на встроенном языке

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

&НаСервере
Процедура ВывестиСеансыНаСервере()
	Сеансы = ПолучитьСеансыИнформационнойБазы();
	Для Каждого Сеанс Из Сеансы Цикл
		Если Сеанс.Пользователь = Неопределено Тогда
			ИмяПользователя = "<без пользователя>";
		Иначе
			ИмяПользователя = Сеанс.Пользователь.Имя;
		КонецЕсли;
		Сообщить(СтрШаблон("%1 | %2 | %3 | %4 | %5",
			Формат(Сеанс.НомерСеанса, "ЧГ=0"),
			ИмяПользователя,
			ПредставлениеПриложения(Сеанс.ИмяПриложения),
			Сеанс.ИмяКомпьютера,
			Формат(Сеанс.НачалоСеанса, "ДФ='dd.MM.yyyy HH:mm'")));
	КонецЦикла;
КонецПроцедуры

Код можно положить во внешнюю обработку и запускать через Файл → Открыть. Для собственного сеанса пригодится НомерСеансаИнформационнойБазы(), чтобы исключить себя из списка.

Способ 5. Облако 1С:Фреш, 1С:Линк, терминальный сервер и сетевая папка

1С:Фреш и другие облачные сервисы

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

1С:Линк

1С:Линк не переносит базу в облако. Он открывает доступ из интернета к базе, которая стоит у вас на компьютере или сервере. Поэтому и смотреть пользователей нужно обычными способами из разделов выше: обработкой, журналом или консолью. В кабинете Линка видно, кому выдан доступ, но это не список текущих сеансов.

Терминальный сервер (RDP)

Когда бухгалтерия работает через удалённый рабочий стол, полезно посмотреть и сеансы Windows. На сервере выполните:

query user

Команда покажет, кто подключён, состояние сеанса (активен или отключён) и время простоя. Отключённый сеанс Windows с открытой 1С держит сеанс в базе и лицензию. Здесь же видна вкладка «Пользователи» диспетчера задач с процессами 1cv8c.exe по каждому человеку.

Файловая база в сетевой папке

Для файловой базы есть приём, о котором часто забывают. На компьютере, где лежит общая папка с базой, откройте PowerShell от администратора:

Get-SmbOpenFile | Where-Object Path -like "*1Cv8.1CD*"

В выводе будут имена пользователей Windows и адреса компьютеров, которые держат открытым файл базы. Это помогает, когда 1С не запускается и пишет, что база заблокирована, а обработку открыть нельзя. Тот же список есть в оснастке «Управление компьютером»: Общие папки → Открытые файлы.

Почему список активных пользователей не совпадает с реальностью

Чаще всего жалуются, что в списке «висит» человек, который давно ушёл домой. Причины и решения собраны ниже.

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

Ещё одна путаница — число лицензий. Один пользователь с двумя окнами тонкого клиента на одном компьютере обычно занимает одну клиентскую лицензию, а с двух разных компьютеров — две. Точную картину по лицензиям даёт консоль кластера или rac session list --licenses, а не количество строк в обработке.

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

Может ли обычный пользователь увидеть, кто ещё работает в базе?
Нет. Обработка «Активные пользователи» и журнал регистрации требуют административных прав. Обычному сотруднику список недоступен.
Как узнать, кто работал в базе вчера вечером?
Откройте журнал регистрации, отберите события «Сеанс. Начало» и «Сеанс. Завершение» за нужный период. В строках будут пользователь, компьютер и время.
Видно ли в списке, что конкретно делает пользователь?
Сам список показывает только факт подключения. Действия — записи, проведения, удаления — ищите в журнале регистрации по номеру сеанса или пользователю.
Можно ли выгнать всех пользователей перед обновлением одной кнопкой?
В типовых конфигурациях есть блокировка сеансов: Администрирование → Обслуживание → Блокировка работы пользователей. Она завершает сеансы и не пускает новые до снятия блокировки. Предупредите людей заранее.
Почему в файловой базе нет консоли кластера?
У файловой базы нет сервера 1С, сеансы обрабатывает клиент на каждом компьютере. Здесь используйте обработку «Активные пользователи», Конфигуратор или список открытых файлов на компьютере с базой.