Имя: Пароль:
1C
1С v8
Раскраска строк таблицы - УФ
0 Sh18
 
25.02.19
10:28
Есть табличное поле с колонкой Этикетка (не динамический список). Есть некий реквизит формы, список значений этикеток. Как покрасить строки, в которых Этикетка входит в список? В условном оформлении не могу выбрать правое значение ни из реквизитов формы, ни из параметров формы. Добавлять новую колонку - флаг цвета - в начальное табличное поле и перезаполнять поле при каждом изменении списка значений не хотелось бы...
Пичалька... (
1 singlych
 
25.02.19
10:33
На крестик нажми в правом значении.
2 Sh18
 
25.02.19
10:36
(1) Нажимал, ничего не происходит.
3 azt-yur
 
25.02.19
10:43
программно же можешь задать оформление. Вызывать при открытии и при изменении реквизита. Код что то вроде:

    УсловноеОформление.Элементы.Очистить();

    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Таблица.Поле"); // имя поля
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    ЭлементОтбора.ПравоеЗначение = Список;
    ЭлементОтбора.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
    // Создаем поля оформления
    ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
    ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Таблица");
    ПолеОформления.Использование = Истина;
4 Sh18
 
25.02.19
11:29
(3) Спасибо! Но...
- Связь есть?
- Есть! Но не работает...

То есть, оно ошибок не выдает, но строку не красит :( Похоже, у них с видом сравнения "ВСписке" недоработано. Может, в 8.3 уже, но у меня 8.2
5 aleks_default
 
25.02.19
11:35
сам ты недоработанный, все там работает, ищи ошибку
6 Sh18
 
25.02.19
11:38
(5) Вопрос в том и был, как оно работает?
7 aleks_default
 
25.02.19
11:44
при изменении реквизита это вставил?
8 aleks_default
 
25.02.19
11:57
в названиях полей нигде не ошибся?
9 DrWatson
 
25.02.19
12:12
(3) Попробуй массив вместо списка.
10 Sh18
 
25.02.19
12:13
Вызывается при завершении редактирования таблицы ПричиныОтклонений (откуда берется тот список этикеток)

&НаСервере
Процедура ЗаполнитьСписокЭтикетокВОтклонении()
    Тбл = Объект.ПричиныОтклонений.Выгрузить(,"Этикетка");
    Тбл.Свернуть("Этикетка");
    ЭтикеткиВОтклонении.Очистить();
    ЭтикеткиВОтклонении.ЗагрузитьЗначения(Тбл.ВыгрузитьКолонку("Этикетка"));
    
    ЭлементОформления = УсловноеОформление.Элементы.Получить(0);
        ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Получить(0);
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Этикетки.Этикетка");// имя поля

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

        ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
        ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Этикетки");
        ПолеОформления.Использование = Истина;
КонецПроцедуры
11 Sh18
 
25.02.19
12:14
Нулевой элемент оформления - это то, что надо. Куда я не могу вставить в списке + внешний список. Впрочем, тут все заполняется по новой
12 aleks_default
 
25.02.19
12:15
Да там скорее всего просто в имени поля надо писать не "Таблица" а "Объект.Таблица"
13 Sh18
 
25.02.19
16:02
Si, sognore! Tante grazie! :)
14 aleks_default
 
25.02.19
16:08
(13)опять ошибся?