Администрирование · 7 мин
Что такое сессия 1С и как ей управлять
Сессия 1С — что это такое, как создается и завершается, где посмотреть активные сеансы и сессии, каковы лимиты лицензий и как решать типовые проблемы администратора.
Сессия в 1С — это базовое понятие, с которым сталкивается каждый администратор и разработчик, но путаница между «сеансом» и «сессией» встречается постоянно. От понимания этого механизма зависят лицензионные ограничения, стабильность сервера и поведение фоновых заданий.
Когда пользователь запускает «1С:Предприятие», платформа создаёт два связанных объекта: сеанс — подключение клиента к информационной базе, и сессию — контекст взаимодействия сеанса с кластером серверов. В файловом варианте работы сессия как отдельная сущность практически не выделяется, а в клиент-серверном режиме она становится ключевым объектом лицензирования.
Именно сессии расходуют клиентские лицензии на сервере 1С. Поэтому ситуация «пользователь давно закрыл программу, а лицензия занята» почти всегда объясняется «зависшей» сессией, которую кластер ещё не удалил по таймауту.
Чем сессия отличается от сеанса
Эти два термина часто используют как синонимы, но в архитектуре платформы они обозначают разные вещи. Сеанс — это подключение к информационной базе: его создаёт толстый или тонкий клиент, веб-клиент, фоновое задание, COM-соединение или веб-сервис. Сессия — объект кластера серверов, который обслуживает вызовы этого сеанса.
Один сеанс в течение жизни может использовать несколько сессий: например, при обрыве связи и переподключении клиент получит новую сессию, а старая будет удалена по таймауту. Обратная ситуация тоже возможна — «спящий» сеанс удерживает сессию и лицензию, хотя пользователь фактически не работает.
Практический вывод прост: когда вы анализируете загрузку сервера и расход лицензий, смотреть нужно на список сессий, а когда разбираетесь, кто и что делает в базе — на список сеансов.
Как создаётся и завершается сессия
Сессия создаётся при первом обращении сеанса к кластеру: клиент проходит аутентификацию, кластер назначает рабочий процесс и выделяет лицензию. Далее все серверные вызовы этого сеанса идут через назначенную сессию, а кластер может переназначать её между рабочими процессами для балансировки нагрузки.
Завершение происходит тремя путями. Первый — штатное закрытие клиентского приложения: сеанс завершается, сессия удаляется, лицензия освобождается сразу. Второй — принудительное удаление администратором в консоли кластера. Третий — автоматическое удаление по таймауту, если клиент пропал без корректного отключения: оборвался интернет, завис компьютер, пользователь просто выдернул кабель.
Именно третий сценарий объясняет «призрачные» лицензии. Пока таймаут не истёк, кластер считает сессию живой и лицензию занятой. По умолчанию таймауты достаточно велики, поэтому в организациях с нестабильной сетью их часто уменьшают в свойствах кластера.
Где посмотреть активные сессии
Основной инструмент — консоль администрирования кластера серверов 1С. Откройте нужный кластер, разверните информационную базу и выберите ветку «Сессии»: вы увидите список с указанием пользователя, приложения, времени начала, последней активности и занятой лицензии.
В той же консоли ветка «Сеансы» показывает список подключений к базе. Сопоставляя оба списка, легко найти расхождения: например, сеанс завершён, а сессия ещё висит и держит лицензию.
Программно список сеансов доступен через метод ПолучитьСеансыИнформационнойБазы(). Для работы с сессиями кластера из скриптов используется COM-объект V83.COMConnector с интерфейсом администрирования или утилита RAC из состава сервера.
- 1Откройте консоль администрирования серверов 1С и перейдите к нужной информационной базе
- 2Откройте ветку «Сессии» и отсортируйте по времени последней активности
- 3Найдите сессии без активности длительное время — сверьте пользователя со списком реально работающих
- 4Выделите зависшую сессию и выполните команду «Удалить» из контекстного меню
- 5Проверьте, что количество занятых лицензий уменьшилось, а у реальных пользователей работа не прервалась
Сессии и лицензии: как считается расход
Каждая активная сессия, созданная клиентским приложением, занимает одну клиентскую лицензию. Фоновые задания и регламентные операции клиентских лицензий не расходуют. Если лицензий не хватает, новый пользователь получает сообщение о невозможности получения лицензии.
Типичная проблема: сотрудник запускает два-три экземпляра 1С под одной учётной записью — каждый экземпляр создаёт отдельную сессию и съедает отдельную лицензию. В консоли это видно как несколько сессий одного пользователя с разными приложениями или компьютерами.
Типовые проблемы и их решение
Самая частая жалоба — «закончились лицензии, хотя работает мало людей». Начните с консоли кластера: посчитайте реальные сессии и найдите зависшие. Если проблема повторяется регулярно, уменьшите параметры «Интервал перезапуска» не нужно — нужны таймауты завершения неактивных сеансов и сессий в свойствах кластера и информационной базы.
Вторая проблема — сообщение «Соединение с сервером разорвано администратором» у пользователя. Это значит, что его сессию удалили принудительно. Несохранённые данные при этом теряются, поэтому перед массовым завершением сессий предупреждайте пользователей.
Третья ситуация — сессии не удаляются даже по таймауту. Проверьте, не удерживает ли их открытое управляемое соединение, длительная транзакция или фоновый процесс. В таких случаях помогает анализ списка сеансов и журнала регистрации.
Настройка таймаутов и профилактика
В свойствах информационной базы в консоли кластера задаются параметры «Завершать спящие сеансы» и «Время засыпания пассивного сеанса». Разумная настройка этих значений позволяет автоматически освобождать лицензии от забытых запущенных клиентов — например, оставленных на ночь.
Для профилактики полезно периодически просматривать статистику сессий: среднее число активных сессий в пике показывает, сколько лицензий реально нужно организации. Если пиковое потребление стабильно ниже купленного количества — лицензий достаточно; если вплотную к лимиту — пора либо докупать, либо наводить порядок с зависшими подключениями.
Частые вопросы
Чем сессия отличается от соединения в 1С?
Соединение — это физический канал между клиентом и рабочим процессом кластера, сессия — логический контекст обслуживания сеанса. Одно соединение может обслуживать вызовы, а сессия хранит состояние и лицензию.
Почему лицензия не освобождается после закрытия программы?
Если клиент завершился аварийно или связь оборвалась, кластер ждёт истечения таймаута, прежде чем удалить сессию. До этого момента лицензия считается занятой. Решение — уменьшить таймауты или удалить сессию вручную в консоли.
Расходуют ли лицензии фоновые задания?
Нет, фоновые и регламентные задания создают сеансы, но клиентских лицензий не занимают. Лицензии расходуют только интерактивные клиентские приложения и некоторые типы внешних подключений.
Как посмотреть сессии без консоли кластера?
Из встроенного языка доступен список сеансов через ПолучитьСеансыИнформационнойБазы(). Для работы именно с сессиями используют утилиту RAC командной строки или COM-интерфейс администрирования кластера.
Что делает команда «Удалить» для сессии в консоли?
Она принудительно завершает сессию: пользователь получает сообщение о разрыве соединения, лицензия освобождается немедленно. Несохранённые данные на клиенте теряются.
Можно ли ограничить число сессий одного пользователя?
Штатной настройки «одна сессия на пользователя» в платформе нет. Ограничение реализуется административными мерами или прикладными доработками, проверяющими активные сеансы при входе.