Как увидеть, кто сейчас работает в базе 1С
Содержание
В 1С 8.3 отдельного «Монитора пользователей» нет: его роль выполняет список «Активные пользователи». В типовых конфигурациях он открывается через Администрирование → Обслуживание, а в Конфигураторе — через Администрирование → Активные пользователи. Чтобы открыть список, нужны права администратора.
Многие ищут режим «Монитор» в окне запуска. Такой режим был в 1С 7.7, в 8.x его убрали. Поиск сеансов и анализ активности теперь разнесены по нескольким местам: список в самой базе, консоль кластера, журнал регистрации и СУБД. Ниже про каждое из них: где открыть, что там видно и когда что выбирать.
Где открыть монитор пользователей в 1С 8.3
Список активных пользователей — стандартная функция платформы. Поэтому он есть в любой конфигурации, даже нетиповой. Отличается только путь к нему.
| Где вы работаете | Путь | Когда удобно |
|---|---|---|
| БП 3.0, ЗУП 3.1, УТ 11 и другие конфигурации на БСП | Администрирование → Обслуживание, ссылка «Активные пользователи» | Повседневная проверка перед обновлением |
| Любая конфигурация в режиме Предприятия | Главное меню (☰) → Все функции → Стандартные → Активные пользователи | Нетиповая база или нет раздела «Администрирование» |
| Конфигуратор | Администрирование → Активные пользователи | Перед обновлением конфигурации или загрузкой .dt |
| Клиент-серверный вариант, вне базы | Консоль администрирования серверов → кластер → база → «Сеансы» | База не открывается или нужна картина по всем базам |
Пункт «Все функции» по умолчанию скрыт. Включите его один раз: Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”».
В конфигурациях на БСП обработка «Активные пользователи» также лежит в Все функции → Обработки. Её форма богаче стандартной: там есть отбор по пользователю, переход в журнал регистрации и завершение сеанса.
Как читать список активных пользователей
Каждая строка списка — один сеанс, а не один человек. Один бухгалтер, открывший базу дважды, даст две строки. А фоновое задание даст строку, хотя за ним нет живого человека.
Основные колонки:
- 👤 Пользователь — имя из списка пользователей базы. Пусто, если список пользователей не заполнен.
- 💻 Компьютер — имя машины, с которой открыт сеанс. Для веб-клиента и публикации на веб-сервере здесь будет сервер публикации, а не ПК сотрудника.
- 🧩 Приложение — тип подключения: тонкий клиент, толстый клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение, веб-сервис.
- 🕒 Начало работы — когда открыт сеанс.
- 🔢 Сеанс — номер сеанса. По нему удобно искать запись в журнале регистрации и в консоли кластера.
Тип приложения подсказывает, что делать дальше:
| Приложение | Кто это обычно | Можно ли завершить без согласования |
|---|---|---|
| Тонкий/толстый клиент, веб-клиент | Сотрудник | Нет, сначала предупредите человека |
| Конфигуратор | Администратор или программист | Нет, можно потерять несохранённые правки |
| Фоновое задание | Регламентные задания: обмены, загрузка курсов, обновление индексов | Лучше дождаться окончания |
| COM-соединение, веб-сервис | Внешние программы, сайт, обмены | Да, если обмен не идёт прямо сейчас |
Список не обновляется сам. Перед решением «в базе никого нет» нажмите «Обновить»: за минуту картина может поменяться.
Консоль администрирования кластера: сеансы по всем базам
В клиент-серверном варианте самый полный монитор — консоль администрирования серверов 1С:Предприятия. Она работает вне базы и показывает сеансы даже тогда, когда сама база не открывается.
Как открыть консоль
- Запустите «Администрирование серверов 1С:Предприятия» из меню «Пуск» на сервере или машине администратора.
- Если сервер в списке не виден, добавьте его: правой кнопкой по «Центральные серверы 1С:Предприятия» → «Создать» → «Центральный сервер 1С:Предприятия», имя сервера.
- Раскройте дерево: сервер → «Кластеры» → нужный кластер.
- Для одной базы: «Информационные базы» → имя базы → «Сеансы». Для всех баз сразу — узел «Сеансы» на уровне кластера.
Консоль подключается к агенту сервера (по умолчанию порт 1540). Если на кластере задан администратор, консоль спросит его логин и пароль.
Что смотреть в сеансах
Кроме пользователя и компьютера, консоль показывает то, чего нет в списке внутри базы:
- ⏱ Последняя активность — когда сеанс в последний раз что-то делал. Сеанс, неактивный несколько часов, — кандидат в «забытые».
- 🗄 Соединение с СУБД — номер соединения на стороне SQL. По нему сеанс 1С сопоставляют с процессом в СУБД.
- 📊 Захвачено СУБД, время вызова — помогает найти сеанс, который прямо сейчас грузит сервер долгим запросом.
Колонки настраиваются: правой кнопкой по заголовку таблицы.
Если консоль не открывается
Частая ошибка после обновления платформы — консоль не запускается или пишет, что не удалось создать объект. Причина обычно в том, что компонента radmin.dll не зарегистрирована для установленной версии. Регистрируют её из командной строки от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\radmin.dll"
Вместо 8.3.XX.XXXX подставьте номер установленной платформы. Разрядность консоли должна совпадать с разрядностью зарегистрированной компоненты: для 64-битной платформы берите путь из Program Files, для 32-битной — из Program Files (x86).
Сеансы из командной строки: rac
На Linux-сервере или для скриптов удобнее утилита rac. Она работает через сервер администрирования ras, который нужно запустить отдельно (по умолчанию порт 1545).
rac cluster list
rac session list --cluster=<UUID кластера>
rac session list --cluster=<UUID кластера> --licenses
Первая команда даёт UUID кластера, вторая — список сеансов, третья — какие лицензии заняты сеансами. Если в кластере задан администратор, добавьте параметры авторизации; точный синтаксис смотрите в rac help session.
Журнал регистрации: кто работал в базе раньше
Список активных пользователей и консоль показывают только «сейчас». Чтобы узнать, кто был в базе вчера ночью или кто последним открывал документ, нужен журнал регистрации.
Где открыть:
- в конфигурациях на БСП —
Администрирование → Обслуживание → Журнал регистрации; - в любой конфигурации —
Все функции → Стандартные → Журнал регистрации; - в Конфигураторе —
Администрирование → Журнал регистрации.
Для анализа входов задайте отбор по событиям:
- Откройте отбор журнала.
- В событиях оставьте
Сеанс. Начало,Сеанс. ЗавершениеиСеанс. Аутентификация. - Задайте интервал и при необходимости пользователя или компьютер.
- Сформируйте список.
Так видно, кто, когда и с какой машины входил. Если в отбор добавить события изменения данных, видно и что человек правил за сеанс. Связывающее поле — номер сеанса.
Ошибки входа ищите по событию Сеанс. Аутентификация (ошибка). Серия неудачных попыток с одного компьютера — повод проверить, не подбирает ли кто-то пароль.
Журнал хранит только то, что разрешено уровнем логирования. Если в Конфигураторе (Администрирование → Настройка журнала регистрации) выбран уровень «Не регистрировать» или «Регистрировать ошибки», входов в журнале не будет. Для анализа активности нужен уровень «Регистрировать все события».
Сам журнал лежит в каталоге 1Cv8Log: у файловой базы — внутри её каталога, у серверной — в каталоге кластера на сервере. При активном логировании он растёт, поэтому в той же настройке задают разбиение на периоды и удаляют старые данные.
Сеансы со стороны СУБД: SQL-запросы
Когда сервер 1С тормозит, администратор БД смотрит не в 1С, а в СУБД. Здесь главная ловушка: SQL не видит пользователей 1С. К базе данных подключаются рабочие процессы rphost, а не люди. Поэтому в СУБД вы увидите несколько соединений от сервера 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('имя_базы');
session_id — тот самый номер соединения. Найдите его в колонке «Соединение с СУБД» консоли кластера, и станет ясно, какой сеанс 1С держит запрос.
PostgreSQL
SELECT pid, usename, client_addr, application_name,
state, query_start
FROM pg_stat_activity
WHERE datname = 'имя_базы';
Здесь роль номера соединения играет pid.
Не завершайте соединения 1С средствами СУБД (KILL в MS SQL, pg_terminate_backend в PostgreSQL). Рабочий процесс 1С получит ошибку посреди транзакции, и у пользователей оборвутся сеансы с сообщением об ошибке СУБД. Завершайте сеанс из консоли кластера.
Список сеансов программно
Для своего монитора, например отчёта по сеансам или оповещения о забытом Конфигураторе, список берут встроенным языком. Функция ПолучитьСеансыИнформационнойБазы() возвращает массив сеансов. Вызывается на сервере и требует административных прав.
&НаСервере
Процедура ПоказатьСеансыНаСервере()
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.Пользователь = Неопределено Тогда
ИмяПользователя = "<без пользователя>";
Иначе
ИмяПользователя = Сеанс.Пользователь.Имя;
КонецЕсли;
Сообщить(СтрШаблон("%1 | %2 | %3 | %4 | %5",
Формат(Сеанс.НомерСеанса, "ЧГ=0"),
ИмяПользователя,
Сеанс.ИмяКомпьютера,
ПредставлениеПриложения(Сеанс.ИмяПриложения),
Формат(Сеанс.НачалоСеанса, "ДФ='dd.MM.yyyy HH:mm'")));
КонецЦикла;
КонецПроцедуры
Пользователь равен Неопределено, если список пользователей базы пуст. Поэтому проверка стоит перед обращением к .Имя, иначе код упадёт на базе без пользователей.
Для фона есть ПолучитьТекущийСеансИнформационнойБазы() — пригодится, чтобы исключить из отчёта собственный сеанс.
Внешние утилиты мониторинга
В поиске встречаются программы вроде «1С-Монитор». Это сторонние разработки, не часть платформы. Почти все они берут данные из тех же источников: сервера администрирования ras, журнала регистрации и технологического журнала. Перед установкой такой утилиты на рабочий сервер проверьте, кто её автор и какие права она просит: доступ к кластеру даёт и право завершать сеансы.
От фирмы 1С для постоянного мониторинга есть «1С:Корпоративный инструментальный пакет». В него входит «Центр контроля качества» и «Центр управления производительностью». Это решение для крупных внедрений: оно показывает нагрузку, ожидания на блокировках и долгие запросы во времени, а не только список сеансов.
| Инструмент | Что видно | Вариант базы | Кому подходит |
|---|---|---|---|
| Активные пользователи | Сеансы прямо сейчас | Файловый и серверный | Главбух, администратор базы |
Консоль кластера, rac | Сеансы всех баз, нагрузка, лицензии | Только серверный | Системный администратор |
| Журнал регистрации | Кто и когда входил, что менял | Файловый и серверный | Расследование, аудит |
| Запросы к СУБД | Соединения рабочих процессов, долгие запросы | Только серверный | Администратор БД |
ПолучитьСеансыИнформационнойБазы() | Сеансы в своём формате | Файловый и серверный | Программист 1С |
| 1С:КИП, сторонние утилиты | История нагрузки, оповещения | Обычно серверный | Крупные базы |
Когда монитор показывает не то
Большинство вопросов к списку сеансов сводятся к нескольким ситуациям.
Завершение сеанса — это обрыв работы человека. Если завершаете сеансы ради обновления, делайте это в согласованное окно и через установку блокировки входа (в конфигурациях на БСП — Администрирование → Обслуживание → Блокировка работы пользователей), иначе люди сразу войдут снова.
Частые вопросы
Можно ли увидеть активных пользователей, не заходя в базу?
rac session list. В файловом варианте надёжного способа нет: нужно открыть базу.Видит ли обычный пользователь, кто ещё работает в базе?
Почему я вижу в списке самого себя?
Как узнать, кто последним открывал базу ночью?
Сеанс. Начало за нужный интервал. Это сработает, только если уровень логирования — «Регистрировать все события».