Получает список сеансов текущей информационой базы.
Синтаксис
ПолучитьСеансыИнформационнойБазы()Полное описание, параметры и ограничения
Глобальный контекст.ПолучитьСеансыИнформационнойБазы (Global context.GetInfoBaseSessions)
Глобальный контекст (Global context)
ПолучитьСеансыИнформационнойБазы (GetInfoBaseSessions)
Доступен, начиная с версии 8.2.
Синтаксис:
ПолучитьСеансыИнформационнойБазы()
Возвращаемое значение:
Тип: Массив.
Массив объектов СеансИнформационнойБазы.
Если пользователь соединения не имеет права АктивныеПользователи (ActiveUsers), то вызывается исключение.
Описание:
Получает список сеансов текущей информационой базы.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Найти свой сеанс в снимке списка, не считая соединения пользователями
Список включает сеансы приложений и заданий. Поиск использует номер собственного сеанса, не имя пользователя или индекс 0.
Где и как запускать
Полный серверный общий модуль учебной копии базы. Чтение встроенного API, не администрирование RAS/COM.
Подготовка
Только отдельная учебная копия базы. Создайте серверный общий модуль УчебныеЗадачи; вставьте полный модуль выбранного урока и вызовите ВыполнитьПример() из серверной учебной команды.
Это встроенный API 1С, не COM/RAS. Соединение с агентом кластера, логин администратора и регистрация COM не нужны. Тонкий клиент вызывает серверную команду, не выполняет эти функции напрямую.
Для списков сеансов/соединений по локальной справке нужно право АктивныеПользователи. Если его нет, пример останавливается с пояснением; права и привилегированный режим код не меняет.
Проверки только читают данные. Они не завершают сеансы, не отключают соединения, не меняют часовые пояса и не выводят IP, имя компьютера или имя пользователя в журнал.
Процедура ВыполнитьПример() Экспорт
Текущий = ПолучитьТекущийСеансИнформационнойБазы();
Если ТипЗнч(Текущий) <> Тип("СеансИнформационнойБазы") Тогда
ВызватьИсключение "Ожидался встроенный СеансИнформационнойБазы, не COM Сеанс";
КонецЕсли;
Попытка
Сеансы = ПолучитьСеансыИнформационнойБазы();
Исключение
Сообщить("Список сеансов недоступен; проверьте право АктивныеПользователи и причину ошибки: " + ОписаниеОшибки());
Возврат;
КонецПопытки;
НайденСвой = Ложь;
БезСоединения = 0;
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.НомерСоединения = 0 Тогда
БезСоединения = БезСоединения + 1;
КонецЕсли;
Если Сеанс.НомерСеанса = Текущий.НомерСеанса Тогда
НайденСвой = Истина;
КонецЕсли;
КонецЦикла;
Сообщить("Сеансов в снимке: " + Строка(Сеансы.Количество()));
Сообщить("Из них без назначенного соединения: " + Строка(БезСоединения));
Сообщить("Свой номер найден: " + Строка(НайденСвой));
Сообщить("Это не количество людей, лицензий или активных TCP-соединений");
КонецПроцедурыРазбор по шагам
Текущий сеанс читается перед отдельным вызовом списка. Снимок не является постоянно обновляемой коллекцией.
По справке список требует право АктивныеПользователи. Ошибка выводится как недоступность с проверкой причины, а не автоматически объявляется успешным пустым списком.
Цикл ищет собственный НомерСеанса. Нет выбора первого элемента без проверки и нет группировки пользователей по имени.
Отдельно считаются записи с НомерСоединения = 0. Сеансы фоновых/служебных приложений тоже могут входить в список.
Как проверить результат
При доступном списке: три фактических значения; свой сеанс обычно найден, но изменяющийся снимок не фиксируется как вечная гарантия.
Без права — пояснение и выход. Ни один сеанс не завершён.
Ожидаемый результат
Снимок сеансов прочитан без ошибочного подсчёта людей и без завершения работы других клиентов.
На что обратить внимание
Количество сеансов не равно количеству лицензий.
Не повышайте права программно ради выполнения диагностического урока.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.