Отличить момент предупреждения от завершения сеанса при бездействии

Учебные задачи

Обе настройки — интервалы бездействия в секундах. Интервал предупреждения не равен автоматически времени, оставшемуся после предупреждения.

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

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

Подготовка

  1. Используйте только отдельную конфигурацию УчебнаяКонфигурацияСинтаксиса. Создайте серверный общий модуль УчебнаяПолитика с флагом Сервер, без флага Привилегированный; вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из собственной серверной команды.

  2. Первые четыре урока вызывают реальные штатные getters в серверном модуле. Выбранные страницы справки не задают для этих методов отдельного требования Администрирование; это не обещание отсутствия внутренних проверок прав. Любая фактическая ошибка сохраняется в ОписаниеОшибки и останавливает опыт без повышения прав, повторного вызова или подстановки значений. Пятый урок создаёт только новый объект в памяти и не читает текущие настройки.

  3. Первые четыре урока только читают настройки. Пятый создаёт новый черновик БлокировкаСеансов в памяти. Ни один урок не вызывает УстановитьБлокировкуСеансов или изменение политики паролей.

  4. Не вводите пароли пользователей и коды разрешения действующих блокировок. Учебник не проверяет чей-либо пароль, не отправляет его на внешний сервис и не выводит код /uc.

  5. Секунды для сроков действия паролей сверены по вашему реальному модулю УНФ: C:\claude\UNF\UNF_XML\CommonModules\ПользователиСлужебный\Ext\Module.bsl, процедура ЗаполнитьНастройкиИзПолитикиПаролейПользователей, строки 3197–3233. Там используется деление на 24×60×60. Урок не вызывает этот модуль и не зависит от БСП.

  6. Фактические настройки и административные ограничения зависят от вашей собственной базы. BSL-примеры не исполнялись в 1С автоматически.

Процедура ВыполнитьПример() Экспорт
    Попытка
        Завершение = ПолучитьВремяЗавершенияСеансаПриБездействии();
        Предупреждение = ПолучитьВремяПредупрежденияОЗавершенииСеансаПриБездействии();
        Сообщить(ТипЗнч(Завершение) = Тип("Число"));
        Сообщить(ТипЗнч(Предупреждение) = Тип("Число"));
        Сообщить("Настроенный порог завершения, секунд бездействия: " + Строка(Завершение));
        Сообщить("Настроенный порог предупреждения, секунд бездействия: " + Строка(Предупреждение));
        Если Завершение > 0 И Предупреждение > 0 И Завершение >= Предупреждение Тогда
            Сообщить("Разница двух положительных порогов, секунд: " + Строка(Завершение - Предупреждение));
        Иначе
            Сообщить("Для этих значений разница не интерпретируется как положительное время после предупреждения");
        КонецЕсли;
        УчебноеЗавершение = 1200;
        УчебноеПредупреждение = 900;
        Сообщить((УчебноеЗавершение - УчебноеПредупреждение) / 60 = 5);
    Исключение
        ВызватьИсключение "СТОП: штатное чтение настроек собственной базы не завершено: " + ОписаниеОшибки();
    КонецПопытки;
КонецПроцедуры

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

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

  2. Подписать каждый как секунды бездействия от общей точки отсчёта.

  3. Для положительных упорядоченных значений рассчитать разницу; для остальных вывести понятное ограничение интерпретации.

  4. На независимых учебных числах 900 и 1200 проверить 5 минут между порогами.

  5. Не использовать паузу для ожидания разрыва сеанса: опыт не изменяет настройки и не разрывает соединение.

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

  1. Две проверки типов и одна учебная арифметическая проверка Истина.

  2. Фактическая работа предупреждения и завершения не объявляется протестированной ожиданием.

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

Настоящий пример чтения двух разных таймаутов и корректного вычисления промежутка на своих числах.

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

  1. 900 секунд предупреждения не означает, что после него осталось 900 секунд.

  2. Нельзя считать любой нулевой или неупорядоченный набор положительным интервалом между событиями.

  3. Эти таймауты относятся к бездействию, не к времени ожидания блокировки данных или продолжительности HTTP-запроса.

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

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

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

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

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