Администрирование · 11 мин
Как выгнать пользователей из серверной базы 1С
Как отключить пользователей от серверной базы 1С: консоль кластера, блокировка сеансов, команды rac, остановка службы. Пошаговые инструкции и меры безопасности.
Отключение пользователей от серверной базы 1С — типовая операция при обновлении конфигурации, регламентном обслуживании СУБД, восстановлении из резервной копии или устранении зависших сеансов. В клиент-серверном варианте работы все подключения проходят через кластер серверов 1С, поэтому управлять сеансами можно централизованно, не обходя рабочие места сотрудников.
Существует несколько способов «выгнать» пользователей: мягкий — через установку блокировки сеансов с сообщением, жёсткий — через принудительное удаление сеансов в консоли кластера, и аварийный — через остановку службы агента сервера. Выбор зависит от того, сколько времени есть на операцию и насколько критична целостность незавершённых транзакций.
Принудительное разрыв сеанса прерывает работу пользователя без сохранения введённых, но не записанных данных. Если сотрудник в этот момент заполнял документ и не нажал «Записать», введённые данные будут потеряны. Поэтому даже при срочном отключении рекомендуется сначала разослать предупреждение и дать несколько минут на завершение работы.
Подготовка: что проверить перед отключением пользователей
Перед массовым отключением убедитесь, что у вас есть права администратора кластера серверов 1С или администратора информационной базы. Без этих полномочий консоль кластера не покажет список сеансов или не даст их удалить. Также проверьте, что у вас есть актуальная резервная копия базы, если отключение делается перед обновлением конфигурации или регламентными операциями.
Полезно заранее определить, какие сеансы критичны. Фоновые задания, сеансы обмена данными и подключения внешних систем (например, сайта или CRM) могут выполнять важные операции. Их принудительное прерывание способно оставить данные в несогласованном состоянии — например, половина документов обмена выгружена, а вторая половина нет.
Откройте ветку «Сеансы» в консоли кластера и посмотрите, кто подключён: пользователи, фоновые задания, внешние системы
Проверьте активность на стороне СУБД — обрыв длинной транзакции вызовет откат и может надолго заблокировать базу
В свойствах базы проверьте, не включена ли блокировка регламентных заданий — иначе они стартуют снова
Способ 1. Блокировка сеансов через консоль кластера
Это самый корректный способ для плановых работ. Блокировка не даёт пользователям создавать новые подключения, а уже работающие получают сообщение с просьбой завершить сеанс. Через заданное время администратор принудительно удаляет оставшиеся сеансы.
Откройте консоль управления серверами 1С (она входит в состав установленного сервера 1С:Предприятия), раскройте нужный кластер, найдите информационную базу и откройте её свойства. Перейдите на закладку, отвечающую за блокировку сеансов, установите флаг «Блокировка начала сеансов включена», укажите время начала и окончания блокировки, текст сообщения для пользователей и код разрешения для тех, кому вход нужен в исключительном порядке.
Код разрешения — это условный пароль, который пользователь добавляет к строке подключения через параметр /UC код в командной строке запуска или в дополнительных параметрах информационной базы. Так можно пустить в базу, например, бухгалтера, который должен срочно провести документы, пока остальные отключены.
- 1Откройте консоль кластера серверов 1С и найдите нужную информационную базу
- 2Откройте свойства базы и перейдите к параметрам блокировки сеансов
- 3Включите блокировку, укажите период действия и текст сообщения для пользователей
- 4Задайте код разрешения для исключений и сохраните настройки
- 5Дождитесь выхода пользователей, затем удалите оставшиеся сеансы в ветке «Сеансы»
- 6После завершения работ снимите блокировку, сбросив флаг
Способ 2. Принудительное удаление сеансов в консоли кластера
Когда времени на ожидание нет или отдельные сеансы зависли, их удаляют вручную. В консоли кластера раскройте ветку «Сеансы» внутри нужной информационной базы — отобразится список всех подключений с указанием пользователя, компьютера, времени начала и активности.
Выделите один сеанс или несколько (с зажатой клавишей Ctrl или Shift) и нажмите «Удалить» в контекстном меню. Кластер немедленно разорвёт соединение. Пользователь увидит сообщение о разрыве соединения с сервером, а его незаписанные данные будут потеряны.
Обратите внимание: удаление сеанса в консоли не мешает пользователю тут же подключиться заново. Если нужно, чтобы люди не возвращались в базу, сначала включите блокировку сеансов, описанную выше, и только потом удаляйте активные подключения.
Способ 3. Отключение через утилиту rac и командную строку
Для автоматизации и работы без графической консоли используется консольная утилита администрирования rac, входящая в состав сервера 1С. Она позволяет управлять кластером из скриптов — например, отключать пользователей по расписанию перед ночным обновлением.
Типовая последовательность: получить список сеансов информационной базы, затем завершить каждый сеанс командой rac session terminate с указанием кластера и идентификатора сеанса. Чтобы пользователи не подключались заново, предварительно устанавливают блокировку через rac infobase update с параметрами блокировки сеансов.
rac session list --cluster=<ID_кластера> --infobase=<ID_базы>
rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>
rac infobase update --cluster=<ID_кластера> --infobase=<ID_базы> --sessions-deny=on --denied-message="Идут регламентные работы"Работа через rac требует аккуратности с идентификаторами: ошибка в UUID кластера или базы приведёт к отказу команды, а в худшем случае — к воздействию не на ту базу. Перед массовым отключением всегда выводите список сеансов и проверяйте, что это именно целевая база.
Способ 4. Блокировка и завершение сеансов из встроенного языка 1С
Если у вас есть доступ к базе в режиме конфигуратора или через внешнюю обработку с правами администратора, управлять сеансами можно программно. В типовых конфигурациях на базе БСП есть штатный механизм «Блокировка работы пользователей» (в интерфейсе администрирования), который устанавливает блокировку по расписанию и рассылает пользователям предупреждения.
Программно текущие сеансы информационной базы доступны через метод ПолучитьСеансыИнформационнойБазы(). Однако важно понимать ограничение: встроенный язык позволяет получить список сеансов и разослать сообщения, но принудительно завершить чужой сеанс штатными средствами языка нельзя — для этого нужен административный интерфейс кластера (rac, консоль или COM-объект V83.ComConnector).
Способ 5. Аварийные варианты: остановка службы и перезапуск кластера
Остановка службы «Агент сервера 1С:Предприятия» на сервере мгновенно разрывает все подключения ко всем базам кластера. Это крайняя мера: она применима, когда кластер завис, консоль не отвечает или сеансы не удаляются штатными средствами. Службу останавливают через оснастку services.msc или командой net stop с именем службы агента.
Минус очевиден: отключатся все базы кластера, а не только целевая, и все незавершённые операции будут прерваны. После запуска службы пользователи смогут подключиться сразу — блокировку нужно установить заранее или сразу после старта. Аналогичного эффекта добиваются перезагрузкой сервера СУБД, но это ещё более грубое воздействие, затрагивающее все базы данных сервера.
Сравнение способов отключения
Самый безопасный для плановых работ; требует времени и не действует на уже вошедших без принудительного удаления
Быстро и точечно; пользователи теряют несохранённые данные и могут переподключиться, если нет блокировки
Подходит для автоматизации и скриптов; требует точных идентификаторов и аккуратности
Аварийный вариант при зависшем кластере; отключает все базы сразу, риск потери данных максимален
Проверка результата и типичные ошибки
После отключения обновите список сеансов в консоли кластера: в целевой базе должны остаться только ваш сеанс и, возможно, служебные подключения. Если сеансы появляются снова, значит, блокировка не включена, либо пользователи подключаются с кодом разрешения, либо внешняя система автоматически восстанавливает подключение — тогда нужно остановить соответствующий сервис обмена.
Для надёжности проверьте активность и на стороне СУБД: в MS SQL Server это список подключений к базе через Activity Monitor или запрос к sys.dm_exec_sessions, в PostgreSQL — представление pg_stat_activity. Иногда подключение на уровне СУБД остаётся после удаления сеанса в кластере и удерживает блокировки.
Как проверить результат
Остался только сеанс администратора и служебные подключения
Появляются новые пользовательские сеансы
К базе нет активных пользовательских подключений
Есть подвисшие соединения, удерживающие блокировки
Блокировка снята, пользователи входят штатно
Блокировка осталась включённой, вход невозможен
Частые вопросы
Пользователь удалён из сеансов, но сразу подключается обратно. Что делать?
Включите блокировку начала сеансов в свойствах информационной базы в консоли кластера. После этого новые подключения будут отклоняться с вашим сообщением, а удалённые пользователи не смогут вернуться до снятия блокировки.
Как отключить только одного конкретного пользователя?
В консоли кластера откройте ветку «Сеансы» нужной базы, найдите сеанс по имени пользователя или компьютеру, выделите его и выберите «Удалить». Остальные сеансы при этом не пострадают.
Потеряются ли данные при принудительном завершении сеанса?
Записанные в базу данные сохранятся — транзакционная модель это гарантирует. Потеряется только то, что пользователь ввёл в открытые формы, но не записал. Незавершённая транзакция будет откачена, что при больших объёмах может занять заметное время.
Чем отличается блокировка сеансов от блокировки регламентных заданий?
Блокировка сеансов запрещает интерактивные подключения пользователей, а блокировка регламентных заданий останавливает выполнение фоновых задач. Перед обновлением конфигурации обычно включают обе, иначе фоновое задание может помешать реструктуризации базы.
Можно ли выгнать пользователей из файловой базы теми же способами?
Нет, консоль кластера и rac работают только с клиент-серверным вариантом. В файловой базе сеансы завершают либо программно через механизм блокировки в типовых конфигурациях, либо закрывая общий доступ к файлу базы на уровне сетевой папки.
Консоль кластера не показывает сеансы и требует пароль. В чём причина?
Скорее всего, в кластере заведены администраторы, и требуется аутентификация. Введите учётные данные администратора кластера. Если для базы задан администратор информационной базы, его логин и пароль потребуются при доступе к свойствам и сеансам конкретной базы.
Что важно запомнить
Оптимальная схема отключения пользователей серверной базы 1С: сначала блокировка сеансов с предупреждением, затем принудительное удаление оставшихся сеансов в консоли кластера, после работ — контроль списка сеансов и снятие блокировки. Остановку службы агента используйте только как аварийную меру.