Кто сейчас в базе 1С: от списка сеансов до консоли кластера и запросов к СУБД
Содержание
Посмотреть активных пользователей
в 1С быстрее всего так: Администрирование → Обслуживание → Активные пользователи в пользовательском режиме или Администрирование → Активные пользователи в Конфигураторе. Список покажет, кто подключён к базе прямо сейчас, с какого компьютера и через какое приложение. Это работает и в файловом, и в клиент-серверном варианте, но нужны права администратора.
Остальные способы нужны для других задач. Журнал регистрации отвечает на вопрос «кто заходил вчера». Консоль кластера и утилита rac показывают сеансы всех баз сервера сразу и позволяют их завершить. Запрос к СУБД видит не людей, а соединения рабочих процессов. Для облака и терминального сервера есть свои инструменты.
Какой способ выбрать: сравнение пяти вариантов
Выбор зависит от двух вещей: какой у вас вариант базы и что именно нужно узнать — текущее состояние или историю.
| Способ | Что показывает | Вариант базы | Кому доступен |
|---|---|---|---|
| Обработка «Активные пользователи» | Текущие сеансы одной базы | Файловый и клиент-серверный | Пользователь с правами администратора |
| Журнал регистрации | История входов и выходов | Любой | Администратор базы |
Консоль кластера, rac | Сеансы всех баз сервера, лицензии, рабочие процессы | Только клиент-серверный | Администратор кластера |
| Запрос к СУБД | Соединения с базой данных | Только клиент-серверный | Администратор СУБД |
| Кабинет облака, средства Windows | Пользователи сервиса, сеансы RDP, открытые файлы | Облако, терминал, сетевая папка | Владелец подписки, администратор Windows |
💡 Если нужно просто выгнать всех перед обновлением — сразу идите в консоль кластера (для серверной базы) или в «Активные пользователи» (для файловой). Журнал регистрации тут не поможет: он хранит прошлое.
Способ 1. Обработка «Активные пользователи» в программе и Конфигураторе
Это штатный инструмент Библиотеки стандартных подсистем. Он есть во всех типовых конфигурациях на её основе: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, Комплексная автоматизация, ERP.
Где найти в пользовательском режиме
| Конфигурация | Путь |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Активные пользователи |
| ЗУП 3.1 | Администрирование → Обслуживание → Активные пользователи |
| УТ 11, КА 2, ERP | НСИ и администрирование → Администрирование → Обслуживание → Активные пользователи |
Если ссылки не видно, есть запасной вход через меню всех функций:
- Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
- Выберите
Функции для технического специалиста. В старых релизах платформы пункт называется «Все функции». - Разверните ветку
Обработкии откройтеАктивные пользователи.
Если пункта для технического специалиста в меню нет, включите его: главное меню, Сервис → Параметры, флажок «Отображать команду “Все функции”».
Что видно в списке
Каждая строка — один сеанс. Колонки:
- 👤 Пользователь — имя из списка пользователей информационной базы;
- 💻 Компьютер — сетевое имя машины, с которой подключились;
- 🧩 Приложение — тонкий клиент, толстый клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение;
- 🕒 Начало работы — время открытия сеанса;
- 🔢 Сеанс — номер, по которому сеанс ищут в консоли кластера и журнале.
Двойной щелчок по строке в типовых конфигурациях открывает журнал регистрации с отбором по этому пользователю. Там видно, что именно человек делал в базе.
Из этой же обработки можно завершить чужой сеанс: выделите строку и нажмите команду завершения сеанса на панели. В клиент-серверной базе программа попросит логин и пароль администратора кластера, если он задан.
Завершённый сеанс обрывается без сохранения. Если бухгалтер в этот момент заполнял документ, несохранённые изменения пропадут. Предупредите людей заранее.
Из Конфигуратора
Откройте базу в режиме Конфигуратора и выберите Администрирование → Активные пользователи. Список проще, чем в программе, но зато работает в любой конфигурации, даже нетиповой и без БСП. Ваш собственный сеанс Конфигуратора тоже окажется в списке.
Способ 2. История входов в журнале регистрации
Обработка показывает «здесь и сейчас». Чтобы понять, кто работал ночью или в выходные, нужен журнал регистрации.
Где открыть:
- в программе:
Администрирование → Обслуживание → Журнал регистрации; - в Конфигураторе:
Администрирование → Журнал регистрации.
Как отобрать только входы и выходы:
- Нажмите кнопку установки отбора.
- В поле событий оставьте
Сеанс. Начало,Сеанс. ЗавершениеиСеанс. Аутентификация. - Задайте период — например, последние сутки.
- При необходимости отберите конкретного пользователя или компьютер.
Каждое событие несёт номер сеанса. Если у сеанса есть «Начало», но нет «Завершения», вариантов два: человек ещё работает или клиент упал, и сеанс закрыла платформа по таймауту. Проверить, что именно, можно сравнением с обработкой «Активные пользователи».
Событие Сеанс. Аутентификация (ошибка) полезно для безопасности: так видно попытки входа с неверным паролем.
💡 Журнал ведётся, только если уровень регистрации не «Не регистрировать». Проверьте в Конфигураторе: Администрирование → Настройка журнала регистрации. События сеансов пишутся с уровнем «Информация», поэтому при уровне «Ошибки» или «Предупреждения» входов в журнале не будет.
Способ 3. Консоль кластера и утилита rac для серверной базы
В клиент-серверном варианте главный инструмент — оснастка «Администрирование серверов 1С:Предприятия». Она ставится вместе с платформой и видит сеансы всех баз кластера.
Через консоль
- Запустите оснастку. Если её нет в меню «Пуск», ярлык создаётся при установке компонента администрирования; при ошибке запуска зарегистрируйте
radmin.dllиз каталогаbinнужной версии платформы командойregsvr32. - Разверните
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер. - Откройте
Информационные базы → нужная база → Сеансы. Чтобы увидеть всех пользователей сервера, откройте узелСеансына уровне кластера.
Колонки консоли богаче, чем в программе: пользователь, компьютер, приложение, время начала, время последней активности, рабочий процесс, признак лицензии. Время последней активности помогает отличить работающего человека от того, кто открыл 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, а не количество строк в обработке.
Частые вопросы
Может ли обычный пользователь увидеть, кто ещё работает в базе?
Как узнать, кто работал в базе вчера вечером?
Видно ли в списке, что конкретно делает пользователь?
Можно ли выгнать всех пользователей перед обновлением одной кнопкой?
Администрирование → Обслуживание → Блокировка работы пользователей. Она завершает сеансы и не пускает новые до снятия блокировки. Предупредите людей заранее.