ИнтервалФонаПланировщика

Типы · PlannerBackgroundInterval

Объект описывает интервал фона планировщика.

Полное описание, параметры и ограничения

ИнтервалФонаПланировщика (PlannerBackgroundInterval)

ИнтервалФонаПланировщика (PlannerBackgroundInterval)

Доступен, начиная с версии 8.3.6.

Свойства:
ЗначенияИзмерений (DimensionValues)
Конец (End)
Метки (Labels)
Начало (Begin)
Рамка (Border)
Цвет (Color)
ЦветРамки (BorderColor)

Описание:

Объект описывает интервал фона планировщика.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.3/data/planner}. Имя типа XDTO: PlannerBackgroundInterval.

Использование в версии:

Доступен, начиная с версии 8.3.6.

Методическая информация

Практические примеры

Выделить обед фоном и добавить выровненную подпись

Фоновый интервал не событие: он отмечает 12:00–13:00, но сам по себе не запрещает создавать встречи в это время.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.

  2. Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.

  4. Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.

  5. Данные существуют только в памяти формы. Записи календарей, документов, пользователей, оборудования и печать не используются.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    План = Новый Планировщик;
    План.НачалоПериодаОтображения = Дата(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, 12), Дата(2026, 9, 15, 13));
    Обед.Цвет = Новый Цвет(250, 240, 205);
    Обед.ЦветРамки = Новый Цвет(180, 155, 85);
    Обед.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Метка = Обед.Метки.Добавить("lunch", "Учебный перерыв");
    Метка.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
    Метка.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
    Метка.ЦветТекста = Новый Цвет(100, 75, 25);
    Метка.Шрифт = Новый Шрифт("Arial", 10, Истина);

    ЭтаФорма.УчебныйПлан = План;
    Поле = Элементы.Добавить("ПолеПлана", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеПланировщика;
    Поле.ПутьКДанным = "УчебныйПлан";
    Поле.Заголовок = "Учебный день 15.09.2026";
    Поле.РазрешитьНачалоПеретаскивания = Ложь;
    Поле.РазрешитьПеретаскивание = Ложь;
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;


    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить фон обеда";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Фоны = УчебныйПлан.ИнтервалыФона;
    Обед = Фоны.Найти(Новый Цвет(250, 240, 205));
    Если Обед = Неопределено Тогда
        ВызватьИсключение "Учебный фон не найден по цвету";
    КонецЕсли;
    Сообщить(Фоны.Количество() = 1);
    Сообщить(Обед.Начало = Дата(2026, 9, 15, 12));
    Сообщить(Обед.Конец - Обед.Начало = 3600);
    Метка = Обед.Метки.Найти("lunch");
    Сообщить(Метка.Значение = "lunch");
    Сообщить(УчебныйПлан.Элементы.Количество() = 2);
КонецПроцедуры

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

  1. ИнтервалыФона хранит фон отдельно от Элементы. Новый фон не увеличивает число событий.

  2. Начало/Конец относятся к часу обеда. Цвет заполняем явно, потому что Найти фоновой коллекции ищет именно по цвету.

  3. Рамка здесь тип Рамка, а не Линия табличного документа.

  4. Добавить метку принимает собственный ключ lunch и её подпись. Найти меток, наоборот, ищет ключ.

  5. Вертикальное/ГоризонтальноеПоложение центрируют подпись внутри интервала. Фон — оформление, а не правило доступности.

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

  1. Видна выделенная полоса 12:00–13:00 с подписью Учебный перерыв.

  2. Все пять булевых проверок Истина; событий осталось два.

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

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

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

  1. Два фона одинакового цвета нельзя надёжно различать по Найти: нужен собственный учёт интервалов.

  2. Метка создаётся через коллекцию, её текст не является экспортированным свойством этого типа.

  3. Для запрета встречи в обед требуется отдельная бизнес-проверка, которой сам цвет не заменяет.

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

Проверить все операции фоновых интервалов на учебном перерыве

Создаём и переставляем два фона, удаляем пробный и возвращаем один час обеда. Поиск использует Цвет, а не строку или дату.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.

  2. Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.

  4. Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.

  5. Данные существуют только в памяти формы. Записи календарей, документов, пользователей, оборудования и печать не используются.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    План = Новый Планировщик;
    План.НачалоПериодаОтображения = Дата(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, 12), Дата(2026, 9, 15, 13));
    Обед.Цвет = Новый Цвет(250, 240, 205);
    Проба = Фоны.Вставить(0, Дата(2026, 9, 15, 16), Дата(2026, 9, 15, 16, 15));
    Проба.Цвет = Новый Цвет(225, 230, 235);
    Сообщить(Фоны.Индекс(Обед) = 1);
    Фоны.Сдвинуть(Проба, 1);
    Сообщить(Фоны.Получить(0) = Обед);
    Сообщить(Фоны.Найти(Новый Цвет(250, 240, 205)) = Обед);
    Фоны.Удалить(Проба);
    Сообщить(Фоны.Количество() = 1);
    Сообщить(Фоны.Найти(Новый Цвет(225, 230, 235)) = Неопределено);
КонецПроцедуры

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

  1. Очищаем фон лишь нового учебного плана. События находятся в другой коллекции и не затрагиваются.

  2. Добавить и Вставить требуют даты начала/конца. Цвет задаём уже возвращённому интервалу.

  3. Сдвинуть меняет позицию, не время. После перестановки Обед находится в позиции 0.

  4. Найти принимает Цвет и сопоставляет свойство Цвет. Новый Цвет с теми же RGB подходит для такого поиска.

  5. Удаляем только серую пробу; финальный фон один, 12:00–13:00.

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

  1. Все пять проверок Истина.

  2. Видна только жёлтая полоса обеда; оба исходных события сохранены.

  3. Повторное нажатие сохраняет один фон, не накапливает полосы.

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

Разобрана вся коллекция фоновых интервалов с правильным типом аргумента поиска.

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

  1. Метод Найти с именем lunch здесь неверен: ключом служит Цвет.

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

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

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

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

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

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