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

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

Как завершить сеанс пользователя в 1С

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

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

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

Как понять, какой сеанс нужно завершить

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

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

Сеанс давно неактивенВероятно «зависший» сеанс

Сравните время последнего вызова с текущим временем

Монопольный режим не включаетсяКто-то удерживает соединение с базой

Проверьте список активных пользователей и фоновые задания

Не хватает лицензийОсиротевшие сеансы занимают лицензии

Посчитайте реальное число работающих пользователей и число сеансов

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

Основной способ для клиент-серверного режима. Консоль кластера устанавливается вместе с сервером 1С:Предприятия и доступна по пути «Пуск → 1С:Предприятие → Администрирование серверов 1С Предприятия». Для управления потребуются права администратора кластера или администратора информационной базы.

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

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

Если пользователь находится в сети и работает, заранее предупредите его о завершении — иначе несохранённые данные в открытых формах будут потеряны. Через ветку «Соединения» можно разорвать конкретное соединение, но обычно удобнее работать именно с сеансами.

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

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

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

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

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

На уровне кода для клиент-серверного режима применяется COM-объект V83.COMConnector в связке с агентом сервера: через него получают список сеансов информационной базы и вызывают метод завершения. Также существует административный интерфейс RAS (сервер администрирования кластера), который позволяет управлять сеансами из скриптов и внешних систем.

bsl
// Пример логики: получить сеансы через COM и завершить выбранные
Коннектор = Новый COMОбъект("V83.COMConnector");
Агент = Коннектор.ConnectAgent("ИмяСервера");
Кластеры = Агент.GetClusters();
Для Каждого Кластер Из Кластеры Цикл
    Агент.Authenticate(Кластер, "", "");
    Базы = Агент.GetInfoBases(Кластер);
    // далее получить сеансы базы и вызвать TerminateSession
КонецЦикла;

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

Как завершить зависшие сеансы и освободить лицензии

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

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

Типичные ошибки и ограничения

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

Ограничения: без прав администратора кластера консоль не покажет сеансы и не даст их удалить; в файловом режиме штатного «удаления чужого сеанса» из списка активных пользователей нет; при работе через веб-сервер разрыв соединения на уровне IIS или Apache может не завершить сеанс на стороне кластера — проверяйте результат в консоли.

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

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

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

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

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

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

Удалённый сеанс отсутствует

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

Сеанс появился снова без действий пользователя

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

Пользователь входит без ошибок лицензий

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

Ошибка «не хватает лицензий» сохраняется

Монопольный режим
Норма

Режим включается без сообщений о соединениях

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

Сообщение об активных соединениях осталось

Итог

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

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

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

Пользователь вышел, но сеанс остался в списке. Что делать?

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

Можно ли завершить сеанс без прав администратора?

Нет. Удаление сеансов в консоли кластера требует прав администратора кластера или информационной базы. Рядовой пользователь может завершить только свой собственный сеанс, корректно выйдя из программы.

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

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

Как автоматически завершать неактивные сеансы?

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

Опасно ли принудительное завершение сеанса для базы?

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

Не хватает лицензий, хотя пользователей мало. Где искать проблему?

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