В памяти задаём сентябрьское окно и проверяем несколько явно заданных допустимых и запрещённых моментов.
Где и как запускать
Полный модуль собственной управляемой формы: расчёт на сервере, вывод на клиенте.
Подготовка
Собственная пустая конфигурация УчебнаяКонфигурацияСинтаксиса 8.5.1.1343. Создайте внешнюю обработку с управляемой формой, командой Выполнить и её кнопкой; вставьте полный модуль урока в форму.
ТребуетсяВыполнение доступен серверу, толстому клиенту и внешнему соединению. Поэтому здесь тонкий клиент получает результат отдельной серверной функции.
Расписание создаётся только в памяти. Регламентное задание не создаётся, не записывается и не запускается; действующие расписания базы не читаются и не меняются.
Все даты проверки заданы явно. Вызов без даты зависит от текущего времени и для этих воспроизводимых проверок не используется.
&НаКлиенте
Процедура Выполнить(Команда)
Сообщить(ПроверитьУчебноеРасписание());
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьУчебноеРасписание()
Отчет = Новый Массив;
Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ДатаНачала = Дата(2026, 9, 1);
Расписание.ДатаКонца = Дата(2026, 9, 30);
Расписание.ВремяНачала = Дата(1, 1, 1, 9, 0, 0);
Расписание.ВремяКонца = Дата(1, 1, 1, 17, 0, 0);
Расписание.Месяцы = Новый Массив;
Месяцы = Расписание.Месяцы;
Месяцы.Добавить(9);
Расписание.Месяцы = Месяцы;
Дни = Новый Массив;
Дни.Добавить(1);
Дни.Добавить(3);
Дни.Добавить(5);
Расписание.ДниНедели = Дни;
Отчет.Добавить(Строка(Расписание.ДатаНачала = Дата(2026, 9, 1)));
Отчет.Добавить(Строка(Расписание.ДатаКонца = Дата(2026, 9, 30)));
Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 14, 9, 0, 0))));
Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 16, 12, 0, 0))));
Отчет.Добавить(Строка(Расписание.ТребуетсяВыполнение(Дата(2026, 9, 18, 17, 0, 0))));
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 15, 12, 0, 0))));
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 14, 8, 59, 59))));
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 9, 18, 17, 0, 1))));
Отчет.Добавить(Строка(НЕ Расписание.ТребуетсяВыполнение(Дата(2026, 8, 31, 12, 0, 0))));
Возврат СтрСоединить(Отчет, Символы.ПС);
КонецФункцииРазбор по шагам
Номера дней недели: понедельник=1, среда=3, пятница=5. Месяц сентябрь=9; массивы присваиваются обратно свойствам.
ДатаНачала/ДатаКонца ограничивают календарные дни, ВремяНачала/ВремяКонца — время внутри допустимого дня. Время задаём датой с календарной частью 01.01.0001.
Границы времени включены: ровно 09:00 и 17:00 допустимы. 08:59:59 и 17:00:01 недопустимы.
Дата последнего запуска не передана: проверка истории повторов не производится. Это проверка принадлежности расписанию, не резервирование запуска.
Как проверить результат
Девять строк отчёта ожидаются Истина. Для отрицательных случаев используется НЕ.
15 сентября 2026 — вторник, 14 — понедельник, 16 — среда, 18 — пятница.
В базе не появляется новое регламентное или фоновое задание.
Ожидаемый результат
Показаны отдельные календарные и суточные ограничения расписания с тестами точных границ.
На что обратить внимание
Булево Истина не запускает обработку и не гарантирует, что сервер исполнит задание в эту секунду.
Не пользоваться текущей датой для обещанных воспроизводимых результатов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.