На фиксированной истории запусков сравниваем отсчёт от начала и отсчёт от завершения предыдущего выполнения.
Где и как запускать
Полный модуль собственной управляемой формы, серверный расчёт без запусков.
Подготовка
Собственная пустая конфигурация УчебнаяКонфигурацияСинтаксиса 8.5.1.1343. Создайте внешнюю обработку с управляемой формой, командой Выполнить и её кнопкой; вставьте полный модуль урока в форму.
ТребуетсяВыполнение доступен серверу, толстому клиенту и внешнему соединению. Поэтому здесь тонкий клиент получает результат отдельной серверной функции.
Расписание создаётся только в памяти. Регламентное задание не создаётся, не записывается и не запускается; действующие расписания базы не читаются и не меняются.
Все даты проверки заданы явно. Вызов без даты зависит от текущего времени и для этих воспроизводимых проверок не используется.
&НаКлиенте
Процедура Выполнить(Команда)
Сообщить(ПроверитьУчебноеРасписание());
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьУчебноеРасписание()
Отчет = Новый Массив;
Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ВремяНачала = Дата(1, 1, 1, 9, 0, 0);
Расписание.ВремяКонца = Дата(1, 1, 1, 17, 0, 0);
Расписание.ПериодПовтораВТечениеДня = 3600;
Расписание.ПаузаПовтора = 900;
ПоследнееНачало = Дата(2026, 9, 15, 9, 0, 0);
ПоследнееОкончание = Дата(2026, 9, 15, 9, 5, 0);
Отчет.Добавить(Строка(Расписание.ПериодПовтораВТечениеДня = 3600));
Отчет.Добавить(Строка(Расписание.ПаузаПовтора = 900));
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 9, 10, 0), ПоследнееНачало, ПоследнееОкончание)));
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 9, 59, 0), ПоследнееНачало, ПоследнееОкончание)));
Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 10, 0, 0), ПоследнееНачало, ПоследнееОкончание)));
ПозднееОкончание = Дата(2026, 9, 15, 9, 55, 0);
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 10, 0, 0), ПоследнееНачало, ПозднееОкончание)));
Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 10, 11, 0), ПоследнееНачало, ПозднееОкончание)));
Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 9, 10, 0))));
Возврат СтрСоединить(Отчет, Символы.ПС);
КонецФункцииРазбор по шагам
ПериодПовтораВТечениеДня=3600 и ПаузаПовтора=900 измеряются в секундах: один час и пятнадцать минут.
Период повтора учитывает начало предыдущего запуска, пауза — его завершение. В 09:59 час от 09:00 ещё не прошёл.
Если работа закончилась только в 09:55, следующий запуск в 10:00 не проходит пятнадцатиминутную паузу; 10:11 находится после неё.
Последний вызов намеренно не передаёт историю. По справке тогда условия повторов не проверяются, как будто запусков/завершений ещё не было.
Пример не измеряет реальную длительность и не завершает процесс: все отметки истории — фиксированные учебные даты.
Как проверить результат
Восемь строк ожидаются Истина. Последняя иллюстрирует пропуск проверки повторов при отсутствии истории.
Уберите дату завершения только для дополнительного самостоятельного опыта: условие паузы перестанет проверяться; не выдавайте это за реальную историю задания.
Ожидаемый результат
Показана практическая разница между периодом начала и минимальной паузой после завершения.
На что обратить внимание
Без даты начала последнего запуска нельзя проверить период повторов честно.
ПаузаПовтора не является принудительным тайм-аутом выполнения; для этого существуют другие свойства.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.