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

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

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

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

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

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

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

Подготовка: что проверить перед отключением пользователей

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

Полезно заранее определить, какие сеансы критичны. Фоновые задания, сеансы обмена данными и подключения внешних систем (например, сайта или CRM) могут выполнять важные операции. Их принудительное прерывание способно оставить данные в несогласованном состоянии — например, половина документов обмена выгружена, а вторая половина нет.

Активных сеансовКоличество и типы подключений

Откройте ветку «Сеансы» в консоли кластера и посмотрите, кто подключён: пользователи, фоновые задания, внешние системы

Длительные транзакцииВозможны блокировки и потери данных

Проверьте активность на стороне СУБД — обрыв длинной транзакции вызовет откат и может надолго заблокировать базу

Регламентные заданияМогут перезапуститься автоматически

В свойствах базы проверьте, не включена ли блокировка регламентных заданий — иначе они стартуют снова

Способ 1. Блокировка сеансов через консоль кластера

Это самый корректный способ для плановых работ. Блокировка не даёт пользователям создавать новые подключения, а уже работающие получают сообщение с просьбой завершить сеанс. Через заданное время администратор принудительно удаляет оставшиеся сеансы.

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

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

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

Способ 2. Принудительное удаление сеансов в консоли кластера

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

Выделите один сеанс или несколько (с зажатой клавишей Ctrl или Shift) и нажмите «Удалить» в контекстном меню. Кластер немедленно разорвёт соединение. Пользователь увидит сообщение о разрыве соединения с сервером, а его незаписанные данные будут потеряны.

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

Способ 3. Отключение через утилиту rac и командную строку

Для автоматизации и работы без графической консоли используется консольная утилита администрирования rac, входящая в состав сервера 1С. Она позволяет управлять кластером из скриптов — например, отключать пользователей по расписанию перед ночным обновлением.

Типовая последовательность: получить список сеансов информационной базы, затем завершить каждый сеанс командой rac session terminate с указанием кластера и идентификатора сеанса. Чтобы пользователи не подключались заново, предварительно устанавливают блокировку через rac infobase update с параметрами блокировки сеансов.

bash
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 с именем службы агента.

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

Сравнение способов отключения

Блокировка сеансов + ожидание

Самый безопасный для плановых работ; требует времени и не действует на уже вошедших без принудительного удаления

Удаление сеансов в консоли

Быстро и точечно; пользователи теряют несохранённые данные и могут переподключиться, если нет блокировки

Утилита rac

Подходит для автоматизации и скриптов; требует точных идентификаторов и аккуратности

Остановка службы агента

Аварийный вариант при зависшем кластере; отключает все базы сразу, риск потери данных максимален

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

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

Для надёжности проверьте активность и на стороне СУБД: в MS SQL Server это список подключений к базе через Activity Monitor или запрос к sys.dm_exec_sessions, в PostgreSQL — представление pg_stat_activity. Иногда подключение на уровне СУБД остаётся после удаления сеанса в кластере и удерживает блокировки.

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

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

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

Остался только сеанс администратора и служебные подключения

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

Появляются новые пользовательские сеансы

Подключения на стороне СУБД
Норма

К базе нет активных пользовательских подключений

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

Есть подвисшие соединения, удерживающие блокировки

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

Блокировка снята, пользователи входят штатно

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

Блокировка осталась включённой, вход невозможен

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

Пользователь удалён из сеансов, но сразу подключается обратно. Что делать?

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

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

В консоли кластера откройте ветку «Сеансы» нужной базы, найдите сеанс по имени пользователя или компьютеру, выделите его и выберите «Удалить». Остальные сеансы при этом не пострадают.

Потеряются ли данные при принудительном завершении сеанса?

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

Чем отличается блокировка сеансов от блокировки регламентных заданий?

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

Можно ли выгнать пользователей из файловой базы теми же способами?

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

Консоль кластера не показывает сеансы и требует пароль. В чём причина?

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

Итог

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

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