0
qwerty072
24.12.10
✎
10:42
|
Если КолФакт = КолДок Тогда
Цвет = Новый Цвет(0, 255, 0);
ТоварыПриВыводеСтроки(ЭлементыФормы.Товары, ЭлементыФормы.Товары.ОформлениеСтроки(ТекСтрока), ТекСтрока);
Цвет = Неопределено;
Иначе //количество не сходится
Цвет = Новый Цвет(255, 0, 0);
ТоварыПриВыводеСтроки(ЭлементыФормы.Товары, ЭлементыФормы.Товары.ОформлениеСтроки(ТекСтрока), ТекСтрока);
Цвет = Неопределено;
ТекСтрока.Количество = КолФакт;
КонецЕсли;
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Если Цвет <> Неопределено Тогда
ОформлениеСтроки.ЦветФона = Цвет;
Иначе
Если ОформлениеСтроки.ЦветФона <> Новый Цвет(255, 0, 0) ИЛИ ОформлениеСтроки.ЦветФона <> Новый Цвет(0, 255, 0) Тогда
ОформлениеСтроки.ЦветФона = Новый Цвет(255, 255, 255);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
в переменной ТекСтрока хранится текущая строка табличной части,когда количество сходится то в зеленый цвет окрашивается только нужная строка,если количество не сходится то окрашивается вся ТЧ,если убрать
строчку ТекСтрока.Количество = КолФакт; то всё нормально,окрашивается нужная строка,т.е. ТекСтрока.Количество = КолФакт; делает обращение ко всей ТЧ и окрашивает её всю по этому,правил процедуру ТоварыПриВыводеСтроки всяко разно, но никак не получается,подскажите как можно поправить
|
|
1
Dmitrii
гуру
24.12.10
✎
10:52
|
(0) Бредятина редкостная. Условия надо проверять в процедуре ТоварыПриВыводеСтроки, а не где-то хрен знает где откуда потом вызываешь ПриВыводеСтроки. Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если Условиче1 Тогда ОформлениеСтроки.ЦветФона = Цвет1; ИначеЕсли Условие2 Тогда ОформлениеСтроки.ЦветФона = Цвет2; КонецЕсли; КонецПроцедуры и больше ни чего не надо.
|
|