Имя: Пароль:
1C
 
Не работает отбор в элементе условного оформления
0 Dragonofdwarfs
 
19.08.24
15:06
Доброго времени суток, коллеги!
Такая задача: нужно выделять строки где срок действия заканчивается(за 3 месяца) или уже просрочен, срок действия - 5 лет с момента регистрации(эта дата-реквизит Номенклатуры)

Пишу такой код:

&НаСервере
Процедура УстановитьПодсветкуИстекающегоСрокаДействияРУ(ЭтаФорма) 
		
	ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Использование = Истина;
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
	
	ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Номенклатура.ик_ДатаРУ");
	ЭлементУсловия.ПравоеЗначение = ДобавитьМесяц(ТекущаяДата(), -57);
	ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;   
	ЭлементУсловия.Использование = Истина;
	
	ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Элементы.Товары.ПодчиненныеЭлементы.ТоварыСрокДействияРУ.Имя);
		
КонецПроцедуры


В результате выделяется весь столбец, видел похожий топик на форуме, но ответа там я так и не нашёл. Пробовал вместо ПравогоЗначения вставить нулевую дату, чтобы явно не было таких строк, результат тот же, что весьма странно
1 Волшебник
 
19.08.24
15:06
-57 месяцев? что это?
2 toypaul
 
19.08.24
15:31
по-моему в поле должно стоять имя таблицы чтобы строку выделить
3 toypaul
 
19.08.24
15:33
надо сначала интерактивно сделать настройку. потом есть обработка, которая генерит код для УО.
4 mikecool
 
19.08.24
16:30
(2) +1
5 mikecool
 
19.08.24
16:31
+4 вернее, не имя таблицы, а имя поля, как оно есть в доступных полях