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

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

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

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

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

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

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

Когда нужно завершать сеансы и что проверить заранее

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

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

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

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

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

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

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

Блокировка базы для регламентных работ

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

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

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

Завершение сеансов в файловом режиме

В файловой базе нет централизованного списка сеансов для администратора, поэтому варианты ограничены. Основной сценарий: установите блокировку соединений, отправьте пользователям сообщение (через мессенджер, почту или механизм оповещений типовой конфигурации) и дождитесь выхода.

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

Проверить, остались ли активные подключения к файловой базе, можно по наличию файла блокировок 1Cv8.1CL в каталоге базы и по списку открытых файлов на сервере (оснастка «Общие папки» → «Открытые файлы» в Windows).

Программные способы и автоматизация

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

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

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

Для MS SQL Server как крайнюю меру используют завершение процессов на стороне СУБД (KILL по spid), но это разрывает соединения грубо и может оставить незавершённые транзакции. Предпочтительнее всегда завершать сеансы на уровне кластера 1С — тогда платформа корректно освобождает ресурсы.

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

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

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

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

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

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

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

Сеансов целевой базы нет или остался только сеанс администратора

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

Сеансы появляются снова — ищите авто-подключение или интеграцию

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

Нет выполняющихся заданий по базе

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

Задание выполняется — оно удерживает сеанс и блокирует обновление

Доступность монопольного режима
Норма

Обновление конфигурации запускается без ошибок занятости

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

Ошибка «информационная база занята» — сеансы ещё активны

FAQ

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

Да. В консоли кластера в разделе «Сеансы» найдите сеанс нужного пользователя по имени и завершите только его через Delete. Остальные сеансы продолжат работу без прерываний.

Пользователь завершён, но лицензия не освободилась. Что делать?

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

Как завершить все сеансы перед обновлением ночью, когда никого нет?

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

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

Всё, что не было записано в базу (незаписанные документы, открытые формы с изменениями), будет потеряно. Уже записанные и проведённые данные не пострадают — транзакционная модель 1С гарантирует целостность записанного.

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

Используйте код разрешения, заданный при установке блокировки. В тонком клиенте его передают параметром запуска /UC<код>, в конфигураторе код запрашивается при входе, если он настроен. Если код утерян, блокировку можно снять через консоль кластера в свойствах информационной базы.

Итог

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

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