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

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

Как принудительно выгнать пользователей из базы 1С

Как принудительно выгнать пользователей из 1С: консоль кластера, консольные команды, параметр запуска, блокировка сеансов. Пошаговые инструкции и риски.

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

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

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

Когда требуется принудительное завершение сеансов

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

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

Сеанс активен, давно нет обращенийВероятный зависший сеанс

Время последнего обращения в консоли кластера старше нескольких часов

Пользователь проводит документыАктивная работа

Предупредить и дождаться завершения, не удалять принудительно

Нужно монопольное обновлениеТребуется пустая база

Сначала блокировка соединений, затем завершение оставшихся сеансов

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

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

Чтобы завершить конкретный сеанс, выделите его и нажмите «Удалить» (или пункт контекстного меню «Удалить»). Для массового отключения выделите все сеансы сочетанием Ctrl+A и удалите их разом. Платформа закроет соединения в течение нескольких секунд; у пользователей клиентское приложение завершится с сообщением о разрыве соединения с сервером.

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

Если оснастка не открывается или кластер не виден, проверьте, что служба агента сервера 1С запущена, а версия оснастки совпадает с версией агента сервера. Несовпадение версий — частая причина пустого списка кластеров.

Блокировка соединений, чтобы пользователи не заходили снова

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

Вход с кодом разрешения выполняется через параметр запуска /UCкод в строке запуска клиента или через дополнительный параметр в списке баз. После завершения работ не забудьте снять блокировку, иначе пользователи не смогут войти.

Завершение сеансов из командной строки

Для автоматизации и работы без графической консоли используется утилита администрирования кластера rac (входит в состав сервера 1С). Типовая последовательность: получить список сеансов базы и завершить каждый по идентификатору.

bash
rac session list --cluster=<ID_кластера> --infobase=<ID_базы>
rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>

Идентификаторы кластера и базы получают командами rac cluster list и rac infobase summary list. Блокировку соединений из командной строки устанавливают через rac infobase update с параметрами --sessions-deny=on, --denied-message и --permission-code. Этот способ удобен для скриптов регламентного обслуживания: сначала блокировка, пауза, завершение сеансов, обновление, снятие блокировки.

В Linux утилита называется так же и лежит в каталоге установки сервера 1С. Учтите, что для обращения к rac могут потребоваться права администратора кластера, если они настроены.

Отключение пользователей в файловом режиме

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

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

Программное завершение сеансов и типовые механизмы

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

Для собственных решений существуют методы встроенного языка: ПолучитьСеансыИнформационнойБазы() и у объекта сеанса метод ЗавершитьСеанс(), а также УстановитьБлокировкуСеансов(). Такой код выполняется на сервере и требует административных прав. Программный способ удобен для регламентных заданий обслуживания, но требует аккуратности: ошибка в логике может завершить сеанс самого обработчика.

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

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

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

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

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

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

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

Пуст или только сеанс администратора с кодом разрешения

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

Остались пользовательские сеансы — удаление не сработало или кто-то вошёл заново

Вход в конфигуратор
Норма

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

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

Сообщение о невозможности монопольного доступа — есть скрытые соединения или фоновые задания

Вход пользователя после снятия блокировки
Норма

Клиент запускается штатно

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

Выводится сообщение о блокировке — блокировка не снята или задано время окончания в будущем

Итог

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

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

Частые вопросы

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

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

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

Да. В консоли кластера на вкладке «Сеансы» выделите только нужный сеанс и удалите его. Так же работает команда rac session terminate с идентификатором конкретного сеанса. Это основной способ убрать зависший сеанс без остановки работы всей базы.

Как войти в базу, пока действует блокировка соединений?

Запустите клиент с параметром /UC и кодом разрешения, заданным при установке блокировки, например добавьте параметр в свойствах базы в списке информационных баз. Без кода разрешения войти сможет только тот, кто снимет блокировку через консоль кластера.

Зависший сеанс не удаляется из консоли кластера — что делать?

Повторите удаление через несколько минут: платформе нужно время на закрытие соединения. Если сеанс остаётся, завершите его через rac session terminate. В крайнем случае помогает перезапуск службы агента сервера 1С, но он разорвёт все соединения кластера, поэтому применяйте его в нерабочее время.

Опасно ли принудительное завершение для целостности базы?

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

Как автоматизировать отключение пользователей для ночного обновления?

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