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