Создаём и переставляем два фона, удаляем пробный и возвращаем один час обеда. Поиск использует Цвет, а не строку или дату.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 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, 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)) = Неопределено);
КонецПроцедуры
Разбор по шагам
Очищаем фон лишь нового учебного плана. События находятся в другой коллекции и не затрагиваются.
Добавить и Вставить требуют даты начала/конца. Цвет задаём уже возвращённому интервалу.
Сдвинуть меняет позицию, не время. После перестановки Обед находится в позиции 0.
Найти принимает Цвет и сопоставляет свойство Цвет. Новый Цвет с теми же RGB подходит для такого поиска.
Удаляем только серую пробу; финальный фон один, 12:00–13:00.
Как проверить результат
Все пять проверок Истина.
Видна только жёлтая полоса обеда; оба исходных события сохранены.
Повторное нажатие сохраняет один фон, не накапливает полосы.
Ожидаемый результат
Разобрана вся коллекция фоновых интервалов с правильным типом аргумента поиска.
На что обратить внимание
Метод Найти с именем lunch здесь неверен: ключом служит Цвет.
При совпадении цветов нескольких фонов понадобится иной способ сопоставления, например собственная таблица диапазонов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.