Кто сейчас работает в базе 1С: сеансы, подключения и журнал входов
Содержание
Посмотреть, кто сидит в базе 1С, быстрее всего так: в рабочей программе откройте Администрирование → Обслуживание → Активные пользователи, а в Конфигураторе — меню Администрирование → Активные пользователи. Список покажет имя пользователя, компьютер, приложение и время начала сеанса. Нужны права администратора.
Если в базу не пускает, а нужно выяснить, кто её держит, выбор другой. Для серверной базы смотрите сеансы в консоли администрирования кластера или командой rac. Для файловой — открытые файлы на сервере, где лежит 1Cv8.1CD. Журнал регистрации отвечает на вопрос «кто заходил вчера», а не «кто в базе сейчас».
Какие есть способы и когда какой выбирать
| Способ | Нужен вход в базу | Вариант базы | Что показывает |
|---|---|---|---|
| Активные пользователи в режиме Предприятия | Да | Любой | Текущие сеансы, можно завершить |
| Активные пользователи в Конфигураторе | Да | Любой | Текущие сеансы и Конфигураторы |
| Журнал регистрации | Да | Любой | История входов и выходов |
| Ошибка монопольного режима | Да | Любой | Кто мешает обновлению |
| Консоль администрирования серверов | Нет | Клиент-серверный | Сеансы, соединения, лицензии |
Утилита rac | Нет | Клиент-серверный | То же, в командной строке |
| Открытые файлы на сервере | Нет | Файловый | Учётная запись Windows и компьютер |
| Запрос к СУБД | Нет | Клиент-серверный | Только процессы сервера 1С |
Сеанс и соединение — разные вещи. Сеанс — это работа пользователя: он может жить, даже когда клиент на секунду потерял сеть. Соединение — физическое подключение. Для ответа «кто в базе» смотрите сеансы.
Список активных пользователей в режиме 1С:Предприятие
Через панель администрирования
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP, УНФ) порядок одинаковый:
- Откройте раздел
Администрирование → Обслуживание. - Нажмите ссылку «Активные пользователи».
- В списке отметьте свою строку — текущий сеанс выделен.
Колонки списка:
- 👤 Пользователь — имя из справочника пользователей;
- 💻 Компьютер — сетевое имя рабочего места;
- 🧩 Приложение — тонкий или толстый клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение;
- 🕐 Начало работы — время входа;
- 🔢 Сеанс — номер сеанса.
В клиент-серверной базе отсюда можно завершить сеанс выделенного пользователя. Если на кластере стоит пароль администратора, программа его запросит.
Через «Функции для технического специалиста»
Этот путь есть в любой конфигурации, даже нетиповой. Платформа содержит стандартную обработку «Активные пользователи».
- Включите меню:
Главное меню (☰) → Сервис → Параметры, флажок «Отображать команду “Функции для технического специалиста”» (в старых релизах платформы — «Все функции»). - Откройте
Главное меню → Функции для технического специалиста → Стандартные → Активные пользователи.
Программно, внешней обработкой
Если нужно выгружать список регулярно, поможет функция ПолучитьСеансыИнформационнойБазы(). Она работает на сервере, поэтому вызывайте её в серверной процедуре внешней обработки:
&НаСервереБезКонтекста
Процедура ПоказатьСеансыНаСервере()
Для Каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл
Если Сеанс.Пользователь = Неопределено Тогда
Имя = "<без пользователя>";
Иначе
Имя = Сеанс.Пользователь.Имя;
КонецЕсли;
Сообщить(СтрШаблон("%1 | %2 | %3 | %4 | сеанс %5",
Имя,
Сеанс.ИмяКомпьютера,
ПредставлениеПриложения(Сеанс.ИмяПриложения),
Сеанс.НачалоСеанса,
Формат(Сеанс.НомерСеанса, "ЧГ=0")));
КонецЦикла;
КонецПроцедуры
Для запуска нужно право «Администрирование». Обычному пользователю функция вернёт ошибку нарушения прав.
Кто работает в базе: просмотр из Конфигуратора
Конфигуратор показывает тот же список, но в нём видны и другие Конфигураторы. Это удобно перед обновлением: сразу понятно, не открыл ли базу второй программист.
- Запустите базу в режиме «Конфигуратор».
- Откройте меню
Администрирование → Активные пользователи. - Окно не обновляется само. Чтобы увидеть свежий список, закройте и откройте его снова.
Если в колонке «Приложение» стоит «Фоновое задание», это не человек. Так работают регламентные задания: обмены, загрузка курсов валют, обновление полнотекстового индекса. Такие сеансы появляются и исчезают сами.
Строка с вашим именем и компьютером — это вы. При обновлении она монопольному режиму не мешает.
Журнал регистрации: кто заходил и когда вышел
Активные пользователи показывают «сейчас». Журнал регистрации отвечает на вопросы «кто был в базе ночью» и «под чьим именем провели документ».
Как открыть
- 🖥 в программе —
Администрирование → Обслуживание → Журнал регистрации; - 🛠 в Конфигураторе —
Администрирование → Журнал регистрации; - 🧰 в любой конфигурации —
Функции для технического специалиста → Стандартные → Журнал регистрации.
Как найти входы и выходы
- Нажмите «Установить отбор».
- В поле «События» оставьте «Сеанс. Начало» и «Сеанс. Завершение». Для расследований добавьте «Сеанс. Ошибка аутентификации».
- Задайте интервал дат и, если нужно, конкретного пользователя.
- Сопоставляйте события по номеру сеанса: у начала и завершения одного сеанса он одинаковый.
Если у сеанса есть «Начало», а «Завершения» нет, сеанс либо ещё идёт, либо оборвался аварийно: выключили компьютер, пропала сеть, упал процесс.
Если события входа не пишутся, проверьте уровень журнала: Конфигуратор → Администрирование → Настройка журнала регистрации. Входы и выходы записываются как информационные события. При уровне «Регистрировать ошибки» их не будет.
Сам журнал лежит в папке 1Cv8Log: у файловой базы — внутри каталога базы, у серверной — в каталоге кластера на сервере 1С.
Монопольный режим: кто мешает и как попросить всех выйти
Монопольный доступ нужен для обновления конфигурации со сменой структуры, загрузки .dt, тестирования и исправления базы. Если в базе кто-то есть, платформа откажет с сообщением, которое начинается примерно так: Установка монопольного режима невозможна. Ниже в тексте ошибки перечислены мешающие сеансы с именем пользователя, компьютером и временем начала. Это тоже способ узнать, кто сидит в базе.
Выгонять людей вслепую не стоит. В типовых конфигурациях есть штатный механизм:
- Откройте
Администрирование → Обслуживание → Блокировка работы пользователей. - Заполните сообщение для пользователей и время начала блокировки — например, через 10 минут.
- Укажите код разрешения, например
upd2410. - Установите блокировку. Пользователи получат предупреждение, а к назначенному времени их сеансы будут завершены.
Сами вы зайдёте в заблокированную базу с ключом запуска /UC и тем же кодом:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /UCupd2410
Для Конфигуратора замените ENTERPRISE на DESIGNER.
Завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Блокируйте базу после рабочего дня или предупреждайте людей заранее. Не забудьте снять блокировку после работ — иначе утром никто не войдёт.
Сеансы в консоли администрирования сервера 1С
В клиент-серверном варианте этот способ главный. Он работает, даже когда в базу не пускает, и показывает все базы кластера сразу.
Где смотреть
- Запустите «Администрирование серверов 1С Предприятия».
- Раскройте дерево:
Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → кластер → Информационные базы → нужная база → Сеансы. - Чтобы увидеть сеансы всех баз, откройте узел «Сеансы» прямо под кластером.
В таблице видно пользователя, компьютер, приложение, время начала и последней активности, рабочий процесс и выданную лицензию. По колонке последней активности легко найти «зависший» сеанс: человек ушёл домой, а программа открыта.
Завершить сеанс можно через контекстное меню строки — команда «Удалить». Перед этим проверьте, что это не фоновое задание обмена.
Спящие и служебные сеансы
Не каждая строка в списке — живой человек за компьютером. Перед тем как кого-то отключать, разберите, что перед вами:
- 😴 Спящий сеанс — клиент потерял связь с сервером (уснул ноутбук, моргнула сеть), а сервер сохранил сеанс, чтобы пользователь вернулся без потери данных. В выводе
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 знает, кто его держит.
На компьютере, где лежит папка базы:
- Нажмите Win+R и выполните
fsmgmt.msc. - Откройте «Открытые файлы».
- Найдите строки с путём к
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. Фоновые задания и Конфигуратор клиентскую лицензию не занимают.