Администрирование · 9 мин
Как выбросить активных пользователей из 1С
Как завершить сеансы активных пользователей в 1С: через консоль кластера, конфигуратор, внешние соединения и программно. Риски, проверка результата и FAQ.
Завершить сеанс пользователя в 1С чаще всего требуется при обновлении конфигурации, регламентных операциях, восстановлении базы из резервной копии или когда «зависший» сеанс блокирует работу остальных сотрудников. Способ отключения выбирают исходя из режима работы базы — файлового или клиент-серверного, а также из того, есть ли у вас доступ к серверу или вы действуете удалённо.
В клиент-серверном варианте сеансы управляются через консоль кластера серверов 1С или программно через COM-соединение с агентом сервера. В файловом варианте централизованного механизма нет — приходится использовать блокировку сеансов, внешние обработки или перезапуск публикации базы. Ниже разобраны все рабочие сценарии с ограничениями каждого.
Прежде чем «выкидывать» пользователей, убедитесь, что у них нет несохранённых данных и не выполняются длительные регламентные операции: принудительное завершение сеанса обрывает транзакции, и в редких случаях это приводит к ошибкам целостности данных.
Как определить, кто сейчас работает в базе
Перед завершением сеансов полезно увидеть реальную картину: кто подключён, каким клиентом и сколько времени сеанс неактивен. В клиент-серверном варианте откройте консоль «Администрирование серверов 1С:Предприятия», разверните нужный кластер и перейдите в ветку «Сеансы». Здесь отображаются пользователь, приложение (тонкий клиент, веб-клиент, фоновое задание), время начала сеанса и время последнего обращения.
Обратите внимание на колонку «Спящий сеанс» и время последнего вызова: часто «зависшие» пользователи — это просто давно неактивные сеансы, которые кластер сам завершит по таймауту. Также в ветке «Соединения» видно соединения с рабочими процессами — их разрыв тоже завершает работу клиента, но это более грубый метод.
В файловой базе список активных пользователей доступен прямо из клиента: «Администрирование» → «Обслуживание» → «Активные пользователи» (в типовых конфигурациях на БСП). Оттуда же можно отправить пользователям сообщение о плановом завершении работы.
Кластер завершит его сам по таймауту — можно не трогать
Принудительный обрыв может прервать обмен или расчёт
Сеанс нужно завершить принудительно через консоль
Завершение сеансов через консоль кластера серверов
Это основной способ для клиент-серверной 1С. Откройте оснастку «Администрирование серверов 1С:Предприятия» на компьютере, где установлен сервер 1С, или подключитесь к серверу удалённо, добавив его в консоль. Разверните дерево: сервер → кластер → «Сеансы».
В списке сеансов выделите нужные (Ctrl или Shift для выбора нескольких), нажмите правую кнопку мыши и выберите «Удалить». Сеанс завершается немедленно: у пользователя клиент закрывается с сообщением о разрыве соединения с сервером. Чтобы выбросить всех, выделите весь список через Ctrl+A — но предварительно исключите служебные сеансы, если они нужны для ваших задач.
Если консоль не открывается или кластер не виден, проверьте, что служба «Агент сервера 1С:Предприятия» запущена и версия консоли совпадает с версией сервера — консоль от другой версии платформы может не подключиться.
- 1Откройте оснастку «Администрирование серверов 1С:Предприятия»
- 2Разверните нужный сервер и кластер, перейдите в «Сеансы»
- 3Опционально: отправьте пользователям сообщение через свойства информационной базы
- 4Выделите сеансы и нажмите «Удалить» в контекстном меню
- 5Проверьте, что список сеансов очистился
Блокировка сеансов и сообщение пользователям
Удаление сеансов решает моментальную задачу, но пользователи тут же подключатся заново. Для регламентных работ правильнее сначала установить блокировку начала сеансов, а затем завершить текущие. В консоли кластера откройте свойства информационной базы и установите флажок «Блокировка начала сеансов включена», указав время начала и окончания блокировки и код разрешения для администратора.
В том же окне есть поле «Сообщение» — его текст увидят пользователи при попытке входа. Код разрешения позволяет войти в базу администратору, пока блокировка действует: при подключении его указывают в параметре запуска /UC или в диалоге.
В типовых конфигурациях на Библиотеке стандартных подсистем аналогичная функция доступна из интерфейса: «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Там же можно отправить активным пользователям предупреждение с просьбой завершить работу — вежливый способ освободить базу без принудительного обрыва.
Как выбросить пользователей из файловой базы
В файловом варианте нет кластера и централизованного управления сеансами, поэтому применяют обходные методы. Самый простой — воспользоваться типовой обработкой «Блокировка установки соединений с информационной базой» (входит в состав инструментов разработчика и БСП): она устанавливает блокировку и по расписанию принудительно завершает работу клиентов, у которых открыта база.
Если база опубликована на веб-сервере (IIS или Apache), завершить всех пользователей можно перезапуском пула приложений или самого веб-сервера: соединения оборвутся, и клиенты получат ошибку соединения. Это грубый, но быстрый способ, когда база раздаётся через веб.
Радикальный вариант для локальной файловой базы — временно переименовать или переместить файл 1Cv8.1CD, либо закрыть общий сетевой доступ к папке. Такой метод применяйте только в крайнем случае: обрыв работы с файлом базы повышает риск её повреждения, особенно если в момент отключения шла запись.
Программное завершение сеансов
Администраторы, которым нужно выгонять пользователей по расписанию (например, перед ночным обновлением), автоматизируют задачу скриптами. Классический подход — COM-объект V83.ComConnector: подключение к агенту сервера, получение списка сеансов информационной базы и вызов метода TerminateSession для каждого. Скрипт можно написать на PowerShell, VBScript или встроенном языке 1С.
Альтернатива — консольная утилита RAC из состава сервера 1С. Она позволяет управлять кластером из командной строки: получить список сеансов и завершить их по идентификатору. Это удобно для интеграции в планировщик задач Windows без написания полноценных скриптов.
# Пример: завершить все сеансы базы через 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).
Проверка результата и типичные ошибки
После завершения сеансов убедитесь, что база действительно свободна. В консоли кластера обновите список «Сеансы» — он должен быть пуст или содержать только ваши служебные подключения. Затем проверьте ветку «Соединения»: иногда соединения остаются висеть после удаления сеанса и держат блокировки.
Дополнительный признак успеха — монопольный доступ: попробуйте запустить конфигуратор с установкой монопольного режима или выполнить тестовое обновление конфигурации базы данных. Если операция проходит без ошибки «база занята», пользователей в базе нет.
FAQ
Можно ли выбросить пользователя, не заходя на сервер?
Да, если у вас есть права администратора кластера: консоль «Администрирование серверов» можно запустить на своём компьютере и подключиться к серверу по сети. Также работают скрипты через COM-соединение или RAC, выполняемые удалённо.
Пользователь снова заходит сразу после удаления сеанса. Что делать?
Установите блокировку начала сеансов в свойствах информационной базы (консоль кластера) или через «Блокировку работы пользователей» в типовой конфигурации. Без блокировки удаление сеансов даёт эффект на пару минут.
Что будет с несохранёнными данными пользователя при принудительном завершении?
Несохранённые данные будут потеряны: открытые незаписанные документы, введённые строки, результаты незавершённых операций. Поэтому перед массовым отключением отправьте пользователям предупреждение и дайте время завершить работу.
Как выгнать пользователей из файловой базы без дополнительных обработок?
Если база опубликована на веб-сервере — перезапустите пул приложений или веб-сервер. Если база в общей сетевой папке, централизованного способа нет: либо попросите пользователей выйти, либо используйте обработку блокировки соединений из состава БСП.
Можно ли завершить только сеансы конкретного пользователя?
Да. В консоли кластера отсортируйте список сеансов по колонке «Пользователь», выделите нужные и удалите их. В скриптах сеансы фильтруются по свойству UserName перед вызовом TerminateSession.
Опасно ли прерывать фоновые задания при массовом отключении?
Да, если задание выполняет обмен данными, проведение документов или расчёты — обрыв может оставить данные в несогласованном состоянии. Перед завершением проверьте список фоновых заданий и дождитесь окончания критичных операций.
Что важно запомнить
В клиент-серверной 1С пользователей завершают через консоль кластера (Сеансы → Удалить), предварительно установив блокировку начала сеансов. В файловой базе используют блокировку соединений, перезапуск веб-сервера или обработки. Обрыв сетевого доступа к файлу базы — крайняя мера с риском повреждения данных.