Имя: Пароль:
1C
 
Условное оформление ячейки табличной части
0 ZloyRafa
 
25.09.18
05:50
Утро доброе!

Имеется несколько колонок в ТЧ,у всех колонок тип справочник ссылка, при изменении каждой ячейки строки, требуется менять цвет в зависимости от значений справочникссылка.показатель(числовой тип), как сделать можете посоветовать?

Через условное оформление формы не получилось, т.к. в отбор не может вложено обратится к показателю ссылки.
1 PuhUfa
 
25.09.18
06:00
(0) делай программно
2 ZloyRafa
 
25.09.18
06:16
УсловноеОформление.Элементы.Очистить();
    
    Для СтрокаТЧ = 1 По Объект.Табель.Количество() Цикл
        Для ДеньОформления=1 По 31 Цикл
            НовыйЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
            ЭлементыПолейНовогоЭлемента     = НовыйЭлементУсловногоОформления.Поля.Элементы;
            ЭлементыОтбораНовогоЭлемента     = НовыйЭлементУсловногоОформления.Отбор.Элементы;

            НовоеПолеОформления = ЭлементыПолейНовогоЭлемента.Добавить();
            НовоеПолеОформления.Использование = Истина;
            НовоеПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТабельД"+ДеньОформления);
            
            ЭлементОтбора = ЭлементыОтбораНовогоЭлемента.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
            ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТабельД"+ДеньОформления+".СоответствиеЧасов");
            ЭлементОтбора.ПравоеЗначение = 0;
            ЭлементОтбора.Использование = Истина;
            НовыйЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый  Цвет(155,255,63));
        КонецЦикла;
    КонецЦикла;
3 ZloyRafa
 
25.09.18
06:17
Ошибки нет, но и отбора оформления нет
4 catena
 
25.09.18
06:27
(2)Зачем перебор строк-то?
5 seevkik
 
25.09.18
06:33
Попробуйте
НовоеПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТабельД"+ДеньОформления+."Имя")
6 ZloyRafa
 
25.09.18
06:33
У каждой ячейки свое индивидуальное оформления, от выбранного значения
7 ZloyRafa
 
25.09.18
07:10
(5) попробовал, не помогло, спасибо за вариант
8 Мимохожий Однако
 
25.09.18
07:19
Отладчиком смотрел?
9 Mort
 
25.09.18
07:22
Вытащи показатель в ТЧ на форму.
10 ZloyRafa
 
25.09.18
07:29
Код немного поправил.

Первый недочет:

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Табель["+СтрокаТЧ+"].Д"+ДеньОформления+".ссылка.СоответствиеЧасов");

Отбор по текущей строке сделан, но оформляемое поле мне кажется задано неверно, т.к.

НовоеПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Элементы.ТабельД"+ДеньОформления+"");

а обратиться к элементу формы по индексу не получается
11 catena
 
25.09.18
07:37
(10)Потому что условное оформление накладывается на список, а не на каждую строку в отдельности.
12 ZloyRafa
 
25.09.18
07:45
(11) Тогда остается актуальным вопрос, возможно ли сделать оформление такое ?
13 seevkik
 
25.09.18
08:04
(12) какое оформление? какая структура ТЧ? как справочникссылка.показатель относится к ТЧ? что вы хотите сделать?
14 dmt
 
25.09.18
08:43
попробуй

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