К статье
Практический материал

Администрирование · 11 мин

Как выкинуть пользователя из 1С: все способы завершения сеанса

Как принудительно завершить сеанс пользователя в 1С через консоль кластера, конфигуратор и код. Риски, проверка результата, типичные ошибки.

Ситуация, когда нужно принудительно завершить сеанс пользователя в 1С, возникает регулярно: сотрудник ушёл домой, не закрыв программу, сеанс «завис» и блокирует регламентные операции, либо требуется срочно освободить лицензию. В файловом варианте выбора почти нет — помогает только договорённость с пользователем или перезапуск доступа к файлу базы. В клиент-серверном варианте администратор может завершить любой сеанс централизованно, не трогая компьютер пользователя.

Главное, что нужно понимать перед действием: принудительное завершение сеанса обрывает работу пользователя на стороне сервера. Несохранённые данные в открытых документах будут потеряны, а оборванная на середине транзакция может оставить фоновое задание в подвисшем состоянии. Поэтому сначала стоит попытаться связаться с пользователем, а принудительный разрыв применять осознанно.

Как понять, какой у вас вариант базы и кто «висит» в сеансах

Прежде чем что-то завершать, определите режим работы информационной базы. Откройте «Файл → Сведения о базе» (или посмотрите строку подключения в списке баз стартера): если путь выглядит как \\server\base или локальный каталог — это файловый вариант, если указан сервер и имя базы вида Srvr="srv1c";Ref="trade" — клиент-серверный.

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

Сеанс активен давно без действийВозможно, пользователь просто не закрыл программу

Попробуйте связаться с пользователем перед завершением

Приложение сеанса — фоновое заданиеЭто не пользователь, а регламентный процесс

Завершение может оборвать обмен или расчёт — проверьте, что за задание

Один пользователь, несколько сеансовОткрыто несколько клиентов или сеанс завис

Сравните время начала сеансов и компьютеры

База файловаяЦентрализованного завершения нет

Действуйте через пользователя или на уровне ОС

Завершение сеанса через консоль кластера серверов 1С

Основной инструмент администратора клиент-серверной 1С — консоль кластера (MMC-оснастка «Администрирование серверов 1С:Предприятия»). Она устанавливается вместе с сервером 1С, запустить её можно и с рабочего места администратора, если установлен компонент сервера.

Порядок действий: откройте консоль, разверните нужный кластер, затем рабочий сервер и найдите информационную базу. Внутри неё есть два похожих раздела — «Сеансы» и «Соединения». Для завершения работы пользователя используйте именно «Сеансы»: выделите строку с нужным пользователем, нажмите правую кнопку и выберите «Удалить», затем подтвердите действие. Клиент пользователя получит сообщение о разрыве соединения с сервером и закроется.

Порядок действий в консоли кластера
  1. 1
    Откройте оснастку «Администрирование серверов 1С:Предприятия»
  2. 2
    Разверните кластер → сервер → информационную базу → «Сеансы»
  3. 3
    Найдите пользователя по имени, компьютеру или времени начала сеанса
  4. 4
    Правый клик по строке → «Удалить» → подтвердите
  5. 5
    Попросите пользователя не входить сразу, если завершение было аварийным
  6. 6
    Проверьте, что сеанс исчез из списка, а фоновые задания не зависли

Обратите внимание на колонку «Приложение» в списке сеансов. Значения «Тонкий клиент», «Толстый клиент», «Веб-клиент» — это интерактивные пользователи. «Фоновое задание», «WS-соединение», «COM-соединение» — служебные процессы и интеграции. Удаление служебного сеанса оборвёт обмен данными или регламентную операцию, что иногда хуже, чем зависший пользователь.

Программное завершение сеансов через административный интерфейс

Когда сеансов много или завершение нужно автоматизировать (например, выгнать всех перед обновлением), используют программный интерфейс администрирования кластера. Классический подход — COM-объект V83.COMConnector и объект IServerAgentConnection, либо библиотеки-обёртки вроде OneScript с пакетом v8rac/v8mgmt, либо консольная утилита rac из состава сервера.

Утилита rac позволяет получить список сеансов и завершить конкретный по идентификатору. Сначала запрашивается список сеансов кластера, из него берётся UUID нужного сеанса, затем выполняется команда завершения.

bash
rac session --cluster=<ID_кластера> list
rac session --cluster=<ID_кластера> terminate --session=<UUID_сеанса>

Из встроенного языка 1С через COM-администрирование логика такая: подключиться к агенту сервера, аутентифицироваться, получить рабочий процесс, открыть соединение с информационной базой, перебрать сеансы методом GetSessions и для нужных вызвать TerminateSession. Такой код удобно встроить в обработку «завершить все сеансы, кроме текущего» перед регламентным обновлением.

Блокировка входа как мягкая альтернатива

Если цель — не выбросить одного человека, а освободить базу для обслуживания, правильнее использовать установку блокировки сеансов. В консоли кластера в свойствах информационной базы есть параметр «Блокировка начала сеансов включена» с датами начала и окончания и текстом сообщения пользователям. В типовых конфигурациях на БСП то же самое делает команда «Блокировка работы пользователей» (или обработка «Блокировка работы пользователей» в разделе администрирования).

