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

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

Как отключить пользователей 1С на сервере

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

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

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

Что происходит при отключении сеанса и какие есть способы

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

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

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

Консоль кластера (сеансы)

Подходит для точечного и массового отключения; требует прав администратора кластера; действует немедленно

Блокировка сеансов

Предотвращает новые подключения и даёт время пользователям выйти; сама по себе активные сеансы не разрывает

Утилита rac

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

Завершение на стороне СУБД

Крайняя мера при зависшем кластере; риск рассинхронизации и аварийного отката транзакций

Как отключить сеансы через консоль администрирования серверов 1С

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

Откройте консоль, разверните нужный сервер, затем ветку «Кластеры» — «Локальный кластер» — «Сеансы». В правой части появится список всех активных сеансов с указанием информационной базы, пользователя, приложения (толстый клиент, тонкий клиент, веб-клиент, фоновое задание), времени начала и активности. Выделите один или несколько сеансов через Ctrl или Shift, нажмите правую кнопку и выберите «Удалить» — сеансы будут разорваны немедленно.

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

Отключение сеанса через консоль
  1. 1
    Откройте консоль «Администрирование серверов 1С:Предприятия»
  2. 2
    Разверните: Сервер → Кластеры → Локальный кластер → Сеансы
  3. 3
    Найдите нужные сеансы по базе и имени пользователя
  4. 4
    Выделите сеансы и выберите «Удалить» в контекстном меню
  5. 5
    Убедитесь, что сеансы исчезли из списка, а пользователи получили сообщение о разрыве

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

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

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

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

Как отключить пользователей через утилиту rac

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

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

Для массового отключения список сеансов фильтруют по информационной базе и в цикле вызывают session terminate для каждого идентификатора. Если на кластере настроена аутентификация администраторов, в каждую команду добавляют параметры --cluster-user и --cluster-pwd. Утилита работает и с удалённым сервером: адрес агента указывают первым параметром, например rac server1c:1545 session list.

Скриптовый подход хорошо сочетается с блокировкой сеансов: сначала скрипт устанавливает блокировку через rac infobase update, ждёт заданное время, затем завершает оставшиеся сеансы и запускает обновление конфигурации или выгрузку.

Что делать с зависшими сеансами и фоновыми заданиями

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

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

Отключение на стороне СУБД: когда это оправдано

Иногда администраторы завершают подключения непосредственно в MS SQL Server, PostgreSQL или Oracle — например, через Activity Monitor или команду KILL в SQL Server. Такой способ разрывает соединение между кластером 1С и СУБД, но сам сеанс в кластере может остаться в списке до тайм-аута, а пользователь получит критическую ошибку. Это допустимо как аварийная мера, когда консоль кластера недоступна, но штатным способом не является.

Для регламентных работ в MS SQL часто используют перевод базы в однопользовательский режим (ALTER DATABASE ... SET SINGLE_USER WITH ROLLBACK IMMEDIATE), но это действие выполняется уже на уровне СУБД и требует понимания последствий: все активные транзакции будут откачены, а кластер 1С начнёт фиксировать ошибки соединения до восстановления многопользовательского режима.

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

Как проверить, что все пользователи отключены

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

Косвенный признак успеха — журнал регистрации: в нём фиксируются события завершения сеансов. Если сеанс пользователя появляется снова спустя секунды после удаления, проверьте, не запущено ли у него клиентское приложение с автоматическим восстановлением соединения, и не создаёт ли сеанс внешняя интеграция (веб-сервис, план обмена, COM-соединение) — такие подключения нужно отключать на стороне источника.

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

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

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

Сеансов нет или остался только сеанс администратора

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

Удалённые сеансы появляются снова

Блокировка сеансов в свойствах базы
Норма

Блокировка включена, задан код доступа

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

Блокировка не установлена — возможны новые входы

Журнал регистрации
Норма

Есть события завершения сеансов

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

Сеансы завершаются с ошибками соединения к СУБД

Регламентные и фоновые задания
Норма

Задания завершены или заблокированы

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

Фоновое задание продолжает выполняться и держит блокировки

FAQ: частые вопросы об отключении пользователей 1С

Можно ли отключить пользователя, не имея доступа к консоли сервера?

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

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

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

Как отключить пользователей файловой базы, если сервера 1С нет?

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

Почему после удаления сеанс появляется снова?

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

Нужно ли отключать фоновые и регламентные задания перед обновлением?

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

Итог

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

Штатный порядок: сначала установите блокировку сеансов с кодом доступа, предупредите пользователей, затем удалите оставшиеся сеансы в консоли кластера или через rac. Завершение процессов rphost и разрыв соединений на стороне СУБД — только аварийные меры. После работ проверьте список сеансов, соединений и блокировок, а затем снимите блокировку.