В процессе администрирования информационной системы часто возникает критически важный вопрос: кто сейчас работает в базе? Понимание того, кто онлайн в 1С, необходимо не только для контроля дисциплины сотрудников, но и для диагностики проблем с производительностью. Когда пользователи жалуются на «тормоза» или зависания, первым делом администратор должен выявить количество активных сеансов и их характер. Без этой информации любые попытки оптимизации напоминают стрельбу вслепую.
Существует несколько подходов к решению этой задачи, выбор которых зависит от архитектуры вашей системы. Если вы используете файловый вариант, набор инструментов будет ограничен интерфейсом самой программы. В случае клиент-серверного варианта на базе MS SQL Server или PostgreSQL возможности значительно шире и позволяют получать глубокие метрики. Давайте разберем основные методы, от простых к сложным.
Проверка через интерфейс программы «1С:Предприятие»
Самый доступный способ, не требующий прав администратора сервера или доступа к консоли управления, — это использование встроенного функционала журнала регистрации. Однако стоит сразу отметить, что этот метод показывает не столько текущий момент «здесь и сейчас», сколько историю подключений за определенный период. Чтобы увидеть актуальную картину, необходимо правильно настроить фильтры отбора.
Для начала работы перейдите в меню Администрирование → Журнал регистрации. В открывшемся окне вы увидите список всех событий. Ключевым моментом является установка отбора по типу события. Вам нужно выбрать событие Сеанс и конкретное действие Начало сеанса. Это позволит отсечь тысячи других записей о движениях документов и оставить только факты входа пользователей в систему.
Далее важно ограничить временной диапазон. Если вы оставите период «с начала времен», список будет огромным и бесполезным. Установите дату начала равной текущему дню или даже текущему часу. Отсортируйте список по убыванию времени. Верхние строчки покажут тех, кто зашел последним. Хотя этот метод не показывает длительность текущего сеанса в реальном времени без дополнительных вычислений, он дает четкое понимание, кто инициировал работу недавно.
Для более детального анализа в журнале можно добавить поля отображения. Нажмите кнопку «Еще» и выберите «Изменить порядок полей». Добавьте колонки «Пользователь», «Компьютер» и «Приложение». Это поможет отличить запуск толстого клиента от работы через веб-браузер или мобильное устройство. Запомните, что журнал регистрации пишется на диск, поэтому при очень высокой нагрузке запись событий может происходить с небольшой задержкой.
⚠️ Внимание: Журнал регистрации может быть переполнен или очищен, если не настроено автоматическое архивирование. Если вы не видите записей за сегодня, проверьте настройки хранения журнала в разделе администрирования.
Для быстрого доступа к журналу добавьте его в панель избранных отчетов, чтобы не искать каждый раз в глубоком меню администрирования.
Использование утилиты TInfo для мониторинга
Когда требуется получить максимально точную информацию о том, кто онлайн в 1С прямо в данную секунду, встроенных средств платформы может быть недостаточно. Здесь на помощь приходит сторонняя, но ставшая стандартом де-факто утилита TInfo от компании «1С». Этот инструмент подключается напрямую к процессу сервера 1С и выводит детальнейшую статистику по всем активным соединениям.
Утилита работает в консольном режиме и не требует установки на клиентские машины, достаточно разместить исполняемый файл на сервере 1С:Предприятия. Запуск производится с правами администратора. Команда выглядит следующим образом:
tinfo -lst -srv=имя_сервера -ag=имя_агента -ref=имя_кластера
Результат работы команды представляет собой таблицу, где каждой строке соответствует один активный сеанс. Вы увидите идентификатор сеанса (Infobase ID), имя пользователя, имя компьютера, с которого выполнено подключение, и, что самое важное, время начала сеанса и время последней активности. Это позволяет мгновенно выявить «спящие» подключения, которые числятся активными, но пользователь уже ушел на обед.
Особое внимание стоит уделить колонке с названием процесса. Утилита покажет, запущен ли сеанс в режиме предприятия, в режиме конфигуратора или фоновое задание. Часто бывает так, что «тормоза» вызывает не активная работа бухгалтера, а зависшее фоновое задание или забытый открытый конфигуратор. TInfo позволяет администратору не только диагностировать, но и принудительно завершать проблемные сеансы с помощью ключа -kill, хотя делать это нужно с крайней осторожностью.
- 🖥️ Показывает реальное время последней активности пользователя, а не только время входа.
- 🔍 Отображает тип клиента (Тонкий, Толстый, Веб, Мобильный).
- 🛑 Позволяет принудительно завершать сеансы по ID без остановки службы сервера.
- 📊 Выводит информацию о блокировках, если сеанс удерживает монопольные права.
Мониторинг через Консоль управления кластером серверов
Для системных администраторов, управляющих инфраструктурой на уровне служб Windows или Linux, основным инструментом является Консоль управления кластером серверов 1С:Предприятия (mmc-снапчин). Это графический интерфейс, который дает глобальный взгляд на состояние всего кластера. Здесь можно увидеть не только пользователей, но и нагрузку на рабочие процессы.
Чтобы посмотреть список подключений, раскройте дерево кластера, найдите нужный информационный базу и перейдите в раздел «Сеансы». Интерфейс отобразит таблицу со всеми активными пользователями. Преимущество этого метода в том, что он работает в реальном времени и обновляется по требованию (клавиша F5). Вы можете видеть, какой рабочий процесс rphost обслуживает конкретного пользователя.
Это критически важно для диагностики. Если все пользователи «висят» на одном процессе, а другие простаивают, значит, нарушен балансировщик нагрузки или параметр число активных сеансов на процесс настроен некорректно. Также в свойствах сеанса можно увидеть список используемых внешних соединений и открытых транзакций, что помогает найти источник блокировок.
Что такое рабочий процесс rphost?
Рабочий процесс (rphost.exe) — это исполнительный модуль сервера 1С, который непосредственно выполняет код платформы и запросы к базе данных. Один процесс может обслуживать несколько пользовательских сеансов одновременно. Если процесс падает, все подключенные к нему пользователи теряют связь с базой.
Однако есть нюанс: консоль управления требует прав на подключение к службе сервера 1С. В современных версиях платформы доступ по умолчанию может быть закрыт или требовать аутентификации. Убедитесь, что ваша учетная запись входит в группу администраторов кластера. Без этих прав вы увидите пустой список или ошибку доступа, даже если в системе работают сотни людей.
Анализ активных сессий через SQL-запросы
В архитектуре клиент-сервер платформа 1С хранит информацию о текущих сеансах в системных таблицах базы данных СУБД. Этот метод является наиболее глубоким и позволяет получить данные даже тогда, когда сама платформа 1С «лежит» и не отвечает на запросы через штатные интерфейсы. Для работы вам потребуются права на чтение системных представлений в MS SQL Server или PostgreSQL.
В случае с MS SQL Server информация о блокировках и сессиях часто доступна через динамические представления. Однако сама 1С ведет свой реестр сеансов в таблице _Session (имя может отличаться в зависимости от версии платформы и типа СУБД). Прямой запрос к этой таблице покажет список активных ID сеансов. Более надежный способ в SQL Server — использование системной процедуры sp_who2 или запросов к sys.dm_exec_sessions, фильтруя их по имени приложения «1Cv8».
Пример запроса для выявления сессий 1С в SQL Server:
SELECT session_id, login_name, host_name, program_name, login_time
FROM sys.dm_exec_sessions
WHERE program_name LIKE '1Cv8%'
AND is_user_process = 1;
Этот запрос вернет список всех процессов, которые СУБД считает активными для клиента 1С. Сравнивая этот список с данными из консоли 1С, можно найти «потерянные» соединения — ситуации, когда пользователь закрыл окно 1С некорректно (например, убил процесс через диспетчер задач), но сессия на стороне сервера баз данных осталась висеть, удерживая ресурсы и блокировки.
| Источник данных | Точность данных | Требуемые права | Возможность разрыва |
|---|---|---|---|
| Журнал регистрации 1С | Историческая / С задержкой | Право на чтение журнала | Нет |
| Утилита TInfo | Высокая (Real-time) | Доступ к порту сервера | Да (через ключи) |
| Консоль кластера | Высокая | Админ кластера | Да (Интерфейс) |
| SQL Запросы | Максимальная (уровень СУБД) | Sysadmin / DB Owner | Да (KILL command) |
⚠️ Внимание: Принудительное завершение сессии на уровне СУБД (команда KILL) без предварительного отката транзакций на стороне 1С может привести к повреждению данных или необходимости восстановления из резервной копии. Используйте этот метод только в экстренных случаях.
Диагностика зависших и фоновых сеансов
Часто вопрос «кто онлайн» трансформируется в вопрос «кто мешает работать». Зависшие сеансы — бич многопользовательских баз. Они могут возникать из-за потери сетевого соединения, некорректного завершения работы клиента или ошибок в коде конфигурации, приводящих к бесконечным циклам. Такие сеансы продолжают числиться активными, занимая лицензии и удерживая блокировки на таблицах.
Для выявления таких «зомби» обратите внимание на время последней активности. Если в TInfo или консоли вы видите, что сеанс начался 4 часа назад, а время последнего обращения к данным — 3 часа 50 минут назад, и за это время не было ни одного действия, скорее всего, пользователь ушел, не закрыв программу, или его компьютер ушел в спящий режим с разорванным сетевым подключением.
Отдельная категория — фоновые задания. Они выполняются в отдельном потоке и не всегда видны в общем списке пользователей как активные действия человека. Однако они создают нагрузку на сервер 1С и СУБД. В журнале регистрации ищите события типа Фон.задание. Если такое задание выполняется дольше обычного регламентного времени (например, обработка обмена данными висит уже 2 часа), его необходимо анализировать в первую очередь.
- 🕒 Сравнивайте время начала сеанса и время последнего запроса к СУБД.
- 🔒 Проверяйте наличие активных блокировок (Locks) у подозрительных сеансов.
- 📉 Мониторьте потребление оперативной памяти процессом rphost, обслуживающим проблемного пользователя.
⚠️ Внимание: Интерфейсы и команды могут незначительно отличаться в зависимости от версии платформы 1С:Предприятие (8.2, 8.3, 8.4 и т.д.) и типа используемой СУБД. Всегда сверяйтесь с официальной документацией для вашей конкретной сборки перед выполнением деструктивных действий.
☑️ Действия при обнаружении зависшего сеанса
Частые вопросы по мониторингу пользователей (FAQ)
Почему в журнале регистрации не видно пользователей, которые точно работают?
Это может происходить по двум причинам. Во-первых, в настройках журнала регистрации отключено ведение журнала для события «Сеанс». Во-вторых, вы смотрите в журнал другой информационной базы (если на сервере их несколько) или у вас нет прав на чтение журнала. Проверьте настройки в разделе «Администрирование» → «Настройка журнала регистрации».
Можно ли увидеть, какую именно форму открыл пользователь?
Штатными средствами 1С увидеть открытую форму конкретного пользователя в реальном времени нельзя из соображений безопасности и архитектуры. Однако в журнале регистрации можно увидеть события открытия конкретных объектов метаданных, если включено подробное логирование. Утилита TInfo также не показывает имя открытой формы, только факт наличия сеанса.
Как узнать, кто занял лицензию 1С, если все места заняты?
Используйте консоль управления кластером серверов. В списке сеансов будет видно количество активных подключений. Если лицензия «по пользователям», то каждый сеанс занимает одну лицензию. Если «по компаниям», то сеансы группируются. Для детального анализа используйте отчет «Лицензии» в самой платформе 1С, если у вас есть права главного администратора.
Безопасно ли завершать сеанс администратора через консоль?
Завершение чужого сеанса всегда несет риск потери несохраненных данных у пользователя. Если пользователь в этот момент проводил документ, документ может не провести, а блокировки могут остаться. Завершать сеанс следует только после предупреждения пользователя или если сеанс явно завис и не реагирует на действия.
Комплексный мониторинг, сочетающий данные из консоли кластера и SQL-запросов, дает наиболее полную картину состояния системы и позволяет быстро устранять узкие места.