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