Как програмно добавить 2 и более условий для условного оформления формы списка

1. Tym1980 28.01.20 12:01 Сейчас в теме
В коде было одно условие на "расскраску" таблицы на форме. Все работает нормально. Но появилась необходимость добавить второе условие. Тепер срабатывает только последнее. Что не так?

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

Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Art39_ 28.01.20 12:29 Сейчас в теме
Для использования нескольких условий, необходимо поместить их в группу, указав тип группы (И / ИЛИ).
Прикрепленные файлы:
Merkalov; smile6601; vadim.semyonov.rzn; +3 Ответить
3. Tym1980 28.01.20 13:14 Сейчас в теме
(2)
Что-то я сдела не так.


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


теперь срабатывает только второе условие?
4. TIGER1991 29.11.23 11:40 Сейчас в теме
У меня долго не срабатывало. В итоге получилось вот так, может кому пригодится:

УО = УсловноеОформление.Элементы.Добавить();
    УО.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.Сливовый);
    УО.Использование = Истина;
		
	ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
	ГруппаОтбора.Использование = Истина;
	
	ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТЧ + "." + ИмяРеквизита1 );
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбора.ПравоеЗначение = АНПартнер;
	ЭлементОтбора.Использование = Истина;
	
	ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТЧ + "." + ИмяРеквизита2);
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
	ЭлементОтбора.ПравоеЗначение = АНКоммент;
	ЭлементОтбора.Использование = Истина;
	
    ЦветПоле = УО.Поля.Элементы.Добавить();
    ЦветПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧ);
Показать


Раскрашиваю всю строку
shsforum; kembrik; SoftLeon; Ulia_Bat; psa247; GIZmo; Zaphod; user2020470; +8 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот