Разобрать переход через полночь и ограничения длительности

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

В памяти проверяем окно 22:00–02:00 и отдельно читаем два ограничения принудительного завершения, не запуская задание.

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

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

Подготовка

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

  2. ТребуетсяВыполнение доступен серверу, толстому клиенту и внешнему соединению. Поэтому здесь тонкий клиент получает результат отдельной серверной функции.

  3. Расписание создаётся только в памяти. Регламентное задание не создаётся, не записывается и не запускается; действующие расписания базы не читаются и не меняются.

  4. Все даты проверки заданы явно. Вызов без даты зависит от текущего времени и для этих воспроизводимых проверок не используется.

&НаКлиенте
Процедура Выполнить(Команда)
    Сообщить(ПроверитьУчебноеРасписание());
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПроверитьУчебноеРасписание()
    Отчет = Новый Массив;
    Расписание = Новый РасписаниеРегламентногоЗадания;
    Расписание.ВремяНачала = Дата(1, 1, 1, 22, 0, 0);
    Расписание.ВремяКонца = Дата(1, 1, 1, 2, 0, 0);
    Расписание.ВремяЗавершения = Дата(1, 1, 1, 2, 30, 0);
    Расписание.ИнтервалЗавершения = 600;
    Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 23, 0, 0))));
    Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 16, 1, 0, 0))));
    Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 16, 12, 0, 0))));
    Отчет.Добавить(Строка(Расписание.ВремяЗавершения = Дата(1, 1, 1, 2, 30, 0)));
    Отчет.Добавить(Строка(Расписание.ИнтервалЗавершения = 600));
    Отчет.Добавить("Ограничения записаны только в учебный объект; ни один процесс не запускался и не завершался");
    Возврат СтрСоединить(Отчет, Символы.ПС);
КонецФункции

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

  1. Когда ВремяНачала больше ВремяКонца, окно проходит через полночь. В 23:00 и 01:00 оно подходит, в 12:00 — нет.

  2. ВремяКонца ограничивает допустимый старт, ВремяЗавершения задаёт время принудительного завершения действующего задания. Это разные назначения.

  3. ИнтервалЗавершения=600 — десять минут в секундах от начала выполнения, не пауза до следующего старта.

  4. ТребуетсяВыполнение проверяет расписание; оно не моделирует убийство процесса. Пример лишь читает заданные ограничения и не выдумывает результат применения обоих сразу.

  5. Нет календарных фильтров, поэтому опыт не делает предположений о сочетании ночного окна и дня недели.

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

  1. Пять проверок ожидаются Истина, затем пояснение отсутствия запуска.

  2. По этому выводу нельзя заключить, что реально запущенная долгая процедура корректно завершится и сохранит данные.

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

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

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

  1. Принудительное завершение может оборвать незавершённую работу; не переносить учебные лимиты на производство.

  2. ИнтервалЗавершения и ПаузаПовтора имеют разные точки отсчёта.

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

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

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

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

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