В практике администрирования и сопровождения информационных баз 1С:Предприятие, особенно если используется специализированная конфигурация для администрирования большого количества баз, часто возникает ситуация, когда необходимо точно идентифицировать конкретное запущенное окно клиентского приложения. Например, один и тот же пользователь открыл несколько сеансов (тонких клиентов) на одном компьютере, и один из них "завис" или блокирует данные. Администратору нужно завершить конкретный сеанс через консоль кластера, но как понять, какой из них — нужный, не закрывая все подряд?
В данной статье мы подробно разберем все доступные способы узнать номер текущего сеанса непосредственно из пользовательского режима. Мы рассмотрим как штатные средства платформы, так и методы, требующие минимальных дополнительных инструментов, а также проанализируем нюансы терминологии платформы 1С.
Это решение является наиболее простым и доступным для любого пользователя, независимо от его прав доступа к административным панелям. К сожалению, о нем часто забывают даже опытные специалисты, пытаясь найти более сложные пути.
Давайте выполним следующие действия в том окне программы, которое нам необходимо идентифицировать:
Число, указанное после двоеточия, и есть номер сеанса. Именно этот номер соответствует колонке "Номер" в консоли администрирования серверов 1С в ветке "Сеансы". Используя этот метод, вы безошибочно определите, какое именно окно соответствует записи в консоли кластера, даже если у вас открыто десять копий одной и той же базы.
Этот способ обсуждался на форуме как основной. В большинстве современных конфигураций, построенных на базе Библиотеки Стандартных Подсистем (БСП), есть встроенный отчет или обработка для просмотра списка работающих пользователей. Для более продвинутых задач администрирования часто применяется полноценный центр администрирования 1С, позволяющий управлять сеансами и блокировками из единого окна.
Разберем, как это работает и какие есть ограничения:
В открывшемся списке вы увидите всех пользователей, подключенных к базе в данный момент. В колонке "Номер сеанса" будет указан искомый идентификатор. Если в вашей организации наблюдается дефицит лицензий, удобным инструментом мониторинга станет консоль активности пользователей.
Важное замечание: У этого способа есть существенный недостаток при наличии нескольких запущенных копий программы под одним пользователем. Если вы запустили два тонких клиента на одном ПК:
В этом списке текущий сеанс (тот, в котором вы открыли отчет) никак визуально не выделяется. Поэтому трудно понять, какая строка соответствует текущему окну. В таких случаях также полезно проверить, какие ключи заняты.
Если у вас есть права на открытие внешних обработок и вы используете инструменты разработчика, можно получить номер программным путем. Подобные задачи часто стоят перед специалистами при работе в тестовых средах.
Для получения идентификатора часто предлагают использовать функцию глобального контекста НомерСоединенияИнформационнойБазы(). Давайте посмотрим, как это сделать:
Сообщить(НомерСоединенияИнформационнойБазы());
После нажатия кнопки "Выполнить", в окне сообщений появится число.
Однако здесь мы подходим к важному теоретическому моменту: различие между Сеансом и Соединением.
В платформе 1С:Предприятие 8.3 существуют два разных понятия:
Функция НомерСоединенияИнформационнойБазы() возвращает номер соединения. Для задач администрирования первичным является именно номер сеанса. Чтобы программно получить именно его, в современных версиях платформы правильнее использовать следующий код:
// Данный код должен выполняться в контексте &НаСервере
ТекущийНомерСеанса = НомерСеансаИнформационнойБазы();
Сообщить(ТекущийНомерСеанса);
Еще один надежный метод идентификации, который работает в любых режимах и позволяет точно "привязать" окно к номеру.
Давайте разберем алгоритм действий:
Этот номер однозначно указывает на сеанс, в котором было выполнено действие.
Давайте подытожим рассмотренные варианты, чтобы вы могли выбрать наиболее подходящий для вашей ситуации.
Таким образом, если ваша задача — просто узнать номер для передачи администратору или поиска в консоли сервера, мы рекомендуем использовать первый способ через меню Справка — О программе.