Тип: Число. Период времени (в днях), с которым повторяется интервал. Если &ПериодПовтораДней=1, интервал будет повторен каждый день, &ПериодПовтораДней=2, интервал будет повторен через день, и т. д.
Полное описание, параметры и ограничения
РасписаниеЭлементаПланировщика.ПериодПовтораДней (PlannerItemSchedule.DaysRepeatPeriod)
РасписаниеЭлементаПланировщика (PlannerItemSchedule)
ПериодПовтораДней (DaysRepeatPeriod)
Доступен, начиная с версии 8.3.6.
Использование:
Чтение и запись.
Описание:
Тип: Число.
Период времени (в днях), с которым повторяется интервал. Если &ПериодПовтораДней=1, интервал будет повторен каждый день, &ПериодПовтораДней=2, интервал будет повторен через день, и т. д.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Повторить собственную встречу через день с двумя ограничениями
Событие 15 сентября длится час. Задаём период два дня, конечную дату и лимит повторения, не создавая отдельные записи встреч.
Где и как запускать
Полный модуль собственной новой управляемой формы внешней обработки; план в памяти, не запись календаря.
Подготовка
Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.
Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.
В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.
Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.
В этом уроке начальные два собственных события заменяются одним событием guide-owned-recurrence. Весь план существует только в памяти внешней обработки; календари телефона, пользователей и документы базы не используются.
Дата, диапазон просмотра и правило повторения фиксированы в коде. Счётчик коллекции Элементы не используется как обещанный счётчик всех визуальных повторов.
Для диалога сначала нажмите Отмена, потом повторите опыт с ОК. Объект для редактирования копируется отдельно, включая массивы дней и месяцев.
ОткрытьМодально используйте только в собственной учебной базе с разрешёнными модальными вызовами; не меняйте ради опыта режим рабочей конфигурации.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
План = Новый Планировщик;
План.НачалоПериодаОтображения = Дата(2026, 9, 15, 9, 0, 0);
План.КонецПериодаОтображения = Дата(2026, 9, 15, 17, 0, 0);
План.ТекущиеПериодыОтображения.Очистить();
План.ТекущиеПериодыОтображения.Добавить(
План.НачалоПериодаОтображения, План.КонецПериодаОтображения);
План.ОтображатьТекущуюДату = Ложь;
План.ФиксироватьЗаголовокШкалыВремени = Истина;
План.ФиксироватьЗаголовокИзмерений = Истина;
План.ВыравниватьГраницыЭлементовПоШкалеВремени = Истина;
План.ЦветФона = Новый Цвет(255, 255, 255);
План.ЦветТекста = Новый Цвет(35, 45, 55);
План.ЦветЛиний = Новый Цвет(220, 225, 230);
План.Шрифт = Новый Шрифт("Arial", 10);
Шкала = План.ШкалаВремени;
Шкала.Положение = ПоложениеШкалыВремени.Верх;
Шкала.ПрозрачныйФон = Ложь;
Шкала.ЦветФона = Новый Цвет(240, 245, 250);
Шкала.ЦветТекста = Новый Цвет(35, 45, 55);
Пока Шкала.Элементы.Количество() > 0 Цикл
Шкала.Элементы.Удалить(Шкала.Элементы.Получить(0));
КонецЦикла;
Часы = Шкала.Элементы.Добавить();
Часы.Единица = ТипЕдиницыШкалыВремени.Час;
Часы.Кратность = 1;
Часы.Формат = "ДФ=HH:mm";
Часы.Видимость = Истина;
Часы.ОтображатьПериодическиеМетки = Истина;
Часы.ЦветЛиний = Новый Цвет(220, 225, 230);
Часы.ЦветТекста = Новый Цвет(35, 45, 55);
Часы.ЦветФона = Новый Цвет(240, 245, 250);
Прием = План.Элементы.Добавить(Дата(2026, 9, 15, 9, 0, 0), Дата(2026, 9, 15, 10, 0, 0));
Прием.Значение = "training-receipt";
Прием.Текст = "Учебный приём — 09:00–10:00";
Прием.Подсказка = "Вымышленное событие. Только память формы.";
Прием.ЦветФона = Новый Цвет(210, 235, 255);
Прием.ЦветТекста = Новый Цвет(25, 70, 115);
Прием.ЦветРамки = Новый Цвет(80, 140, 195);
Прием.Шрифт = Новый Шрифт("Arial", 10);
Прием.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
Разбор = План.Элементы.Добавить(Дата(2026, 9, 15, 11, 0, 0), Дата(2026, 9, 15, 12, 0, 0));
Разбор.Значение = "training-review";
Разбор.Текст = "Учебный разбор — 11:00–12:00";
Разбор.ЦветФона = Новый Цвет(225, 245, 220);
Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
План.Элементы.Очистить();
План.НачалоПериодаОтображения = Дата(2026, 9, 15);
План.КонецПериодаОтображения = Дата(2026, 9, 23);
План.ТекущиеПериодыОтображения.Очистить();
План.ТекущиеПериодыОтображения.Добавить(План.НачалоПериодаОтображения, План.КонецПериодаОтображения);
Часы.Единица = ТипЕдиницыШкалыВремени.День;
Часы.Формат = "ДФ=dd.MM";
СобственноеСобытие = План.Элементы.Добавить(Дата(2026, 9, 15, 9, 0, 0), Дата(2026, 9, 15, 9, 0, 0) + 3600);
СобственноеСобытие.Значение = "guide-owned-recurrence";
СобственноеСобытие.Текст = "Повторяющаяся учебная встреча";
СобственноеСобытие.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
Расписание = Новый РасписаниеЭлементаПланировщика;
Расписание.ДниНедели.Очистить();
Расписание.Месяцы.Очистить();
Расписание.ПериодПовтораДней = 2;
Расписание.КоличествоПовторов = 3;
Расписание.ДатаКонца = Дата(2026, 9, 22, 23, 59, 59);
СобственноеСобытие.Расписание = Расписание;
ЭтаФорма.УчебныйПлан = План;
Поле = Элементы.Добавить("ПолеПлана", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеПланировщика;
Поле.ПутьКДанным = "УчебныйПлан";
Поле.Заголовок = "Учебный день 15.09.2026";
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
Поле.Заголовок = "Собственное повторяющееся событие";
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить собственное расписание";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Событие = УчебныйПлан.Элементы.Найти("guide-owned-recurrence");
Если Событие = Неопределено Тогда
ВызватьИсключение "Нет собственного повторяющегося события";
КонецЕсли;
Если Событие.Конец - Событие.Начало <> 3600 Тогда
ВызватьИсключение "Ожидалась собственная часовая встреча";
КонецЕсли;
Сообщить(ТипЗнч(Событие.Расписание) = Тип("РасписаниеЭлементаПланировщика"));
Сообщить(Событие.Конец - Событие.Начало = 3600);
Сообщить(Событие.Расписание.ПериодПовтораДней = 2);
Сообщить(Событие.Расписание.КоличествоПовторов = 3);
Сообщить(Событие.Расписание.ДатаКонца = Дата(2026, 9, 22, 23, 59, 59));
КонецПроцедуры
Разбор по шагам
Удаляем только два первоначальных события собственного нового плана. Новое событие имеет отдельный устойчивый ключ и длительность 3600 секунд.
ПериодПовтораДней=2 означает через день; правило начинается от собственного события 15 сентября 09:00.
КоличествоПовторов=3 — предельное количество повторения. ДатаКонца отдельно запрещает повторения после установленной даты.
Элементы.Количество не считается количеством визуальных повторов: расписание хранится у исходного элемента.
Календарная часть плана показана в днях dd.MM. Задание не запускает напоминания или регламентные задания.
Как проверить результат
По кнопке пять сравнений ожидаются Истина: тип, длительность, период, лимит и конечная дата.
Проверьте визуальный шаг повторов 15 → 17 → 19 сентября. Не объявляйте точное количество всех плиток без фактической проверки включения исходного события в лимит.
После 22 сентября повторения по этому правилу не должны продолжаться.
Ожидаемый результат
Есть полноценный собственный план с повторяющимся часовым событием и двумя отдельными пределами.
На что обратить внимание
КоличествоПовторов=0 по справке означает отсутствие лимита количества, не отсутствие повторов.
РасписаниеЭлементаПланировщика не имеет ТребуетсяВыполнение: не переносите методы РасписаниеРегламентногоЗадания.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Редактировать расписание через Ждать и применить только ОК
Немодальный диалог возвращает расписание или Неопределено; первоначальное правило хранится отдельно от редактируемой копии.
Где и как запускать
Полный модуль собственной новой управляемой формы внешней обработки; план в памяти, не запись календаря.
Подготовка
Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.
Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.
В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.
Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.
В этом уроке начальные два собственных события заменяются одним событием guide-owned-recurrence. Весь план существует только в памяти внешней обработки; календари телефона, пользователей и документы базы не используются.
Дата, диапазон просмотра и правило повторения фиксированы в коде. Счётчик коллекции Элементы не используется как обещанный счётчик всех визуальных повторов.
Для диалога сначала нажмите Отмена, потом повторите опыт с ОК. Объект для редактирования копируется отдельно, включая массивы дней и месяцев.
ОткрытьМодально используйте только в собственной учебной базе с разрешёнными модальными вызовами; не меняйте ради опыта режим рабочей конфигурации.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
План = Новый Планировщик;
План.НачалоПериодаОтображения = Дата(2026, 9, 15, 9, 0, 0);
План.КонецПериодаОтображения = Дата(2026, 9, 15, 17, 0, 0);
План.ТекущиеПериодыОтображения.Очистить();
План.ТекущиеПериодыОтображения.Добавить(
План.НачалоПериодаОтображения, План.КонецПериодаОтображения);
План.ОтображатьТекущуюДату = Ложь;
План.ФиксироватьЗаголовокШкалыВремени = Истина;
План.ФиксироватьЗаголовокИзмерений = Истина;
План.ВыравниватьГраницыЭлементовПоШкалеВремени = Истина;
План.ЦветФона = Новый Цвет(255, 255, 255);
План.ЦветТекста = Новый Цвет(35, 45, 55);
План.ЦветЛиний = Новый Цвет(220, 225, 230);
План.Шрифт = Новый Шрифт("Arial", 10);
Шкала = План.ШкалаВремени;
Шкала.Положение = ПоложениеШкалыВремени.Верх;
Шкала.ПрозрачныйФон = Ложь;
Шкала.ЦветФона = Новый Цвет(240, 245, 250);
Шкала.ЦветТекста = Новый Цвет(35, 45, 55);
Пока Шкала.Элементы.Количество() > 0 Цикл
Шкала.Элементы.Удалить(Шкала.Элементы.Получить(0));
КонецЦикла;
Часы = Шкала.Элементы.Добавить();
Часы.Единица = ТипЕдиницыШкалыВремени.Час;
Часы.Кратность = 1;
Часы.Формат = "ДФ=HH:mm";
Часы.Видимость = Истина;
Часы.ОтображатьПериодическиеМетки = Истина;
Часы.ЦветЛиний = Новый Цвет(220, 225, 230);
Часы.ЦветТекста = Новый Цвет(35, 45, 55);
Часы.ЦветФона = Новый Цвет(240, 245, 250);
Прием = План.Элементы.Добавить(Дата(2026, 9, 15, 9, 0, 0), Дата(2026, 9, 15, 10, 0, 0));
Прием.Значение = "training-receipt";
Прием.Текст = "Учебный приём — 09:00–10:00";
Прием.Подсказка = "Вымышленное событие. Только память формы.";
Прием.ЦветФона = Новый Цвет(210, 235, 255);
Прием.ЦветТекста = Новый Цвет(25, 70, 115);
Прием.ЦветРамки = Новый Цвет(80, 140, 195);
Прием.Шрифт = Новый Шрифт("Arial", 10);
Прием.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
Разбор = План.Элементы.Добавить(Дата(2026, 9, 15, 11, 0, 0), Дата(2026, 9, 15, 12, 0, 0));
Разбор.Значение = "training-review";
Разбор.Текст = "Учебный разбор — 11:00–12:00";
Разбор.ЦветФона = Новый Цвет(225, 245, 220);
Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
План.Элементы.Очистить();
План.НачалоПериодаОтображения = Дата(2026, 9, 15);
План.КонецПериодаОтображения = Дата(2026, 9, 23);
План.ТекущиеПериодыОтображения.Очистить();
План.ТекущиеПериодыОтображения.Добавить(План.НачалоПериодаОтображения, План.КонецПериодаОтображения);
Часы.Единица = ТипЕдиницыШкалыВремени.День;
Часы.Формат = "ДФ=dd.MM";
СобственноеСобытие = План.Элементы.Добавить(Дата(2026, 9, 15, 9, 0, 0), Дата(2026, 9, 15, 9, 0, 0) + 3600);
СобственноеСобытие.Значение = "guide-owned-recurrence";
СобственноеСобытие.Текст = "Повторяющаяся учебная встреча";
СобственноеСобытие.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
Расписание = Новый РасписаниеЭлементаПланировщика;
Расписание.ДниНедели.Очистить();
Расписание.Месяцы.Очистить();
Расписание.ПериодПовтораДней = 1;
Расписание.КоличествоПовторов = 3;
Расписание.ДатаКонца = Дата(2026, 9, 22, 23, 59, 59);
СобственноеСобытие.Расписание = Расписание;
ЭтаФорма.УчебныйПлан = План;
Поле = Элементы.Добавить("ПолеПлана", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеПланировщика;
Поле.ПутьКДанным = "УчебныйПлан";
Поле.Заголовок = "Учебный день 15.09.2026";
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
Поле.Заголовок = "Собственное повторяющееся событие";
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить собственное расписание";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Асинх Процедура УчебноеДействие(Команда)
Событие = УчебныйПлан.Элементы.Найти("guide-owned-recurrence");
Если Событие = Неопределено Тогда
ВызватьИсключение "Нет собственного повторяющегося события";
КонецЕсли;
Если Событие.Конец - Событие.Начало <> 3600 Тогда
ВызватьИсключение "Ожидалась собственная часовая встреча";
КонецЕсли;
Копия = КопироватьРасписаниеУрока(Событие.Расписание);
Диалог = Новый ДиалогРасписанияЭлементаПланировщика(Копия);
Сообщить(ТипЗнч(Диалог.Расписание) = Тип("РасписаниеЭлементаПланировщика"));
Результат = Ждать Диалог.ОткрытьАсинх();
Если Результат = Неопределено Тогда
Сообщить(Событие.Расписание.ПериодПовтораДней = 1 И Событие.Расписание.КоличествоПовторов = 3);
Сообщить("Отмена: собственное расписание не применялось заново");
Возврат;
КонецЕсли;
Если ТипЗнч(Результат) <> Тип("РасписаниеЭлементаПланировщика") Тогда
ВызватьИсключение "Диалог вернул неожиданный тип";
КонецЕсли;
Событие.Расписание = Результат;
Сообщить("ОК: собственное событие получило подтверждённое расписание");
КонецПроцедуры
&НаКлиенте
Функция КопироватьРасписаниеУрока(Источник)
Копия = Новый РасписаниеЭлементаПланировщика;
Копия.ДатаКонца = Источник.ДатаКонца;
Копия.ДеньВМесяце = Источник.ДеньВМесяце;
Копия.ДеньНеделиВМесяце = Источник.ДеньНеделиВМесяце;
Копия.КоличествоПовторов = Источник.КоличествоПовторов;
Копия.ПериодЛет = Источник.ПериодЛет;
Копия.ПериодМесяцев = Источник.ПериодМесяцев;
Копия.ПериодНедель = Источник.ПериодНедель;
Копия.ПериодПовтораДней = Источник.ПериодПовтораДней;
Копия.ДниНедели.Очистить();
Для Каждого День Из Источник.ДниНедели Цикл
Копия.ДниНедели.Добавить(День);
КонецЦикла;
Копия.Месяцы.Очистить();
Для Каждого Месяц Из Источник.Месяцы Цикл
Копия.Месяцы.Добавить(Месяц);
КонецЦикла;
Возврат Копия;
КонецФункцииРазбор по шагам
На клиенте находим собственное событие по ключу guide-owned-recurrence. Данные другого календаря не передаются.
КопироватьРасписаниеУрока создаёт новый объект и новые массивы дней/месяцев. Присваивание Копия=Источник не является таким копированием.
Диалог редактирует только копию. Исходное расписание применяется заново лишь при подтверждённом результате; отмена не читает и не применяет изменённую копию.
ДатаКонца и КоличествоПовторов — ограничения повторения. Диалог не сохраняет встречу, не создаёт регламентное задание и не пишет настройки пользователя.
ОткрытьАсинх возвращает Обещание. Ждать получает РасписаниеЭлементаПланировщика после ОК или Неопределено после отмены, не Булево.
Как проверить результат
Первый запуск: поменяйте правило в диалоге и Отмена. Сообщение подтверждает, что исходные период 1 и лимит 3 не изменились.
Второй запуск: поменяйте правило и ОК. Показано подтверждение применения к собственному событию; проверьте новый вид повторов в учебном плане.
Этот вывод не является результатом запуска на вашей платформе: контрольный опыт выполняется в отдельной учебной базе.
Ожидаемый результат
Есть полный асинхронный диалог с настоящим результатом и сохранением исходного правила при отмене.
На что обратить внимание
Если передать исходное расписание вместо копии, редактирование может затронуть объект, который вы хотели сохранить.
Не сравнивать асинхронный результат только с Истина: у него другой контракт.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.