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

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

Как выбросить активных пользователей из 1С

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

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

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

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

Как определить, кто сейчас работает в базе

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

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

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

Давно нет активностиСпящий сеанс

Кластер завершит его сам по таймауту — можно не трогать

Приложение: фоновое заданиеВыполняется регламентная операция

Принудительный обрыв может прервать обмен или расчёт

Пользователь не выходит из базыЗависший клиент

Сеанс нужно завершить принудительно через консоль

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

Это основной способ для клиент-серверной 1С. Откройте оснастку «Администрирование серверов 1С:Предприятия» на компьютере, где установлен сервер 1С, или подключитесь к серверу удалённо, добавив его в консоль. Разверните дерево: сервер → кластер → «Сеансы».

В списке сеансов выделите нужные (Ctrl или Shift для выбора нескольких), нажмите правую кнопку мыши и выберите «Удалить». Сеанс завершается немедленно: у пользователя клиент закрывается с сообщением о разрыве соединения с сервером. Чтобы выбросить всех, выделите весь список через Ctrl+A — но предварительно исключите служебные сеансы, если они нужны для ваших задач.

Если консоль не открывается или кластер не виден, проверьте, что служба «Агент сервера 1С:Предприятия» запущена и версия консоли совпадает с версией сервера — консоль от другой версии платформы может не подключиться.

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

Блокировка сеансов и сообщение пользователям

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

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

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

Как выбросить пользователей из файловой базы

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

Если база опубликована на веб-сервере (IIS или Apache), завершить всех пользователей можно перезапуском пула приложений или самого веб-сервера: соединения оборвутся, и клиенты получат ошибку соединения. Это грубый, но быстрый способ, когда база раздаётся через веб.

Радикальный вариант для локальной файловой базы — временно переименовать или переместить файл 1Cv8.1CD, либо закрыть общий сетевой доступ к папке. Такой метод применяйте только в крайнем случае: обрыв работы с файлом базы повышает риск её повреждения, особенно если в момент отключения шла запись.

Программное завершение сеансов

Администраторы, которым нужно выгонять пользователей по расписанию (например, перед ночным обновлением), автоматизируют задачу скриптами. Классический подход — COM-объект V83.ComConnector: подключение к агенту сервера, получение списка сеансов информационной базы и вызов метода TerminateSession для каждого. Скрипт можно написать на PowerShell, VBScript или встроенном языке 1С.

Альтернатива — консольная утилита RAC из состава сервера 1С. Она позволяет управлять кластером из командной строки: получить список сеансов и завершить их по идентификатору. Это удобно для интеграции в планировщик задач Windows без написания полноценных скриптов.

powershell
# Пример: завершить все сеансы базы через COM
$connector = New-Object -ComObject V83.ComConnector
$agent = $connector.ConnectAgent("server:1540")
$cluster = $agent.GetClusters()[0]
$agent.Authenticate($cluster, "", "")
$base = $agent.GetInfoBases($cluster) | Where-Object {$_.Name -eq "MyBase"}
$sessions = $agent.GetInfoBaseSessions($cluster, $base)
foreach ($s in $sessions) { $agent.TerminateSession($cluster, $s) }

При любом программном способе добавьте в скрипт фильтрацию: не завершайте сеансы фоновых заданий и служебных подключений без необходимости, а перед массовым завершением установите блокировку сеансов через тот же RAC (параметры info-base update с установкой sessions-deny).

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

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

Дополнительный признак успеха — монопольный доступ: попробуйте запустить конфигуратор с установкой монопольного режима или выполнить тестовое обновление конфигурации базы данных. Если операция проходит без ошибки «база занята», пользователей в базе нет.

Типичные ошибки
01
Удаление сеансов без блокировки — пользователи переподключаются через минуту
02
Завершение фоновых заданий во время обмена данными — обрыв обмена и рассинхронизация
03
Отключение файловой базы обрывом сетевого доступа — риск повреждения файла 1Cv8.1CD
04
Использование консоли кластера другой версии платформы — консоль не подключается или работает некорректно
05
Отсутствие предупреждения пользователей — потеря несохранённых данных и конфликты

FAQ

Можно ли выбросить пользователя, не заходя на сервер?

Да, если у вас есть права администратора кластера: консоль «Администрирование серверов» можно запустить на своём компьютере и подключиться к серверу по сети. Также работают скрипты через COM-соединение или RAC, выполняемые удалённо.

Пользователь снова заходит сразу после удаления сеанса. Что делать?

Установите блокировку начала сеансов в свойствах информационной базы (консоль кластера) или через «Блокировку работы пользователей» в типовой конфигурации. Без блокировки удаление сеансов даёт эффект на пару минут.

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

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

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

Если база опубликована на веб-сервере — перезапустите пул приложений или веб-сервер. Если база в общей сетевой папке, централизованного способа нет: либо попросите пользователей выйти, либо используйте обработку блокировки соединений из состава БСП.

Можно ли завершить только сеансы конкретного пользователя?

Да. В консоли кластера отсортируйте список сеансов по колонке «Пользователь», выделите нужные и удалите их. В скриптах сеансы фильтруются по свойству UserName перед вызовом TerminateSession.

Опасно ли прерывать фоновые задания при массовом отключении?

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

Итог

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

В клиент-серверной 1С пользователей завершают через консоль кластера (Сеансы → Удалить), предварительно установив блокировку начала сеансов. В файловой базе используют блокировку соединений, перезапуск веб-сервера или обработки. Обрыв сетевого доступа к файлу базы — крайняя мера с риском повреждения данных.