Имя: Пароль:
1C
1С v8
Скд, изменения цвета поля макета.
0 yyyuuu
 
07.03.19
09:42
Здравствуйте друзья. Прошу вашей помощи, в понимании как правильно сделать. У меня есть свой макет на СКД.
Если делаю условие при котором поле "Дельта" бы ставало красные, в "условном оформлении" ноль на массу.
Пишу программно
//*****
        НовыйЭлементУсловногоОформления = компоновщикнастроек.Настройки.УсловноеОформление.Элементы.Добавить();
    НовыйЭлементУсловногоОформления.Использование = Истина;
    ////Отбор    
    ЭлементОтбора = НовыйЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дельта");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    ЭлементОтбора.ПравоеЗначение = 0;
    ЭлементОтбора.Применение =
    НовыйЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
//******
Закрашивает, но приэтом цепляет все поля которые есть в отчете. А мне нужно только поле с параметром дельта.
1 yyyuuu
 
07.03.19
09:50
ЭлементОтбора.Применение =  - Лишнее)
2 yyyuuu
 
11.03.19
00:11
Никто не знает ребята?(
3 hhhh
 
11.03.19
00:25
(1) там же отдельно отбор, отдельно поля. В отбор не надо ничего фигачить. В отладчике посмотри структуру условного оформления.
4 hhhh
 
11.03.19
00:34
ЭлементУсловногоОформленияКомпоновкиДанных (DataCompositionConditionalAppearanceItem)
ЭлементУсловногоОформленияКомпоновкиДанных (DataCompositionConditionalAppearanceItem)
Свойства:

ИдентификаторПользовательскойНастройки (UserSettingID)
Использование (Use)
ИспользоватьВГруппировке (UseInGroup)
ИспользоватьВЗаголовке (UseInHeader)
ИспользоватьВЗаголовкеПолей (UseInFieldsHeader)
ИспользоватьВИерархическойГруппировке (UseInHierarchicalGroup)
ИспользоватьВОбщемИтоге (UseInOverall)
ИспользоватьВОтборе (UseInFilter)
ИспользоватьВПараметрах (UseInParameters)
Отбор (Filter)
Оформление (Appearance)
Поля (Fields)
Представление (Presentation)
ПредставлениеПользовательскойНастройки (UserSettingPresentation)
РежимОтображения (ViewMode)

Описание:

Элемент условного оформления.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data-composition-system/settings}. Имя типа XDTO: ConditionalAppearanceItem.
См. также:
5 toypaul
 
гуру
11.03.19
08:01
(2) у тебя задан только отбор и не заданы поля, к которым применяется оформления. см. Поля
6 yyyuuu
 
11.03.19
08:30
(3)(5)
Спасибо ребята, на мысли кое какие натолкнули, пытаюсь смотреть поля для отбора)
7 yyyuuu
 
11.03.19
08:30
Как получиться, скину готовый код. Может поможет кому
8 yyyuuu
 
11.03.19
10:06
ЭлементУсловногоОформления = компоновщикнастроек.Настройки.УсловноеОформление.Элементы.Добавить();
    ЭлементУсловногоОформления.Использование = Истина;
    
    ПолеЭлемента                = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле                  = Новый ПолеКомпоновкиДанных("Дельта");
    
    
    ОтборЭлемента =
        ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дельта");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    ОтборЭлемента.ПравоеЗначение = 0;    
    
    ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);

Пока на этом остановился но тоже ничего, может что упускаю?
9 yyyuuu
 
11.03.19
10:55
Вроде бы сделал ребята). Завтра опишу в чем было дело)
10 yyyuuu
 
11.03.19
10:58
Хотя тут и подробностей не надо. Все и так ясно.


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

Вся проблема была, что параметр написан с маленькой буквы "дельта". А Я писал с большой. Плюс добавил //**

    ПолеЭлемента       = НовыйЭлементУсловногоОформления.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("дельта");
//**
Заработала так как нужно. Кому понадобиться забирайте
11 yyyuuu
 
11.03.19
12:39
Решил не откладывать на завтра)