Администрирование · 10 мин
Как узнать номер сеанса в 1С
Как узнать номер сеанса в 1С: через консоль кластера серверов, функцию НомерСеансаИнформационнойБазы, журнал регистрации и конфигуратор. Пошаговые инструкции.
Номер сеанса в 1С — это уникальный идентификатор подключения пользователя или фонового процесса к информационной базе. Он нужен администратору, когда требуется найти «зависшего» пользователя, завершить конкретный сеанс, разобраться с блокировками или сопоставить запись в журнале регистрации с реальным подключением. Один и тот же пользователь может иметь несколько сеансов одновременно, поэтому имя учётной записи не заменяет номер сеанса.
Способ узнать номер зависит от режима работы базы. В файловом варианте доступны встроенные средства платформы и программные функции, а в клиент-серверном варианте основным инструментом становится консоль кластера серверов 1С. Ниже разобраны все рабочие методы — от простого просмотра в интерфейсе до получения номера программно во встроенном языке.
Что такое сеанс и чем он отличается от соединения
Сеанс — это логическое подключение к информационной базе, которое платформа создаёт при входе пользователя, запуске фонового задания, регламентного задания или внешнего подключения через COM и веб-сервисы. Каждому сеансу присваивается порядковый номер, уникальный в пределах текущего запуска сервера или файловой базы.
Важно не путать сеанс с соединением. В клиент-серверном варианте один сеанс обслуживается соединением с рабочим процессом кластера, но соединения могут пересоздаваться при обрывах, а сеанс при этом сохраняется. Именно номер сеанса фигурирует в журнале регистрации, в механизме управляемых блокировок и в инструментах администрирования.
Как посмотреть номер сеанса в режиме 1С:Предприятие
Самый доступный способ, не требующий прав администратора кластера, — встроенный список активных пользователей. В типовых конфигурациях откройте раздел «Администрирование» и выберите пункт «Обслуживание» → «Активные пользователи» (в некоторых конфигурациях путь: «Настройки» → «Активные пользователи»). Откроется таблица, где для каждого подключения указаны пользователь, компьютер, время начала работы и номер сеанса.
В этой таблице видны и сеансы фоновых заданий — у них в колонке «Приложение» указано «Фоновое задание» вместо «Тонкий клиент» или «Толстый клиент». Если нужно найти именно свой сеанс, ориентируйтесь на имя своего компьютера и время входа.
Учтите ограничение: в файловой базе список активных пользователей показывает только сеансы текущей базы, а в клиент-серверном варианте отображение зависит от настроек конфигурации — часть данных подгружается из кластера, и у пользователя без административных прав список может быть неполным.
- 1Откройте «Администрирование» → «Активные пользователи»
- 2Найдите строку со своим именем пользователя и компьютером
- 3Сверьте время начала сеанса с моментом вашего входа
- 4Считайте значение из колонки «Сеанс» — это и есть номер сеанса
Как узнать номер сеанса в консоли кластера серверов
В клиент-серверном варианте главный инструмент администратора — консоль управления кластером «1С:Предприятия». Откройте оснастку «Администрирование серверов 1С», разверните нужный кластер, затем узел конкретной информационной базы и выберите пункт «Сеансы». В правой части окна появится полный список сеансов с их номерами, пользователями, приложениями, временем начала и активностью.
Консоль показывает больше данных, чем клиентское приложение: здесь видны спящие сеансы, сеансы веб-сервисов, фоновые задания и объём вызовов СУБД. Сортировка по колонке «Сеанс» позволяет быстро найти нужный номер, а двойной щелчок по строке открывает карточку сеанса с детальной информацией.
Для доступа к консоли требуются права администратора кластера или администратора информационной базы. Если при открытии списка сеансов появляется запрос аутентификации, введите учётные данные администратора ИБ — они задаются в свойствах базы в консоли.
Как получить номер сеанса программно
Во встроенном языке 1С есть готовая функция НомерСеансаИнформационнойБазы(). Она не принимает параметров и возвращает число — номер текущего сеанса, в котором выполняется код. Это удобно для протоколирования, разграничения временных данных между сеансами и диагностики.
НомерТекущегоСеанса = НомерСеансаИнформационнойБазы();
Сообщить("Текущий сеанс: " + НомерТекущегоСеанса);
Если нужно получить список всех сеансов базы, используйте метод ПолучитьСеансыИнформационнойБазы(). Он возвращает массив объектов «СеансИнформационнойБазы», у каждого из которых доступны свойства: НомерСеанса, Пользователь, ИмяКомпьютера, НачалоСеанса, ИмяПриложения. Для выполнения этого метода требуются административные права.
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Сообщить(Сеанс.НомерСеанса);
КонецЦикла;
НомерСеанса = НомерСеансаИнформационнойБазы();
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Сообщить(Строка(Сеанс.НомерСеанса) + " | " + Сеанс.ИмяПриложения);
КонецЦикла;Как найти номер сеанса через журнал регистрации
Журнал регистрации фиксирует события подключения и отключения с указанием номера сеанса. Откройте конфигуратор, перейдите в меню «Администрирование» → «Журнал регистрации» и установите отбор по событию «Сеанс. Аутентификация» или «Сеанс. Начало». В колонке «Сеанс» каждой записи виден номер, а рядом — пользователь и время.
Этот способ незаменим, когда сеанс уже завершён и его нет в списке активных: по журналу можно восстановить, какой номер имел сеанс конкретного пользователя в конкретный момент. Это помогает при расследовании ошибок, когда пользователь сообщает о проблеме постфактум.
Учтите, что при большом объёме журнала выборка может занимать время — сужайте период отбора и фильтруйте по пользователю. Если журнал ведётся в новом формате (SQLite), поиск работает заметно быстрее, чем в старом файловом формате lgf.
Сравнение способов: что выбрать в разных ситуациях
Выбор метода зависит от режима работы базы, ваших прав и того, активен сеанс сейчас или уже завершён. Ниже — сопоставление основных вариантов.
| Способ | Режим базы | Нужны права | Когда подходит |
|---|---|---|---|
| Активные пользователи в клиенте | Файловый и клиент-серверный | Обычные (зависит от конфигурации) | Быстро найти свой сеанс или сеанс коллеги |
| Консоль кластера | Только клиент-серверный | Администратор кластера или ИБ | Полный контроль, завершение сеансов, анализ нагрузки |
| НомерСеансаИнформационнойБазы() | Любой | Не требуются | Протоколирование и логика в коде |
| ПолучитьСеансыИнформационнойБазы() | Любой | Административные | Массовая обработка сеансов из кода |
| Журнал регистрации | Любой | Доступ к конфигуратору | Поиск уже завершённых сеансов |
Как выбрать действие
Частые ошибки и ограничения
Распространённая ошибка — попытка завершить сеанс по имени пользователя вместо номера. Если у пользователя открыто два сеанса (например, тонкий клиент и фоновое задание), завершение «не того» сеанса приведёт к потере несохранённых данных в рабочем подключении. Всегда сверяйте номер сеанса, компьютер и время начала.
Вторая типичная проблема — использование номера сеанса как постоянного идентификатора в прикладном коде, например для именования файлов обмена. После перезапуска сервера нумерация сбрасывается, и разные сеансы в разное время получают одинаковые номера. Для устойчивой идентификации используйте уникальный идентификатор сеанса (свойство «УникальныйИдентификаторСеанса» недоступно напрямую — применяйте GUID, сгенерированный в коде).
Также помните, что принудительное завершение сеанса — это аварийная мера. Данные, не сохранённые пользователем, будут потеряны, а длительные транзакции откатятся, что может временно увеличить нагрузку на СУБД.
FAQ
Может ли у одного пользователя быть несколько номеров сеансов?
Да. Каждое подключение — отдельный сеанс со своим номером. Один пользователь может одновременно работать в тонком клиенте, веб-клиенте и иметь запущенные фоновые задания, и у каждого подключения будет свой номер сеанса.
Почему в списке активных пользователей нет номера сеанса?
В некоторых конфигурациях колонка «Сеанс» скрыта настройками формы. Нажмите «Ещё» → «Изменить форму» и включите отображение поля, либо посмотрите сеансы через консоль кластера или программно.
Сохраняется ли номер сеанса после перезапуска сервера 1С?
Нет. Нумерация сеансов ведётся в пределах текущего запуска кластера или открытой файловой базы. После перезапуска отсчёт начинается заново, поэтому номер нельзя использовать как постоянный идентификатор.
Как узнать номер сеанса фонового задания?
В консоли кластера в разделе «Сеансы» фоновые задания отображаются с типом приложения «Фоновое задание». Программно можно перебрать результат ПолучитьСеансыИнформационнойБазы() и отфильтровать по свойству ИмяПриложения.
Чем номер сеанса отличается от номера соединения?
Сеанс — логическое подключение пользователя к базе, а соединение — техническая связь сеанса с рабочим процессом кластера. При обрыве связи соединение пересоздаётся с новым номером, а сеанс сохраняет свой номер.
Можно ли узнать номер сеанса без прав администратора?
Да, свой текущий сеанс — через функцию НомерСеансаИнформационнойБазы() или список активных пользователей, если он доступен в конфигурации. Просмотр всех сеансов базы требует административных прав.
Что важно запомнить
Номер сеанса — временный идентификатор подключения, уникальный только до перезапуска сервера. Свой сеанс проще всего узнать через «Активных пользователей» или функцию НомерСеансаИнформационнойБазы(), полный список сеансов клиент-серверной базы — в консоли кластера, а завершённые сеансы — в журнале регистрации.