Администрирование · 9 мин
Как принудительно выгнать всех пользователей из 1С
Способы принудительного завершения сеансов в 1С: консоль кластера, планировщик заданий, блокировка базы, отключение на SQL. Пошаговые инструкции и меры безопасности.
Принудительное завершение сеансов требуется при обновлении конфигурации, восстановлении из архива, обслуживании сервера СУБД и в других ситуациях, когда активные пользователи блокируют монопольный доступ. Способ зависит от режима работы базы — файловый или клиент-серверный — и от того, успели ли пользователи выйти самостоятельно.
Главный риск принудительного отключения — потеря несохранённых данных у пользователей и повреждение индексов при грубом обрыве соединений. Поэтому правильная тактика почти всегда двухэтапная: сначала мягкое завершение с предупреждением, затем принудительный разрыв оставшихся сеансов.
Когда принудительное отключение оправдано, а когда лучше подождать
Не всякая ситуация требует жёсткого разрыва. Если пользователь просто оставил открытый сеанс на ночь, а обновление не срочное, безопаснее дождаться утра или связаться с ним. Принудительное отключение оправдано при аварийном обновлении, зависшем сеансе, который держит блокировку, или при сбое, из-за которого сеанс «висит» в кластере, хотя клиент уже закрыт.
Признак зависшего сеанса — в консоли кластера он числится активным, но компьютер пользователя выключен или перезагружен. Такие сеансы не освобождают блокировки и мешают обновлению, их удаляют без предупреждения: пользователь всё равно уже не работает.
Как выбрать действие
Отключение сеансов через консоль кластера серверов 1С
Основной инструмент для клиент-серверного режима — консоль администрирования серверов 1С:Предприятия. Откройте её на сервере или на рабочем месте администратора, разверните нужный кластер, найдите информационную базу и перейдите на вкладку «Сеансы».
Чтобы выгнать всех, выделите сеансы (можно все через Ctrl+A) и выберите «Удалить» в контекстном меню. Сеанс завершается немедленно: у пользователя клиент закрывается с сообщением о разрыве соединения. Несохранённые данные в открытых формах будут потеряны.
Перед удалением проверьте колонки «Приложение» и «Начало сеанса»: не отключайте служебные сеансы фоновых заданий, если они выполняют важную регламентную операцию — прерывание посередине обработки может оставить данные в несогласованном состоянии.
- 1Откройте консоль администрирования серверов 1С и найдите нужную базу
- 2В свойствах базы включите блокировку начала сеансов, задайте сообщение и код разрешения
- 3Перейдите на вкладку «Сеансы» и выделите активные пользовательские сеансы
- 4Удалите выделенные сеансы через контекстное меню
- 5Проверьте, что остались только ваш сеанс и необходимые фоновые задания
Блокировка входа: как не дать пользователям зайти обратно
Удаление сеансов без блокировки бессмысленно: пользователи перезапустят клиент и зайдут снова через минуту. Поэтому сначала включите блокировку соединений в свойствах информационной базы в консоли кластера — параметры «Блокировка начала сеансов включена», время начала и сообщение для пользователей.
Обязательно задайте «Код разрешения» — произвольную строку, которую администратор вводит в параметр запуска /UC, чтобы самому зайти в заблокированную базу. Без кода вы рискуете заблокировать базу и для себя.
В типовых конфигурациях есть штатный механизм «Блокировка работы пользователей» (раздел «Администрирование» → «Обслуживание»). Он устанавливает ту же блокировку из интерфейса 1С, рассылает пользователям предупреждение и позволяет задать время автоматического завершения сеансов.
Отключение пользователей в файловой базе
В файловом режиме консоли кластера нет, поэтому инструменты другие. Самый корректный способ — обработка «Блокировка установки соединений с информационной базой» (часто поставляется на диске ИТС или в составе БСП). Она устанавливает блокировку сеансов и по расписанию завершает активные.
Если обработки нет, действуйте вручную: попросите всех выйти, проверьте отсутствие процессов 1cv8.exe с открытой базой на компьютерах пользователей. Файл блокировок 1Cv8.1CL в каталоге базы можно удалить только когда база точно никем не открыта — иначе возможно повреждение данных.
Если файловая база опубликована на веб-сервере, «выгнать» всех можно остановкой пула приложений или службы веб-сервера — соединения разорвутся, а после обслуживания службу запускают обратно.
Завершение сеансов со стороны СУБД
Когда консоль кластера недоступна или сеансы «зависли» так, что не удаляются, соединения можно разорвать на уровне СУБД. В Microsoft SQL Server откройте Activity Monitor в Management Studio, отфильтруйте процессы по нужной базе и завершите их командой KILL по номеру SPID.
ALTER DATABASE [MyBase] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;Команда выше переводит базу в однопользовательский режим и немедленно откатывает все активные транзакции — все пользователи будут отключены. После обслуживания верните многопользовательский режим командой ALTER DATABASE ... SET MULTI_USER.
Учтите: разрыв на уровне СУБД оставляет «осиротевшие» сеансы в кластере 1С, которые исчезнут по тайм-ауту. Это нормально, но для чистоты картины их можно удалить в консоли после восстановления связи.
Автоматизация: как выгонять пользователей по расписанию
Для регулярного ночного обслуживания ручные действия автоматизируют. В типовых конфигурациях настройте регламентное задание «Блокировка работы пользователей» с расписанием — например, за 15 минут до начала архивации пользователи получают предупреждение, затем сеансы завершаются принудительно.
Альтернатива — скрипт PowerShell или пакетный файл, который вызывает rac.exe (консольная утилита администрирования кластера) и удаляет сеансы по расписанию через планировщик Windows. Это удобно, когда баз много и обслуживание идёт по единому графику.
rac session --cluster=<ID_кластера> terminate --infobase=<ID_базы>После автоматического завершения обязательно проверяйте журнал: если сеанс завершился во время транзакции, в технологическом журнале появятся ошибки отката, и стоит убедиться в целостности данных до запуска пользователей.
Проверка результата и типичные ошибки
После отключения убедитесь, что база действительно свободна: в консоли кластера на вкладке «Сеансы» должны остаться только ваш сеанс и планируемые фоновые задания, а попытка входа обычного пользователя должна завершаться сообщением о блокировке.
Как проверить результат
Только сеанс администратора и нужные фоновые задания
Активные пользовательские сеансы появляются снова
Сообщение о блокировке работы
Пользователь заходит в базу без препятствий
Устанавливается без ошибок
Ошибка о занятых соединениях
Что важно запомнить
Правильная последовательность: блокировка входа с кодом разрешения, предупреждение пользователей, удаление оставшихся сеансов, проверка результата. Грубые методы — KILL в СУБД и остановка процессов — только как крайняя мера с пониманием рисков.
Частые вопросы
Что увидит пользователь при принудительном завершении сеанса?
Клиент 1С закроется с сообщением о разрыве соединения с сервером либо о завершении работы администратором — зависит от способа отключения. Если была включена блокировка с текстом сообщения, при повторной попытке входа пользователь увидит этот текст и время окончания блокировки.
Потеряются ли данные пользователей при принудительном отключении?
Незаписанные данные в открытых формах — да, они теряются. Записанные в базу объекты не пострадают, если сеанс не прерван посередине транзакции. Именно поэтому перед принудительным отключением рекомендуется предупредить пользователей и дать 10–15 минут на сохранение.
Как зайти в базу, если включена блокировка сеансов?
Используйте код разрешения, заданный при установке блокировки: добавьте в параметры запуска строку /UC КодРазрешения. В файловой базе тот же параметр работает через дополнительные параметры в списке информационных баз.
Можно ли выгнать только одного конкретного пользователя?
Да. В консоли кластера на вкладке «Сеансы» найдите нужный сеанс по имени пользователя или компьютеру и удалите только его. Блокировку входа при этом включать не нужно, если остальные должны продолжать работу.
Что делать, если сеанс не удаляется в консоли кластера?
Такое бывает при «зависших» сеансах. Подождите несколько минут — кластер завершает их по тайм-ауту. Если сеанс не исчезает, разорвите соединение на уровне СУБД (KILL по SPID в SQL Server) или перезапустите агент сервера 1С — это крайняя мера, затрагивающая все базы кластера.
Опасно ли перезапускать службу сервера 1С для отключения пользователей?
Перезапуск агента сервера 1С разрывает все соединения всех баз кластера сразу, а не только нужной базы. Данные в завершённых транзакциях не пострадают, но незавершённые операции откатятся. Используйте этот способ только при регламентном обслуживании, когда все предупреждены.