Кто сейчас работает в базе 1С: сеансы, подключения и журнал входов

· 9 мин

Содержание

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

Если в базу не пускает, а нужно выяснить, кто её держит, выбор другой. Для серверной базы смотрите сеансы в консоли администрирования кластера или командой rac. Для файловой — открытые файлы на сервере, где лежит 1Cv8.1CD. Журнал регистрации отвечает на вопрос «кто заходил вчера», а не «кто в базе сейчас».

Какие есть способы и когда какой выбирать

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

Сеанс и соединение — разные вещи. Сеанс — это работа пользователя: он может жить, даже когда клиент на секунду потерял сеть. Соединение — физическое подключение. Для ответа «кто в базе» смотрите сеансы.

Список активных пользователей в режиме 1С:Предприятие

Через панель администрирования

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP, УНФ) порядок одинаковый:

  1. Откройте раздел Администрирование → Обслуживание.
  2. Нажмите ссылку «Активные пользователи».
  3. В списке отметьте свою строку — текущий сеанс выделен.

Колонки списка:

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

В клиент-серверной базе отсюда можно завершить сеанс выделенного пользователя. Если на кластере стоит пароль администратора, программа его запросит.

Через «Функции для технического специалиста»

Этот путь есть в любой конфигурации, даже нетиповой. Платформа содержит стандартную обработку «Активные пользователи».

  1. Включите меню: Главное меню (☰) → Сервис → Параметры, флажок «Отображать команду “Функции для технического специалиста”» (в старых релизах платформы — «Все функции»).
  2. Откройте Главное меню → Функции для технического специалиста → Стандартные → Активные пользователи.

Программно, внешней обработкой

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

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

Для запуска нужно право «Администрирование». Обычному пользователю функция вернёт ошибку нарушения прав.

Кто работает в базе: просмотр из Конфигуратора

Конфигуратор показывает тот же список, но в нём видны и другие Конфигураторы. Это удобно перед обновлением: сразу понятно, не открыл ли базу второй программист.

  1. Запустите базу в режиме «Конфигуратор».
  2. Откройте меню Администрирование → Активные пользователи.
  3. Окно не обновляется само. Чтобы увидеть свежий список, закройте и откройте его снова.

Если в колонке «Приложение» стоит «Фоновое задание», это не человек. Так работают регламентные задания: обмены, загрузка курсов валют, обновление полнотекстового индекса. Такие сеансы появляются и исчезают сами.

Строка с вашим именем и компьютером — это вы. При обновлении она монопольному режиму не мешает.

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

Активные пользователи показывают «сейчас». Журнал регистрации отвечает на вопросы «кто был в базе ночью» и «под чьим именем провели документ».

Как открыть

  • 🖥 в программе — Администрирование → Обслуживание → Журнал регистрации;
  • 🛠 в Конфигураторе — Администрирование → Журнал регистрации;
  • 🧰 в любой конфигурации — Функции для технического специалиста → Стандартные → Журнал регистрации.

Как найти входы и выходы

  1. Нажмите «Установить отбор».
  2. В поле «События» оставьте «Сеанс. Начало» и «Сеанс. Завершение». Для расследований добавьте «Сеанс. Ошибка аутентификации».
  3. Задайте интервал дат и, если нужно, конкретного пользователя.
  4. Сопоставляйте события по номеру сеанса: у начала и завершения одного сеанса он одинаковый.

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

Если события входа не пишутся, проверьте уровень журнала: Конфигуратор → Администрирование → Настройка журнала регистрации. Входы и выходы записываются как информационные события. При уровне «Регистрировать ошибки» их не будет.

Сам журнал лежит в папке 1Cv8Log: у файловой базы — внутри каталога базы, у серверной — в каталоге кластера на сервере 1С.

Монопольный режим: кто мешает и как попросить всех выйти

Монопольный доступ нужен для обновления конфигурации со сменой структуры, загрузки .dt, тестирования и исправления базы. Если в базе кто-то есть, платформа откажет с сообщением, которое начинается примерно так: Установка монопольного режима невозможна. Ниже в тексте ошибки перечислены мешающие сеансы с именем пользователя, компьютером и временем начала. Это тоже способ узнать, кто сидит в базе.

Выгонять людей вслепую не стоит. В типовых конфигурациях есть штатный механизм:

  1. Откройте Администрирование → Обслуживание → Блокировка работы пользователей.
  2. Заполните сообщение для пользователей и время начала блокировки — например, через 10 минут.
  3. Укажите код разрешения, например upd2410.
  4. Установите блокировку. Пользователи получат предупреждение, а к назначенному времени их сеансы будут завершены.

