Используется для доступа к свойствам периода отображения планировщика.
Полное описание, параметры и ограничения
ПериодОтображенияПланировщика (PlannerRepresentationPeriod)
ПериодОтображенияПланировщика (PlannerRepresentationPeriod)
Доступен, начиная с версии 8.3.6.
Свойства:
Конец (End)
Начало (Begin)
Описание:
Используется для доступа к свойствам периода отображения планировщика.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.3/data/planner}. Имя типа XDTO: PlannerRepresentationPeriod.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Показать два рабочих интервала дня и отличить их от внешних границ
Обед исключён из отображаемых интервалов: утро 09:00–12:00 и день 13:00–17:00. Границы всего дня остаются 09:00–17:00.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.
Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.
В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.
Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.
Данные существуют только в памяти формы. Записи календарей, документов, пользователей, оборудования и печать не используются.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
План = Новый Планировщик;
План.НачалоПериодаОтображения = Дата(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);
Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
ЭтаФорма.УчебныйПлан = План;
Поле = Элементы.Добавить("ПолеПлана", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеПланировщика;
Поле.ПутьКДанным = "УчебныйПлан";
Поле.Заголовок = "Учебный день 15.09.2026";
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Разобрать видимые интервалы";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Периоды = УчебныйПлан.ТекущиеПериодыОтображения;
Периоды.Очистить();
Утро = Периоды.Добавить(Дата(2026, 9, 15, 9), Дата(2026, 9, 15, 12));
День = Периоды.Вставить(1, Дата(2026, 9, 15, 13), Дата(2026, 9, 15, 17));
Сообщить(Периоды.Количество() = 2);
Сообщить(Периоды.Найти(Утро) = Утро);
Сообщить(Периоды.Индекс(День) = 1);
Проба = Периоды.Добавить(Дата(2026, 9, 15, 12), Дата(2026, 9, 15, 13));
Периоды.Сдвинуть(Проба, -1);
Сообщить(Периоды.Получить(1) = Проба);
Периоды.Удалить(Проба);
Сообщить(Периоды.Количество() = 2);
Сообщить(Утро.Конец - Утро.Начало = 3 * 3600);
Сообщить(День.Конец - День.Начало = 4 * 3600);
Сообщить(УчебныйПлан.НачалоПериодаОтображения = Утро.Начало);
Сообщить(УчебныйПлан.КонецПериодаОтображения = День.Конец);
КонецПроцедуры
Разбор по шагам
НачалоПериодаОтображения/КонецПериодаОтображения ограничивают навигацию, а ТекущиеПериодыОтображения выбирают видимые диапазоны внутри неё.
Сначала очищаем только периоды нового учебного плана, затем создаём утро и день.
Найти получает объект ПериодОтображенияПланировщика и сопоставляет его даты начала и конца, не строковый ключ события.
Пробный интервал обеда вставляется, перемещается и сразу удаляется; итоговая видимая выборка снова два периода.
Разность дат доказывает три часа утра и четыре часа дня. Никакие события не удалены.
Как проверить результат
Девять булевых проверок Истина.
Итоговые периоды 09:00–12:00 и 13:00–17:00, обед не входит ни в один.
Внешние границы дня и два исходных события сохранены.
Ожидаемый результат
Новичок различает допустимую навигацию, видимые интервалы и сами события календаря.
На что обратить внимание
Периоды не являются рабочим графиком сотрудника в регистрах.
Найти не принимает дату или строку: его параметр имеет специальный тип периода.
При пустой коллекции нет заданных видимых интервалов; в примере она заполняется до возврата управления интерфейсу.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.