Имя: Пароль:
1C
 
разукрасить колонку ТЧ документа по условию
0 lamme
 
06.06.24
11:16
уф
Есть документ. реквизит документа ТЧ - который надо разукрасить
ИНФ_Черновик (ссылка на справочник)
у этого справочника - есть значение цвета.
Как разукрасить колонку ТЧ документа , согласно тому цвету - что указано у элемента справочника.


В документ на форме вывел реквизит
ИНФ_ЧерновикЦвет  - с типом цвет. Который заполняется из справочника.


Пытаюсь через условное оформление

и тут вообще не понимаю - как УО привязать к условиям.

    Элемент = УсловноеОформление.Элементы.Добавить();                                          
        ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
        ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ЗапасыИНФ_Черновик");
        Элемент.Использование = Истина;
        ПолеЭлемента.Использование = Истина;


Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ????????);
1 lamme
 
06.06.24
12:05
решено
2 lamme
 
06.06.24
12:05
код рабочий такой

для каждого Стр из Объект.Запасы цикл
    
       Элемент = УсловноеОформление.Элементы.Добавить();

        ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
        ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ЗапасыИНФ_Черновик");

        ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Запасы.ИНФ_Черновик");
        ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборЭлемента.ПравоеЗначение = Стр.ИНФ_Черновик;
        ОтборЭлемента.Использование = Истина;

        Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Стр.ИНФ_ЧерновикЦвет  );
    конеццикла;    



те создается дохрена условий для УО
3 lamme
 
06.06.24
12:12
после убирания кучки доп реквизитов получается так


для каждого Стр из Объект.Запасы цикл
           Элемент = УсловноеОформление.Элементы.Добавить();
        ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
        ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ЗапасыИНФ_Черновик");
        ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Запасы.ИНФ_Черновик");
        ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборЭлемента.ПравоеЗначение = Стр.ИНФ_Черновик;
        ОтборЭлемента.Использование = Истина;
        
        ЦветXML  = Стр.ИНФ_Черновик.ЦветXML;
        Если ПустаяСтрока(ЦветXML) Тогда
            ЦветЧерновика = Новый Цвет;
        Иначе
            ЦветЧерновика= СериализаторXDTO.XMLЗначение(Тип("Цвет"), ЦветXML);
        КонецЕсли;
        Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона",ЦветЧерновика);
    конеццикла;
4 trad
 
06.06.24
13:05
Количество элементов УО наверно можно подсократить с количества строк ТЧ до количества уникальных ИНФ_ЧерновикЦвет

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

как то так
5 lamme
 
06.06.24
13:07
4

да. согласен.
это я уже понял через минут 15 после того как отправил сюда
6 trad
 
06.06.24
13:14
И вообще, это печаль, что параметры оформления нельзя тянуть из полей компоновки ((

Как я понимаю подобный финт не провернуть с ДС
Ошибка? Это не ошибка, это системная функция.