Сами вы зайдёте в заблокированную базу с ключом запуска /UC и тем же кодом:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /UCupd2410

Для Конфигуратора замените ENTERPRISE на DESIGNER.

Завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Блокируйте базу после рабочего дня или предупреждайте людей заранее. Не забудьте снять блокировку после работ — иначе утром никто не войдёт.

Сеансы в консоли администрирования сервера 1С

В клиент-серверном варианте этот способ главный. Он работает, даже когда в базу не пускает, и показывает все базы кластера сразу.

Где смотреть

  1. Запустите «Администрирование серверов 1С Предприятия».
  2. Раскройте дерево: Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → кластер → Информационные базы → нужная база → Сеансы.
  3. Чтобы увидеть сеансы всех баз, откройте узел «Сеансы» прямо под кластером.

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

Завершить сеанс можно через контекстное меню строки — команда «Удалить». Перед этим проверьте, что это не фоновое задание обмена.

Спящие и служебные сеансы

Не каждая строка в списке — живой человек за компьютером. Перед тем как кого-то отключать, разберите, что перед вами:

  • 😴 Спящий сеанс — клиент потерял связь с сервером (уснул ноутбук, моргнула сеть), а сервер сохранил сеанс, чтобы пользователь вернулся без потери данных. В выводе rac у такого сеанса поле hibernate равно yes. Через заданное время сервер завершит его сам.
  • ⚙️ Фоновое задание — обмен, регламентная операция или длительная обработка, запущенная из программы. Его завершение может оставить обмен недогруженным.
  • 🔌 COM-соединение — внешняя программа или скрипт, который подключается к базе: загрузка выписок, интеграция с сайтом.
  • 🛠 Конфигуратор — кто-то из разработчиков. Перед обновлением договоритесь с ним, а не завершайте сеанс молча.

Сколько ждёт пассивный и спящий сеанс, видно в тех же свойствах сеанса (passive-session-hibernate-time, hibernate-session-terminate-time в выводе rac).

Если консоль не открывается

Типичная причина — не зарегистрирована библиотека консоли после обновления платформы. Запустите командную строку от имени администратора и выполните, подставив свою версию:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Версия radmin.dll должна совпадать с версией сервера 1С. После регистрации заново откройте консоль.

Командная строка: rac

Без графической консоли сеансы покажет утилита rac. Ей нужен запущенный сервер администрирования ras (по умолчанию порт 1545).

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

Первая команда выдаёт идентификатор кластера, третья — идентификаторы баз. Если на кластере есть администратор, добавьте --cluster-user и --cluster-pwd. Остальные параметры смотрите в rac help session.

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

Где вы можете посмотреть пользователей?

Файловая база: кто держит файл 1Cv8.1CD

У файловой базы нет кластера и нет консоли. Зато все пользователи открывают один и тот же файл 1Cv8.1CD по сети, и Windows знает, кто его держит.

На компьютере, где лежит папка базы:

  1. Нажмите Win+R и выполните fsmgmt.msc.
  2. Откройте «Открытые файлы».
  3. Найдите строки с путём к 1Cv8.1CD. В них видна учётная запись Windows и компьютер.

То же самое в PowerShell от имени администратора:

Get-SmbOpenFile | Where-Object Path -like "*1Cv8.1CD" |
    Select-Object ClientUserName, ClientComputerName, Path

Здесь видны имена Windows, а не пользователи 1С. Обычно этого хватает: по компьютеру понятно, чей это сеанс.

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

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

Запрос к СУБД: что видно в SQL

Администраторы MS SQL и PostgreSQL часто пытаются найти пользователей 1С в системных представлениях. Сразу о главном: имён пользователей 1С там нет. К СУБД подключаются рабочие процессы сервера 1С (rphost) под одной учётной записью. В SQL видно, сколько соединений открыл сервер 1С к базе и что они выполняют.

MS SQL Server:

SELECT session_id, host_name, program_name, login_name,
       status, last_request_start_time
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID(N'buh_base');

PostgreSQL:

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

Зачем это нужно:

  • 🔍 найти долгий запрос или блокировку на стороне СУБД;
  • 🧯 понять, остались ли соединения после остановки службы 1С;
  • 🔗 сопоставить процесс СУБД с сеансом: у сеанса, который прямо сейчас выполняет запрос, rac session list показывает номер соединения с СУБД в поле db-proc-info.

Таблицы базы 1С (_Reference…, _Document…) не меняйте и не читайте в обход платформы для учёта. Сеансы в них не хранятся: в клиент-серверном варианте их ведёт кластер, а не база.

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

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