Как узнать номер сеанса в режиме предприятия через пользовательский интерфейс, не прибегая к программированию?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В практике администрирования и сопровождения информационных баз 1С:Предприятие, особенно если используется специализированная конфигурация для администрирования большого количества баз, часто возникает ситуация, когда необходимо точно идентифицировать конкретное запущенное окно клиентского приложения. Например, один и тот же пользователь открыл несколько сеансов (тонких клиентов) на одном компьютере, и один из них "завис" или блокирует данные. Администратору нужно завершить конкретный сеанс через консоль кластера, но как понять, какой из них — нужный, не закрывая все подряд?

В данной статье мы подробно разберем все доступные способы узнать номер текущего сеанса непосредственно из пользовательского режима. Мы рассмотрим как штатные средства платформы, так и методы, требующие минимальных дополнительных инструментов, а также проанализируем нюансы терминологии платформы 1С.

Способ 1. Самый быстрый и штатный: Окно "О программе"

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

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

  1. В правом верхнем углу интерфейса (если используется интерфейс "Такси") найдите кнопку с пиктограммой информационной буквы "i" или откройте главное меню (кнопка с тремя полосками или кружок с логотипом в старых версиях).
  2. В выпадающем меню выберите пункт Справка, а затем — О программе.
  3. Перед вами откроется информационное окно с версией платформы и конфигурации.
  4. Обратите внимание на нижнюю часть этого окна, где расположен блок технической информации.
  5. Найдите строку, начинающуюся со слова Сеанс:.

Число, указанное после двоеточия, и есть номер сеанса. Именно этот номер соответствует колонке "Номер" в консоли администрирования серверов 1С в ветке "Сеансы". Используя этот метод, вы безошибочно определите, какое именно окно соответствует записи в консоли кластера, даже если у вас открыто десять копий одной и той же базы.

Способ 2. Использование списка "Активные пользователи"

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

Разберем, как это работает и какие есть ограничения:

  1. Перейдите в раздел Администрирование (в некоторых конфигурациях это может быть раздел "НСИ и Администрирование").
  2. Найдите пункт Обслуживание.
  3. В группе команд перейдите по ссылке Активные пользователи.

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

Важное замечание: У этого способа есть существенный недостаток при наличии нескольких запущенных копий программы под одним пользователем. Если вы запустили два тонких клиента на одном ПК:

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

Способ 3. Использование "Консоли кода" (Инструменты разработчика)

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

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

  1. Откройте обработку "Консоль кода" в нужном окне 1С.
  2. В поле редактора кода введите следующую команду:

Сообщить(НомерСоединенияИнформационнойБазы());

После нажатия кнопки "Выполнить", в окне сообщений появится число.

Однако здесь мы подходим к важному теоретическому моменту: различие между Сеансом и Соединением.

В чем разница между Сеансом и Соединением?

В платформе 1С:Предприятие 8.3 существуют два разных понятия:

Функция НомерСоединенияИнформационнойБазы() возвращает номер соединения. Для задач администрирования первичным является именно номер сеанса. Чтобы программно получить именно его, в современных версиях платформы правильнее использовать следующий код:


// Данный код должен выполняться в контексте &НаСервере
ТекущийНомерСеанса = НомерСеансаИнформационнойБазы();
Сообщить(ТекущийНомерСеанса);

Способ 4. Журнал регистрации

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

Давайте разберем алгоритм действий:

  1. В интересующем нас окне 1С выполните любое действие, которое оставляет след в Журнале регистрации (например, запись элемента).
  2. Сразу после этого откройте Журнал регистрации: Администрирование — Обслуживание — Журнал регистрации.
  3. Установите отбор на текущего пользователя и отсортируйте список по дате.
  4. Найдите ваше последнее действие.
  5. В колонке Сеанс вы увидите номер.

Этот номер однозначно указывает на сеанс, в котором было выполнено действие.

Сводная таблица методов

Давайте подытожим рассмотренные варианты, чтобы вы могли выбрать наиболее подходящий для вашей ситуации.

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

← На главную