Администрирование · 11 мин
Как узнать, сколько сеансов 1С запущено
Как узнать, сколько сеансов 1С запущено: консоль кластера, консольные команды rac, PowerShell, журнал регистрации и типовые средства. Пошаговые инструкции и ограничения.
Количество активных сеансов 1С — один из базовых показателей, который нужен администратору при планировании обновления, поиске «зависших» пользователей и контроле лицензий. Способ проверки зависит от режима работы информационной базы: файловый или клиент-серверный. В файловом режиме инструментов меньше, в клиент-серверном доступны консоль кластера, утилита rac, PowerShell и встроенные функции языка 1С.
Важно различать понятия «сеанс» и «соединение». Сеанс — это логическая сессия пользователя или фонового процесса в информационной базе, а соединение — техническая связь с рабочим процессом кластера. Один сеанс может порождать несколько соединений, поэтому для ответа на вопрос «сколько пользователей работает» считать нужно именно сеансы, а не соединения.
Ниже разобраны все рабочие способы: от штатной консоли кластера до скриптов автоматизации. Для каждого указаны условия применения, ограничения и типичные ошибки.
Что считается сеансом и почему это важно
Сеанс создаётся при каждом подключении к информационной базе: запуск толстого или тонкого клиента, веб-клиента, фонового задания, сеанса веб-сервиса или COM-соединения. Поэтому число сеансов почти всегда больше количества реально работающих пользователей — фоновые задания и регламентные операции тоже занимают сеансы.
Знание текущего числа сеансов критично в трёх ситуациях. Первая — монопольный режим: обновление конфигурации или загрузка данных требуют, чтобы все пользователи вышли, и нужно убедиться, что активных сеансов не осталось. Вторая — контроль лицензий: клиентские лицензии расходуются по сеансам, и при их нехватке новые пользователи получают отказ. Третья — диагностика производительности: резкий рост числа сеансов часто указывает на зависшие процессы или ошибки в коде, создающие лишние подключения.
Просмотр сеансов в консоли кластера серверов
Штатный способ для клиент-серверного режима — консоль управления кластером (оснастка «Администрирование серверов 1С:Предприятия»). Откройте консоль, разверните нужный кластер, затем узел «Информационные базы» и выберите базу. Внутри неё есть ветка «Сеансы» — в ней отображается полный список активных сеансов с указанием пользователя, приложения, времени начала и активности.
Количество строк в списке и есть текущее число сеансов. Чтобы быстро сориентироваться, обратите внимание на колонку «Приложение»: значения вроде «Тонкий клиент» или «Толстый клиент» — это интерактивные пользователи, а «Фоновое задание» или «WS-ссылка» — служебные подключения. Отсортируйте список по этой колонке, чтобы отделить людей от фоновых процессов.
Обращайте внимание на колонку «Спящий сеанс» и время последней активности. Спящие сеансы — это подключения, которые кластер держит в памяти, но которые не выполняют вызовов. Они занимают лицензии и могут мешать установке монопольного режима, поэтому перед обновлением их часто приходится завершать принудительно.
- 1Откройте оснастку «Администрирование серверов 1С:Предприятия» под учётной записью администратора кластера
- 2Разверните кластер → «Информационные базы» → нужную базу
- 3Откройте ветку «Сеансы» и посчитайте строки или отсортируйте по колонке «Приложение»
- 4Проверьте наличие спящих сеансов и их время бездействия
- 5При необходимости завершите лишние сеансы через контекстное меню «Удалить»
Получение числа сеансов через утилиту rac
Для автоматизации и удалённой проверки удобнее командная строка. В составе сервера 1С поставляется утилита rac (каталог bin центрального сервера), которая позволяет выгрузить список сеансов без графической консоли. Сначала получите идентификатор кластера и базы, затем запросите список сеансов.
rac cluster list
rac infobase --cluster=<ID_кластера> summary list
rac session --cluster=<ID_кластера> --infobase=<ID_базы> listКаждая строка вывода команды session list соответствует одному сеансу. Чтобы получить именно количество, вывод перенаправляют в подсчёт строк — в Windows через find, в Linux через wc. Это удобно для скриптов мониторинга: например, проверка раз в пять минут с записью результата в лог или отправкой уведомления при превышении порога.
rac session --cluster=<ID> --infobase=<ID> list | find /c "session"Учтите, что rac требует указания учётных данных администратора кластера или базы, если они заданы. Параметры --cluster-user и --cluster-pwd передаются в командной строке, поэтому не встраивайте пароли в скрипты в открытом виде — используйте защищённое хранилище или переменные окружения с ограниченным доступом.
Подсчёт сеансов из встроенного языка 1С
Если нужно получить число сеансов внутри самой системы — например, для отображения администратору в интерфейсе или для проверки перед запуском обработки — используется функция ПолучитьСеансыИнформационнойБазы(). Она возвращает массив объектов «СеансИнформационнойБазы», и его количество (метод Количество()) даёт искомое значение.
Сеансы = ПолучитьСеансыИнформационнойБазы();
Сообщить("Активных сеансов: " + Сеансы.Количество());Функция доступна только на сервере и требует права «Администрирование» на информационную базу. Из массива сеансов можно отфильтровать нужные по свойству «ИмяПриложения» — так отделяют интерактивные сеансы пользователей от фоновых заданий. Это стандартный приём в процедурах завершения работы пользователей перед обновлением.
В типовых конфигурациях на базе БСП есть готовый механизм: обработка «Активные пользователи» (раздел «Администрирование» → «Обслуживание») показывает список сеансов, позволяет завершать их и устанавливать блокировку сеансов. Если конфигурация типовая, собственный код писать не нужно.
Файловый режим: чем ограничена проверка
В файловом режиме кластера серверов нет, поэтому консоль и rac недоступны. Основные способы узнать, кто работает с базой: функция ПолучитьСеансыИнформационнойБазы() (она работает и в файловом режиме), типовая обработка «Активные пользователи» и косвенный признак — наличие соединений в списке, который показывает конфигуратор при попытке монопольного доступа.
Дополнительно можно посмотреть открытые файлы на сетевом ресурсе, где лежит база: в Windows это оснастка «Управление компьютером» → «Общие папки» → «Открытые файлы». Файл 1Cv8.1CD, открытый с разных компьютеров, показывает, кто держит подключение. Способ приблизительный: он не различает типы сеансов и не показывает фоновые задания, но для быстрой оценки в небольшом офисе достаточен.
Сравнение способов
Наглядно, подходит для разовой проверки и завершения сеансов. Требует установленной оснастки и прав администратора кластера.
Подходит для скриптов и мониторинга. Требует аккуратной работы с идентификаторами и защиты паролей.
Работает в обоих режимах, удобна внутри кода. Требует права администрирования и видит только свою базу.
Единственный внешний способ для файлового режима без прав в 1С. Приблизительный, не различает типы подключений.
Контроль лицензий и типичные проблемы
Число сеансов напрямую связано с расходом клиентских лицензий: каждый интерактивный сеанс занимает одну лицензию. Если пользователи получают сообщение о нехватке лицензий, первым делом проверьте список сеансов — часто там обнаруживаются «зависшие» сеансы с компьютеров, которые давно выключены или перезагружены аварийно. Такие сеансы кластер закрывает не сразу, а по таймауту.
Поведением спящих и зависших сеансов управляют свойства информационной базы в консоли кластера: «Интервал перезапуска», «Время засыпания пассивного сеанса» и «Завершение спящих сеансов». Разумная настройка этих параметров (например, засыпание через 20–30 минут бездействия и завершение спящих через сутки) снижает число «мёртвых душ» и освобождает лицензии без ручного вмешательства.
Проверка результата и безопасные границы
После любых действий с сеансами проверьте результат повторным запросом списка. Если целью было освобождение базы для монопольного режима — попробуйте установить монопольный доступ: успешная установка подтверждает, что активных сеансов не осталось. Если целью было освобождение лицензий — попросите пользователя, получавшего отказ, войти снова.
Как проверить результат
Остались только нужные интерактивные сеансы и штатные фоновые задания
Сеансы появляются снова сразу после удаления — есть процесс, который переподключается
Режим устанавливается без ошибок
Ошибка о наличии активных сеансов — кто-то ещё подключён
Вход выполняется успешно
Ошибка повторяется — лицензии заняты другими сеансами или недоступен сервер лицензирования
Завершение чужого сеанса — операция с риском потери несохранённых данных пользователя. Безопасная практика: сначала установить блокировку сеансов с сообщением о планируемых работах, дать пользователям время сохраниться (обычно 5–15 минут) и только потом завершать оставшиеся сеансы принудительно. В типовых конфигурациях для этого есть механизм «Блокировка установки соединений с информационной базой».
Частые вопросы
Почему сеансов больше, чем реальных пользователей?
Кроме интерактивных подключений сеансы создают фоновые задания, регламентные операции, веб-сервисы и COM-соединения. Также один пользователь может держать открытыми несколько окон клиента или несколько баз одновременно. Отфильтруйте список по колонке «Приложение», чтобы увидеть только пользовательские клиенты.
Как посмотреть сеансы, если нет прав администратора кластера?
Изнутри системы — через типовую обработку «Активные пользователи», если у вас есть роль администратора информационной базы. Без прав внутри 1С остаётся только косвенный способ для файловых баз — просмотр открытых файлов на сетевом ресурсе, доступный администратору Windows.
Сеанс завис и не удаляется из консоли. Что делать?
Сначала попробуйте удалить сеанс повторно через несколько минут — кластер может завершать его асинхронно. Если не помогает, проверьте список соединений и завершите связанное соединение. В крайнем случае сеанс снимается перезапуском рабочего процесса, но это затронет других пользователей этого процесса, поэтому применяйте только вне рабочего времени.
Занимают ли лицензии фоновые задания?
Штатные фоновые задания, запущенные внутри существующего сеанса, отдельную клиентскую лицензию не расходуют. Однако сеансы веб-сервисов, внешних соединений и отдельно запущенных фоновых процессов учитываются по своим правилам. Точную картину по расходу лицензий показывает счётчик в консоли кластера и данные сервера лицензирования.
Можно ли автоматически получать число сеансов по расписанию?
Да. Настройте скрипт с командой rac session list, подсчитывающий строки, и запускайте его планировщиком задач. Результат можно писать в лог-файл или отправлять в систему мониторинга. Не храните пароль администратора в скрипте открытым текстом.
Чем отличается «засыпание» сеанса от его завершения?
Засыпание — это перевод неактивного сеанса в пассивное состояние с освобождением части ресурсов; при обращении пользователя сеанс «просыпается» без повторного входа. Завершение полностью разрывает подключение: пользователю придётся входить заново, а несохранённые данные будут потеряны.
Что важно запомнить
Число сеансов смотрят в консоли кластера (ветка «Сеансы»), через rac session list или функцией ПолучитьСеансыИнформационнойБазы(). Считайте сеансы, а не соединения, отделяйте фоновые задания от пользователей и перед принудительным завершением всегда предупреждайте людей через блокировку сеансов.