Может быть
1) добавить в ТЗ колонку НачалоДня(ВашаДата)
2) ВыгрузитьКолонку в массив
3) Скопировать в начало массива его первый элемент, удалить последний
4) Добавить в ТЗ еще одну колонку НачалоСледующегоДня
5) загрузить массив в колонку
6) ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТЗ1.НачалоДня");
ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТЗ1.НачалоСледующегоДня");
(3) пропуски дат возможны
(4) в голове крутится похожий вариант
сделать еще колонку ТЗ - булево - и на стадии заполнения таблицы. т.к таблица отсортирована по "ДатаВремя Возр" то Если меняется дата по сравнению с предыдущей строкой, то инвертировать булево.
потом
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно
ЭлементОтбора.ПравоеЗначение = Истина
"Между" можно организовать с помощью ГруппаЭлементовОтбораКомпоновкиДанных (вроде).
Но возможно проще всего будет использовать дополнительную колонку (невидимую) с датой начала дня и сравнение в списке.
В список добавляем даты которые нужно раскрасить.
запилил колонку чтоб не извращаться больше
ТЗ[0].ЦветСтроки = Истина;
Индекс = ТЗ.Количество () - 1;
Для Й = 1 По Индекс Цикл
Если (НачалоДня (ТЗ[Й].ДатаВремя)) = (НачалоДня (ТЗ[Й-1].ДатаВремя)) Тогда
ТЗ[Й].ЦветСтроки = ТЗ[Й-1].ЦветСтроки;
Иначе
ТЗ[Й].ЦветСтроки = НЕ ТЗ[Й-1].ЦветСтроки
КонецЕсли;
КонецЦикла;
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший