Глобальный контекст.ПолучитьСеансыИнформационнойБазы

Методы · GetInfoBaseSessions

Получает список сеансов текущей информационой базы.

Синтаксис

ПолучитьСеансыИнформационнойБазы()
Полное описание, параметры и ограничения

Глобальный контекст.ПолучитьСеансыИнформационнойБазы (Global context.GetInfoBaseSessions)

Глобальный контекст (Global context)

ПолучитьСеансыИнформационнойБазы (GetInfoBaseSessions)

Доступен, начиная с версии 8.2.

Синтаксис:
ПолучитьСеансыИнформационнойБазы()
Возвращаемое значение:
Тип: Массив.
Массив объектов СеансИнформационнойБазы.
Если пользователь соединения не имеет права АктивныеПользователи (ActiveUsers), то вызывается исключение.
Описание:

Получает список сеансов текущей информационой базы.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Найти свой сеанс в снимке списка, не считая соединения пользователями

Список включает сеансы приложений и заданий. Поиск использует номер собственного сеанса, не имя пользователя или индекс 0.

Где и как запускать

Полный серверный общий модуль учебной копии базы. Чтение встроенного API, не администрирование RAS/COM.

Подготовка

  1. Только отдельная учебная копия базы. Создайте серверный общий модуль УчебныеЗадачи; вставьте полный модуль выбранного урока и вызовите ВыполнитьПример() из серверной учебной команды.

  2. Это встроенный API 1С, не COM/RAS. Соединение с агентом кластера, логин администратора и регистрация COM не нужны. Тонкий клиент вызывает серверную команду, не выполняет эти функции напрямую.

  3. Для списков сеансов/соединений по локальной справке нужно право АктивныеПользователи. Если его нет, пример останавливается с пояснением; права и привилегированный режим код не меняет.

  4. Проверки только читают данные. Они не завершают сеансы, не отключают соединения, не меняют часовые пояса и не выводят IP, имя компьютера или имя пользователя в журнал.

Процедура ВыполнитьПример() Экспорт
    Текущий = ПолучитьТекущийСеансИнформационнойБазы();
    Если ТипЗнч(Текущий) <> Тип("СеансИнформационнойБазы") Тогда
        ВызватьИсключение "Ожидался встроенный СеансИнформационнойБазы, не COM Сеанс";
    КонецЕсли;
    Попытка
        Сеансы = ПолучитьСеансыИнформационнойБазы();
    Исключение
        Сообщить("Список сеансов недоступен; проверьте право АктивныеПользователи и причину ошибки: " + ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    НайденСвой = Ложь;
    БезСоединения = 0;
    Для Каждого Сеанс Из Сеансы Цикл
        Если Сеанс.НомерСоединения = 0 Тогда
            БезСоединения = БезСоединения + 1;
        КонецЕсли;
        Если Сеанс.НомерСеанса = Текущий.НомерСеанса Тогда
            НайденСвой = Истина;
        КонецЕсли;
    КонецЦикла;
    Сообщить("Сеансов в снимке: " + Строка(Сеансы.Количество()));
    Сообщить("Из них без назначенного соединения: " + Строка(БезСоединения));
    Сообщить("Свой номер найден: " + Строка(НайденСвой));
    Сообщить("Это не количество людей, лицензий или активных TCP-соединений");
КонецПроцедуры

Разбор по шагам

  1. Текущий сеанс читается перед отдельным вызовом списка. Снимок не является постоянно обновляемой коллекцией.

  2. По справке список требует право АктивныеПользователи. Ошибка выводится как недоступность с проверкой причины, а не автоматически объявляется успешным пустым списком.

  3. Цикл ищет собственный НомерСеанса. Нет выбора первого элемента без проверки и нет группировки пользователей по имени.

  4. Отдельно считаются записи с НомерСоединения = 0. Сеансы фоновых/служебных приложений тоже могут входить в список.

Как проверить результат

  1. При доступном списке: три фактических значения; свой сеанс обычно найден, но изменяющийся снимок не фиксируется как вечная гарантия.

  2. Без права — пояснение и выход. Ни один сеанс не завершён.

Ожидаемый результат

Снимок сеансов прочитан без ошибочного подсчёта людей и без завершения работы других клиентов.

На что обратить внимание

  1. Количество сеансов не равно количеству лицензий.

  2. Не повышайте права программно ради выполнения диагностического урока.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

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