Программное раскрашивание ячейки табличной части документа

Версия для печатиPDF-версия

Платформа:

Столкнулся с тем, что надо разукрашивать ячейки столбца номенклатуры в ТЧ документа в зависимости от значения дополнительного реквизита. Вроде все делаю правильно (по примеру что на шел на инфостарте), но почему-то не раскрашивается... Подскажите пожалуйста, что я неправильно сделал...

Вот сами процедуры и функции:

&НаСервере
 
Процедура ОформлениеТЧ()
ДанныеФормы = ЭтаФорма.Объект.Товары;
 
Для Каждого Строка из ДанныеФормы Цикл
 
СправочныйЦветФонаЯчейкиВ_ТЧ = ЦветНаСервере(Строка.Номенклатура);
Стр = СтрЗаменить(СправочныйЦветФонаЯчейкиВ_ТЧ,",",Символы.ПС);
 
Если ЗначениеЗаполнено(СправочныйЦветФонаЯчейкиВ_ТЧ) Тогда
X = Число(СтрПолучитьСтроку(Стр,1));
Y = Число(СтрПолучитьСтроку(Стр,2));
Z = Число(СтрПолучитьСтроку(Стр,3));
 
ЦветЯчейкиВ_ТЧ   = Новый Цвет(X,Y,Z);
//Элемент.ЦветФона = ЦветЯчейкиВ_ТЧ;
 
ЭлементУсловногоОформления   = УсловноеОформление.Элементы.Добавить();
ОформляемоеПоле              = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле         = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементОтбора                = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Номенклатура");
ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Строка.Номенклатура;
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветЯчейкиВ_ТЧ);
КонецЕсли;
КонецЦикла;
 
КонецПроцедуры
 
Процедура ТоварыНоменклатураПриИзменении()
       ОформлениеТЧ();
КонецПроцедуры

Это функция получения дополнительного реквизита

&НаСервере
Функция ЦветНаСервере(НоменНаим)
МассивРеквизитов = Новый Массив;
Номен            = Справочники.Номенклатура.НайтиПоНаименованию(НоменНаим);
МассивРеквизитов.Добавить(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет группы (Справочник ""Номенклатура"" (Общие))"));
ТЗРекв = УправлениеСвойствами.ПолучитьЗначенияСвойств(Номен,Истина,Ложь,МассивРеквизитов);
Возврат ?(ТЗРекв.Количество()>0,ТЗРекв[0].Значение,"");
КонецФункции
 

Зачем искать номенклатуру в справочнике по наименованию? В функцию ЦветНаСервере и так передаётся ссылка на номенклатуру. После такого поиска в переменной Номен всегда будет пустая ссылка. Может в этом проблема?

Вряд ли. Эта функцией я пользуюсь, чтобы цвет из доп.реквизитов номенклатуры вытащить. Он кстати находит. Но ячейку не раскрашивает(

А если Использование оформляемого поля включить?

ОформляемоеПоле.Использование = Истина;

Сейчас проверим!

Не прокатило. Вычеркиваем)