Как увидеть, кто сейчас работает в базе 1С

· 9 мин

Содержание

В 1С 8.3 отдельного «Монитора пользователей» нет: его роль выполняет список «Активные пользователи». В типовых конфигурациях он открывается через Администрирование → Обслуживание, а в Конфигураторе — через Администрирование → Активные пользователи. Чтобы открыть список, нужны права администратора.

Многие ищут режим «Монитор» в окне запуска. Такой режим был в 1С 7.7, в 8.x его убрали. Поиск сеансов и анализ активности теперь разнесены по нескольким местам: список в самой базе, консоль кластера, журнал регистрации и СУБД. Ниже про каждое из них: где открыть, что там видно и когда что выбирать.

Где открыть монитор пользователей в 1С 8.3

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

Где вы работаетеПутьКогда удобно
БП 3.0, ЗУП 3.1, УТ 11 и другие конфигурации на БСПАдминистрирование → Обслуживание, ссылка «Активные пользователи»Повседневная проверка перед обновлением
Любая конфигурация в режиме ПредприятияГлавное меню (☰) → Все функции → Стандартные → Активные пользователиНетиповая база или нет раздела «Администрирование»
КонфигураторАдминистрирование → Активные пользователиПеред обновлением конфигурации или загрузкой .dt
Клиент-серверный вариант, вне базыКонсоль администрирования серверов → кластер → база → «Сеансы»База не открывается или нужна картина по всем базам

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

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

Как читать список активных пользователей

Каждая строка списка — один сеанс, а не один человек. Один бухгалтер, открывший базу дважды, даст две строки. А фоновое задание даст строку, хотя за ним нет живого человека.

Основные колонки:

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

Тип приложения подсказывает, что делать дальше:

ПриложениеКто это обычноМожно ли завершить без согласования
Тонкий/толстый клиент, веб-клиентСотрудникНет, сначала предупредите человека
КонфигураторАдминистратор или программистНет, можно потерять несохранённые правки
Фоновое заданиеРегламентные задания: обмены, загрузка курсов, обновление индексовЛучше дождаться окончания
COM-соединение, веб-сервисВнешние программы, сайт, обменыДа, если обмен не идёт прямо сейчас

Список не обновляется сам. Перед решением «в базе никого нет» нажмите «Обновить»: за минуту картина может поменяться.

Консоль администрирования кластера: сеансы по всем базам

В клиент-серверном варианте самый полный монитор — консоль администрирования серверов 1С:Предприятия. Она работает вне базы и показывает сеансы даже тогда, когда сама база не открывается.

Как открыть консоль

  1. Запустите «Администрирование серверов 1С:Предприятия» из меню «Пуск» на сервере или машине администратора.
  2. Если сервер в списке не виден, добавьте его: правой кнопкой по «Центральные серверы 1С:Предприятия» → «Создать» → «Центральный сервер 1С:Предприятия», имя сервера.
  3. Раскройте дерево: сервер → «Кластеры» → нужный кластер.
  4. Для одной базы: «Информационные базы» → имя базы → «Сеансы». Для всех баз сразу — узел «Сеансы» на уровне кластера.

Консоль подключается к агенту сервера (по умолчанию порт 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.

Журнал регистрации: кто работал в базе раньше

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

Где открыть:

  • в конфигурациях на БСП — Администрирование → Обслуживание → Журнал регистрации;
  • в любой конфигурации — Все функции → Стандартные → Журнал регистрации;
  • в Конфигураторе — Администрирование → Журнал регистрации.

Для анализа входов задайте отбор по событиям:

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

Так видно, кто, когда и с какой машины входил. Если в отбор добавить события изменения данных, видно и что человек правил за сеанс. Связывающее поле — номер сеанса.

Ошибки входа ищите по событию Сеанс. Аутентификация (ошибка). Серия неудачных попыток с одного компьютера — повод проверить, не подбирает ли кто-то пароль.

Журнал хранит только то, что разрешено уровнем логирования. Если в Конфигураторе (Администрирование → Настройка журнала регистрации) выбран уровень «Не регистрировать» или «Регистрировать ошибки», входов в журнале не будет. Для анализа активности нужен уровень «Регистрировать все события».

Сам журнал лежит в каталоге 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. В файловом варианте надёжного способа нет: нужно открыть базу.
Видит ли обычный пользователь, кто ещё работает в базе?
Нет. Список активных пользователей требует права администрирования. Обычный пользователь узнает о других только по сообщению при попытке монопольного входа.
Почему я вижу в списке самого себя?
Ваш сеанс — тоже активный. Он отмечен в списке, и его не нужно завершать перед обновлением: Конфигуратор учитывает только чужие сеансы.
Как узнать, кто последним открывал базу ночью?
Через журнал регистрации с отбором по событию Сеанс. Начало за нужный интервал. Это сработает, только если уровень логирования — «Регистрировать все события».
Сколько хранится история сеансов?
Список сеансов истории не хранит: закрытый сеанс исчезает из него сразу. История есть только в журнале регистрации, и срок задаётся его настройкой удаления старых данных.