Консультация № 121546
04.02.2008, 09:18
0.00 руб.
0 3 3
Здравствуйте эксперты. У меня вопрос по 8.0.
Дело в том, что я щас пытаюсь визуально сделать более удобным список выводимых записей в табличном поле (записи выводятся по данным о расходе горючего для определенного автомобиля на определенный день за выбранный период). Для машин, у которых по одному виду топлива я воспользовалась ЧередованиемЦветаСтрок. Получилось очень зрительно удобно.
Но также есть две машины, по которым выводится по три записи на один день (т.е. документ один, а записей в нем три). И тут получается большое загромождение данными. ЧередованиеЦветаСтрок не помогает,т.к. разделяет цветом строки только через одну, а в моем случае нужно три через три.
Написала такой код как в приложении. При заполнении табличного поля - все идеально закрашивает, а стоит прокрутить скроллингом записи от начала до конца как все снова становится белым. Что это? И как с этим бороться?

Приложение:
//Задала глобальные переменныеПерем х;Перем у;Перем з;//В процедуре заполнения присвоила начальные значениях = 1;у = 2;з = 3;//Далее воспользовалась обработчиком события ПриПолученииДанных для табличного поля ТаблицаПутевыхЛистовПроцедура ТаблицаПутевыхЛистовПриПолученииДанных(Элемент, ОформленияСтрок)Для каждого Оформлениестроки из ОформленияСтрок цикл Если Автотранспорт = Справочники.Автотранспорт.НайтиПоКоду("22") ИЛИ Автотранспорт = Справочники.Автотранспорт.НайтиПоКоду("27") Тогда Если ОформлениеСтроки.Ячейки.НомерСтроки.Значение = х Тогда ОформлениеСтроки.Ячейки.НомерСтроки.ЦветФона= WEBЦвета.Кремовый; х = х+6; ИначеЕсли ОформлениеСтроки.Ячейки.НомерСтроки.Значение = у Тогда ОформлениеСтроки.Ячейки.НомерСтроки.ЦветФона= WEBЦвета.Кремовый; у = у+6; ИначеЕсли ОформлениеСтроки.Ячейки.НомерСтроки.Значение = з Тогда ОформлениеСтроки.Ячейки.НомерСтроки.ЦветФона= WEBЦвета.Кремовый; з = з+6; КонецЕсли;КонецЕсли; КонецЦикла;КонецПроцедуры//В данном коде закрашивала ячейку номера строки, пока эксперементирую на ней

Обсуждение

Неизвестный
04.02.2008, 09:33
общий
это ответ
Здравствуйте, 2kasandra!
Дело в том, что обработчик события ПриПолученииДанных вызывается только один раз при получении данных из таблицы источника. В следствии чего при прокрутке срабатывает обработчик ПриВыводеСтроки и оформление теряет актуальность. Рекомендую воспользоваться именно им так как он он будет отслеживать все ваши движения и пере закрашивать видимую область табличного поля.
При проблеме с написанием кода обращайтесь.
Удачи!
Неизвестный
04.02.2008, 10:42
общий
это ответ
Здравствуйте, 2kasandra!
1. Попробуйте сделать вывод в ПолеТабличногоДокумента - для каждой строки(первая вторая, третья) можно сделать отдельный макет со своим цветом.
2. Если уж хочется это делать в табличном поле, сделайте в нем невидимый реквизит с номером записи для данной машины, и в зависимости от значения этого реквизита для данной строки - задавайте цвет.
3. А еще можно сделать одно табличное поле с документом - а рядом еще одно со списком строк для этого документа.
Неизвестный
04.02.2008, 11:32
общий
это ответ
Здравствуйте, 2kasandra!
Попробуйте из кода убрать
".Ячейки.НомерСтроки.", должно помочь.
Форма ответа