|   |   | 
| 
 | Условное оформление в списке | ☑ | ||
|---|---|---|---|---|
| 0
    
        Prog_man гуру 18.06.24✎ 14:53 | 
        Добрый день
 подскажите как настроить условное оформление в списке на два условия | |||
| 1
    
        Prog_man гуру 18.06.24✎ 14:53 | 
        УО = УсловноеОформление.Элементы.Добавить();
 УО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",WebЦвета.Красный); УО.Использование = Истина; ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ГруппаОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ; ЭлементОтбора.Использование = Истина; ЦветПоле = УО.Поля.Элементы.Добавить(); ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Список.Контрагент"); | |||
| 2
    
        Prog_man гуру 18.06.24✎ 14:54 | 
        вот такой код не работает, что поправить?     | |||
| 3
    
        Мультук гуру 18.06.24✎ 15:18 | 
        (0) Имхо точечка лишняя
 ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("СписокКонтрагент"); | |||
| 4
    
        Prog_man гуру 18.06.24✎ 15:26 | 
        (3) так тоже не работает(     | |||
| 5
    
        spiller26 18.06.24✎ 15:34 | 
        (4)     ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("СписокКонтрагент");
 Только что проверил. | |||
| 6
    
        Prog_man гуру 18.06.24✎ 15:37 | 
        (5) ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент");
 вот так работает на первое условие, второе игнорирует. | |||
| 7
    
        spiller26 18.06.24✎ 15:37 | 
        Первое через форму создано для проверки, второе программно.     
 | |||
| 8
    
        Prog_man гуру 18.06.24✎ 15:44 | 
        (7) спорить не буду, у меня оформление работает
 ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент"); но проблема не в этом, как сделать чтобы второе условие срабатывало ? вот тут ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); | |||
| 9
    
        spiller26 18.06.24✎ 15:48 | 
        (8) мНачДатаЭДО, оно всегда будет заполнено, если это дата.     | |||
| 10
    
        Prog_man гуру 18.06.24✎ 15:50 | 
        второе тоже работает но как то не правильно, мНачДатаЭДО = 01.04.2024. а условное оформление срабатывает с начала года     | |||
| 11
    
        Prog_man гуру 18.06.24✎ 15:52 | 
        (9) вот и нет, за прошлый года УО не срабатывает     | |||
| 12
    
        dmt 18.06.24✎ 15:58 | 
        (10) возможно, твое УО не единственное     | |||
| 13
    
        Prog_man гуру 18.06.24✎ 16:06 | 
        (12) полный код процедуры
 &НаСервере Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); // Номер СФ/УПД ЭлементУО = УсловноеОформление.Элементы.Добавить(); КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(ЭлементУО.Поля, "НомерСФУПД"); ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор, "Список.НомерСФУПД", ВидСравненияКомпоновкиДанных.НеЗаполнено); ЭлементУО.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '--'")); //Вставка УО = УсловноеОформление.Элементы.Добавить(); УО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",WebЦвета.Красный); УО.Использование = Истина; ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ГруппаОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора.Использование = Истина; ЦветПоле = УО.Поля.Элементы.Добавить(); ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент"); //КонецВставки КонецПроцедуры | |||
| 14
    
        spiller26 18.06.24✎ 16:08 | 
        (11) Всё срабатывает, что не так?
 по условию как вы хотели. 1. мНачДатаЭДО должно быть заполнено 2. Дата >= мНачДатаЭДО 
 | |||
| 15
    
        Prog_man гуру 18.06.24✎ 16:09 | 
        благодарю за советы, разобрался, это у меня не правильно дата заполнена была. сейчас все работает     | |||
| 16
    
        spiller26 18.06.24✎ 16:11 | 
        (15)
 &НаСервере Процедура КомандаТестНаСервере() УО = УсловноеОформление.Элементы.Добавить(); УО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",WebЦвета.Зеленый); УО.Использование = Истина; ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ГруппаОтбора.Использование = Истина; ЭлементОтбора1 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата"); ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора1.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора1.Использование = Истина; ЭлементОтбора2 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; //ЭлементОтбора2.ПравоеЗначение = Истина; ЭлементОтбора2.Использование = Истина; ЦветПоле = УО.Поля.Элементы.Добавить(); ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("СписокКонтрагент"); КонецПроцедуры | |||
| 17
    
        dmt 18.06.24✎ 16:11 | 
        (13) и о чем это говорит? надо в отладчике после открытия формы смотреть УО формы и УО списка     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |