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

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

Что такое сессия 1С и как ей управлять

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

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

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

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

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

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

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

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

Как создаётся и завершается сессия

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

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

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

Где посмотреть активные сессии

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

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

Программно список сеансов доступен через метод ПолучитьСеансыИнформационнойБазы(). Для работы с сессиями кластера из скриптов используется COM-объект V83.COMConnector с интерфейсом администрирования или утилита RAC из состава сервера.

Как найти и завершить зависшую сессию
  1. 1
    Откройте консоль администрирования серверов 1С и перейдите к нужной информационной базе
  2. 2
    Откройте ветку «Сессии» и отсортируйте по времени последней активности
  3. 3
    Найдите сессии без активности длительное время — сверьте пользователя со списком реально работающих
  4. 4
    Выделите зависшую сессию и выполните команду «Удалить» из контекстного меню
  5. 5
    Проверьте, что количество занятых лицензий уменьшилось, а у реальных пользователей работа не прервалась

Сессии и лицензии: как считается расход

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

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

Типовые проблемы и их решение

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

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

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

Настройка таймаутов и профилактика

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

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

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

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

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

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

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

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

Расходуют ли лицензии фоновые задания?

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

Как посмотреть сессии без консоли кластера?

Из встроенного языка доступен список сеансов через ПолучитьСеансыИнформационнойБазы(). Для работы именно с сессиями используют утилиту RAC командной строки или COM-интерфейс администрирования кластера.

Что делает команда «Удалить» для сессии в консоли?

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

Можно ли ограничить число сессий одного пользователя?

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