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

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

Как закрыть сеанс веб-клиента 1С

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

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

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

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

Как устроен сеанс веб-клиента и почему он не закрывается мгновенно

При подключении через браузер сервер 1С создаёт сеанс и назначает ему соединение с рабочим процессом. Браузер обменивается данными с сервером по HTTP/HTTPS, периодически отправляя служебные запросы. Пока вкладка открыта, сервер считает сеанс активным.

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

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

Штатное завершение сеанса самим пользователем

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

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

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

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

Как администратору закрыть сеанс через консоль кластера

Консоль кластера серверов 1С — основной инструмент принудительного завершения сеансов. Откройте оснастку «Администрирование серверов 1С Предприятия», разверните нужный кластер, затем ветку «Информационные базы» → ваша база → «Сеансы». В списке видны все активные и спящие сеансы с указанием пользователя, приложения (веб-клиент отображается как WebClient), времени начала и занятой лицензии.

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

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

Завершение сеанса из конфигуратора и программными средствами

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

Для автоматизации применяется сервер администрирования (RAS) в связке с утилитой RAC. Команда завершения сеанса выглядит так: сначала получают список сеансов кластера, затем удаляют нужный по его идентификатору. Это удобно для скриптов, которые перед регламентным обновлением завершают все сеансы веб-клиентов.

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

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

Что делать, если сеанс завис или не завершается

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

Порядок действий: сначала проверьте в консоли кластера колонку «Время последней активности» и наличие СУБД-блокировок. Если активности нет давно и блокировок нет — просто удалите сеанс. Если сеанс держит блокировку на СУБД, после удаления сеанса дождитесь отката транзакции на стороне СУБД; в тяжёлых случаях может потребоваться снятие процесса на стороне сервера СУБД.

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

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

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

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

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

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

Сеанс остаётся в списке со статусом «спящий»

Занятые лицензии
Норма

Счётчик лицензий уменьшился после завершения

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

Лицензия остаётся занятой более нескольких минут

Сообщение у пользователя
Норма

При повторном входе пользователь входит без ошибок

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

Ошибка «сеанс завершён администратором» повторяется при новом входе

Настройка тайм-аутов, чтобы сеансы закрывались сами

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

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

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

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

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

Почему после закрытия браузера лицензия остаётся занятой?

Сервер не получает сигнала о закрытии вкладки и держит сеанс до истечения тайм-аута спящего сеанса. Лицензия освободится автоматически, либо администратор может удалить сеанс вручную в консоли кластера.

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

Сам пользователь — через команду «Завершить работу» в интерфейсе. Администратор без консоли может использовать утилиту RAC совместно с сервером администрирования (RAS) или механизм блокировки сеансов в типовых конфигурациях на базе БСП.

Что увидит пользователь при принудительном удалении его сеанса?

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

Как завершить все сеансы веб-клиентов перед обновлением конфигурации?

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

Сеанс не удаляется из консоли кластера — что делать?

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

Отличается ли завершение сеанса в файловой базе, опубликованной на веб-сервере?

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

Итог

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

Штатный выход — через «Файл → Завершить работу» в веб-клиенте; закрытие вкладки завершает сеанс только по тайм-ауту. Принудительное завершение выполняется в консоли кластера (Сеансы → Удалить) или скриптом RAC, но обрывает несохранённую работу пользователя. Настройка тайм-аутов спящих сеансов избавляет от зависших лицензий без ручного вмешательства.