Раскрашивание строк Табличного Поля #783716


#0 by ProChelny
Есть документ, в табличное поле которого заносится расписание проведения занятий по какому-либо курсу обучения. Табличное поле называется "Занятия". В табличном поле есть столбец "ДатаНачалаЗанятия", в нем содержится дата и время. Есть еще и столбец "датаокончания...", но сейчас он не важен. Если в курсе много занятий, то чисто зрительно становится неудобно их различать, поскольку бывает ситуация, что в один день пару занятий по часу, а в другой - одно на 7 часов. Поэтому попросили строки выделять разным цветом. Но свойство "ЧередованиеЦветовСтрок" не подходит, т.к. нужно цветом отделять друг от друга именно разные дни, а не просто разные строки. Я написал такой код: Ну и понятно, что она не отрабатывает как надо. При начальном открытии документа вроде всё выглядит идеально, но когда начинаешь прокручивать расписание вверх-вниз происходит ерунда. Допустим первое занятие 10го октября выделяется белым цветом, а второе и все последующие занятия в этот день уже Пшеничным. Пожалуйста помогите найти ошибку.
#1 by Альбатрос
Патамушта надо юзать ПриВыводеСтроки
#2 by CMblCL
#3 by CMblCL
Все правильно делает ТС, лучше вызвать процедуру 1 раз и обработать 3 строки, чем 3 раза вызвать процедуру для одной строки.
#4 by Lexey_
не вникал, но, видимо, со всеми строками надо сравнивать, а не только с отображаемыми?
#5 by CMblCL
Нужен какой-то единый признак для каждой строки и в зависимости от его значения устанавливать цвет. В я привел пример такого признака.
#6 by ProChelny
подскажите, используя ПриВыводеСтроки можно как-то получит предыдущую строку? Тогда бы я нашел её день и цвет - сравнил, сопоставил и покрасил.
#7 by ProChelny
Про единый признак тоже думал, но вариант из не подходит: к примеру занятия идут только по четным дням (Вт, Чт, Сб)- то остаток от деления даты на 2 для этих занятий будет одинаков. В итоге занятия одной недели окрасятся в один цвет, а занятия следующей недели - в другой. Вот в этом помощь и нужна мне. Обработчик какого события может отвечать за все строки Табличного Поля, а не только отображаемой части. Уже думал о варианте: изначально ничего не красить, а при повторном открытии брать из ТабличнуыеЧасти документа нужную мне - там присваивать цвета, и отдельно писать обработчики на добавление/удаление строк и на изменение дат в строке - но это очень много кода, а мне кажется что существует некое "красивое" решение. Может у кого-нибудь есть наводка.
#8 by Lexey_
вместо "Для Каждого офСтроки Из ОформленияСтрок Цикл" использовать "Для Каждого СтрокаТЧ Из ТабЧасть Цикл"
#9 by CMblCL
#10 by ProChelny
Спасибо огромное. Это то что нужно. А если вы научите меня еще и поиском пользоваться, я наверное стану самым счастливым человеком на свете. Не могу понять как я сам эту тему не нашел.
#11 by Lexey_
это все лень
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С