Блокировка не завершает текущие сеансы — она запрещает новые подключения и показывает пользователям сообщение с указанным текстом. Стандартный сценарий обслуживания: включить блокировку с сообщением «плановые работы до 19:00», дождаться, пока пользователи выйдут сами (или завершить оставшиеся сеансы вручную), выполнить работы, снять блокировку.

Сравнение вариантов

Удаление сеанса в консоли

Точечное и немедленное; подходит для зависшего сеанса. Риск — потеря несохранённых данных пользователя

Блокировка начала сеансов

Мягкий вариант для плановых работ; не трогает активных. Требует времени на выход пользователей

Программное завершение (rac, COM)

Массовое и автоматизируемое; нужны права администратора кластера и аккуратная фильтрация сеансов

Перезапуск службы агента сервера

Завершает всё сразу; крайняя мера при массовом зависании, обрывает и фоновые задания

Файловая база: что реально можно сделать

В файловом варианте нет сервера приложений, поэтому централизованно «выкинуть» пользователя штатными средствами 1С нельзя. Сеанс держится за счёт открытых файлов базы на общем ресурсе, и завершить его можно только косвенно.

Рабочие варианты: попросить пользователя закрыть программу (самый безопасный путь); на файловом сервере через оснастку «Управление компьютером → Общие папки → Открытые файлы» закрыть файлы, открытые пользователем, — сеанс оборвётся с ошибкой; либо перезагрузить компьютер пользователя удалённо, если у вас есть на это права и согласование. Все способы, кроме первого, приводят к потере несохранённых данных точно так же.

Если проблема повторяется (сотрудники регулярно оставляют сеансы открытыми), имеет смысл либо перевести базу в клиент-серверный режим, либо настроить в типовой конфигурации завершение работы неактивных пользователей — в БСП есть настройка, завершающая сеансы по таймауту простоя.

Типичные ошибки
01
Удаление соединения вместо сеанса — соединение пересоздаётся, пользователь продолжает работать, а администратор думает, что всё сделано
02
Завершение фонового задания обмена — обрыв на середине оставляет незавершённую выгрузку и очередь сообщений в неопределённом состоянии
03
Массовое завершение без предупреждения — потеря несохранённых документов у десятков пользователей и конфликты с отделами
04
Попытка «выкинуть» пользователя файловой базы через консоль кластера — консоль просто не показывает такую базу, время потрачено впустую

Проверка результата и частые проблемы после завершения

После удаления сеанса убедитесь, что он действительно исчез: обновите список сеансов в консоли (F5) и проверьте, что строки пользователя нет. На стороне пользователя клиент покажет сообщение о разрыве соединения — это нормальное поведение, а не сбой.

Иногда сеанс визуально удалён, но «зависшее» фоновое задание продолжает числиться в консоли заданий как выполняющееся. Проверьте регистрацию фоновых заданий и при необходимости отмените задание отдельно. Если после завершения сеансов база всё равно сообщает о монопольном режиме или блокировках, проверьте, не остались ли COM- и веб-соединения — они тоже держат базу.

Контрольные точки

Как проверить результат

Список сеансов в консоли после обновления
Норма

Сеанса пользователя нет в списке

Тревожный признак

Сеанс появился снова — пользователь переподключился или работает автообмен

Экран пользователя
Норма

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

Тревожный признак

Клиент продолжает работать — удалили соединение, а не сеанс

Фоновые задания
Норма

Нет заданий в состоянии «выполняется» без прогресса

Тревожный признак

Задание висит — требуется отдельная отмена

Вход в базу под тестовой учёткой
Норма

Вход выполняется, блокировки сняты

Тревожный признак

Сообщение о блокировке — проверьте настройку блокировки сеансов

Полезно держать под рукой заранее настроенную обработку «завершить все сеансы, кроме текущего» с установкой блокировки входа. В момент аварийного обновления это экономит десятки минут по сравнению с ручным удалением каждого сеанса в консоли.
ПЗ
Практическое замечание

Ответы на частые вопросы

Пользователь потеряет данные при принудительном завершении сеанса?

Да, всё, что не записано в базу (открытые незаписанные документы, заполненные, но не проведённые формы), будет потеряно. Записанные объекты не пострадают — транзакционная целостность базы при разрыве сеанса сохраняется.

Чем отличается удаление сеанса от удаления соединения в консоли?

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

Можно ли завершить сеанс пользователю без прав администратора кластера?

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

Как выгнать всех пользователей перед обновлением конфигурации?

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

Сеанс удалён, но пользователь сразу появляется снова. Что делать?

Значит, клиент или регламентный процесс переподключается автоматически. Варианты: включить блокировку начала сеансов, чтобы новые подключения отклонялись; проверить, не запущен ли у пользователя автообмен или ярлык с автозапуском; при необходимости временно отключить учётную запись пользователя в базе.

Итог

Что важно запомнить

В клиент-серверной 1С сеанс завершают через раздел «Сеансы» консоли кластера или программно через rac/COM; в файловой базе централизованного способа нет. Для плановых работ используйте блокировку начала сеансов, а принудительное завершение применяйте точечно, помня о потере несохранённых данных и риске оборвать фоновые задания.