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

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

Как закрыть активный сеанс в 1С

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

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

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

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

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

Прежде чем закрывать сеанс, нужно увидеть полную картину подключений. В клиент-серверном режиме откройте консоль администрирования серверов 1С (оснастка «1С:Предприятие — Серверы»), разверните нужный кластер, выберите рабочий сервер и перейдите в ветку «Сеансы». Здесь отображаются все подключения: пользовательские, фоновые задания, сеансы веб-сервисов и COM-соединений.

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

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

Длительный простой сеансаПользователь не работает, но лицензия занята

Время простоя в консоли кластера; обычно безопасно завершить

Тип «Фоновое задание»Выполняется регламентная операция

Что именно выполняется — прерывание обмена или проведения может оставить незавершённые данные

Несколько сеансов одного пользователяПовторные входы или зависшие подключения

Компьютер и время начала каждого сеанса

Сеанс с активностью в памяти и по процессоруПользователь активно работает

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

Закрытие сеанса через консоль кластера серверов

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

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

Для массового завершения выделите несколько сеансов с зажатой клавишей Ctrl или Shift и удалите их одним действием. Это удобно при подготовке к обновлению конфигурации, когда нужно выгнать всех, кроме администратора.

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

Завершение сеансов в файловой базе и из интерфейса 1С

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

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

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

Программное завершение сеансов

Для автоматизации — например, выгнать всех перед ночным регламентным обновлением — используют встроенный язык 1С. В клиент-серверном режиме через COM-соединение с агентом сервера (V8.COMConnector и объекты администрирования) можно получить список сеансов и удалить нужные. Это стандартный подход в скриптах обслуживания.

Также существуют внешние утилиты и компоненты администрирования кластера через командную строку (rac — консольная утилита администрирования сервера 1С). С её помощью сеанс завершается командой вида rac session --cluster=<ID> terminate --session=<ID_сеанса>. Утилита удобна для скриптов, запускаемых по расписанию.

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

bash
rac session --cluster=<ид_кластера> terminate --cluster-user=Администратор --cluster-pwd=*** --session=<ид_сеанса>

Блокировка сеансов перед регламентными работами

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

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

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

Маршрут решения

Как выбрать действие

Клиент-серверная база, нужно закрыть один сеансКонсоль кластера → Сеансы → Удалить
Нужно выгнать всех перед обновлениемУстановите блокировку сеансов с предупреждением, затем завершите оставшиеся
Файловая база, пользователь зависПопросите выйти; в крайнем случае завершите процесс 1cv8.exe на его ПК
Завершение нужно по расписаниюСкрипт с утилитой rac или обработка через COM-администрирование

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

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

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

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

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

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

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

Завершённый сеанс отсутствует после обновления списка

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

Сеанс появился снова — пользователь переподключился, нужна блокировка

Вход другого пользователя
Норма

Лицензия освободилась, вход выполняется

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

Ошибка нехватки лицензий сохраняется — проверьте соединения и спящие сеансы

Состояние базы после работ
Норма

Блокировка снята, пользователи работают

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

Блокировка активна — снимите её в свойствах ИБ или в интерфейсе

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

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

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

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

Проверьте раздел «Соединения» в консоли кластера — зависшее соединение может продолжать удерживать лицензию. Удалите и его. Также убедитесь, что у пользователя не осталось второго сеанса с того же компьютера.

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

Да, если вы работаете в типовой конфигурации с правами администратора: используйте «Блокировку работы пользователей» в разделе «Администрирование». Она завершит сеансы по таймеру без доступа к консоли кластера.

Как закрыть все сеансы, кроме своего?

В консоли кластера выделите все сеансы через Ctrl+A, затем снимите выделение со своего сеанса с зажатым Ctrl и удалите остальные. В скриптах фильтруйте сеансы по имени пользователя администратора, исключая его из завершения.

Чем сеанс отличается от соединения?

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

Безопасно ли завершать сеанс через диспетчер задач Windows?

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

Итог

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

Основной инструмент завершения сеансов — консоль кластера серверов 1С (раздел «Сеансы» → «Удалить»). Перед массовым завершением устанавливайте блокировку с предупреждением пользователей, а после работ — снимайте её. Не прерывайте фоновые обмены и проверяйте освобождение лицензий по списку сеансов и соединений.