Имя: Пароль:
1C
1С v8
Условное оформление ТЗ на форме
0 Gera1t
 
18.08.23
09:23
Здравствуйте!
Управляемая форма.
Есть ТЗ как реквизит обработки.
Разместил ее на форме.
Заполняю ТЗ программно, вот код:
    УсловноеОформление.Элементы.Очистить();
    //ЭлементУсловноеОформление = Форма.УсловноеОформление.Элементы.Добавить();
    ЭлементУсловноеОформление = ЭтотОбъект.УсловноеОформление.Элементы.Добавить();    
    
    //делаем условие
    ЭлементОтбора = ЭлементУсловноеОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МатериалыСводноТребуетсяОбеспечить");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
    ЭлементОтбора.ПравоеЗначение = 0;
    ЭлементОтбора.Использование = Истина;
    
    //делаем поля
    Элемент = ЭлементУсловноеОформление.Поля.Элементы.Добавить();
    Элемент.Поле = Новый ПолеКомпоновкиДанных(ИмяТаблицы + "НомерСтроки");
    //Элемент.Поле = Новый ПолеКомпоновкиДанных("НомерСтроки");    
    Элемент.Использование = Истина;
    
    Элемент = ЭлементУсловноеОформление.Поля.Элементы.Добавить();
    Элемент.Поле = Новый ПолеКомпоновкиДанных(ИмяТаблицы + "Номенклатура");
    Элемент.Использование = Истина;    
    
    Элемент = ЭлементУсловноеОформление.Поля.Элементы.Добавить();
    Элемент.Поле = Новый ПолеКомпоновкиДанных(ИмяТаблицы + "ЕдиницаИзмерения");
    Элемент.Использование = Истина;    
    
    Элемент = ЭлементУсловноеОформление.Поля.Элементы.Добавить();
    Элемент.Поле = Новый ПолеКомпоновкиДанных(ИмяТаблицы + "КоличествоСостава");
    Элемент.Использование = Истина;  
    
    Элемент = ЭлементУсловноеОформление.Поля.Элементы.Добавить();
    Элемент.Поле = Новый ПолеКомпоновкиДанных(ИмяТаблицы + "ТекущийОстаток");
    Элемент.Использование = Истина;    
    
    Элемент = ЭлементУсловноеОформление.Поля.Элементы.Добавить();
    Элемент.Поле = Новый ПолеКомпоновкиДанных(ИмяТаблицы + "ТребуетсяОбеспечить");
    Элемент.Использование = Истина;        
    
    //делаем оформление
    ЭлементОформления = ЭлементУсловноеОформление.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветТекста"));
    Если ЭлементОформления <> Неопределено Тогда
        ЭлементОформления.Значение = Новый Цвет(255, 0, 0);
        ЭлементОформления.Использование = Истина;
    КонецЕсли;    


Условие такое, что если колонка ТЗ МатериалыСводноТребуетсяОбеспечить меньше 0, должно выделять красным. Но выделяет все красным, не пойму в чем дело.
1 Волшебник
 
18.08.23
09:38
Чёрный тоже надо присваивать
2 Gera1t
 
18.08.23
09:43
(1) Т.е. добавить новое условие если больше или равно 0, то цвет текста черный?
3 Gera1t
 
18.08.23
10:16
Дело было вот здесь:
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МатериалыСводноТребуетсяОбеспечить");
Так как это реквизит объекта нужно было писать вот так:
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.МатериалыСводно.ТребуетсяОбеспечить");