Вход | Регистрация


Управляемые формы. ИИзменить цвет строки программно

Управляемые формы. ИИзменить цвет строки программно
Я
   Dimarik_1
 
14.07.18 - 10:15
Как можно программно изменить цвет конкретной строки в табличной части?
не надо, если сумма одной колонки отличается от другой, сделать строку в табличной части документа красной
 
 
   sechs
 
1 - 14.07.18 - 10:24
Условным оформлением
   Фрэнки
 
2 - 14.07.18 - 10:28
Способ решения будет зависеть от способа заполнения данных НА ФОРМЕ табличной части. Капс поставлен умышленно.
   Dimarik_1
 
3 - 14.07.18 - 10:33
НоваяСтрока    = Форма.УсловноеОформление.Элементы.Добавить();
    //НоваяСтрока.Отбор = Новый ОтборКомпоновкиДанных;

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



Не заработало
   sechs
 
4 - 14.07.18 - 10:40
.Использование
   Dimarik_1
 
5 - 14.07.18 - 10:45
НоваяСтрока    = Форма.УсловноеОформление.Элементы.Добавить();
        НоваяСтрока.Использование = Истина;
    //НоваяСтрока.Отбор = Новый ОтборКомпоновкиДанных;

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

    //НовоеПоле.Использование = Истина;

    //НовоеПоле = Новый ПолеКомпоновкиДанных("рфсОплатаПоРеализациямОбъектРасчетов");

    //

    ЦветФона = НоваяСтрока.Оформление.Элементы.Найти("ЦветФона");
    ЦветФона.Значение = WebЦвета.Красный;
    ЦветФона.Использование = Истина;



Для эксперимента попробовал поля добавить. не помогло
   Фрэнки
 
6 - 14.07.18 - 10:52
(5) куда это все вставлено? виды событий какие, контексты какие.

Вообще, совет может не совсем в кассу, но если очень хочется играть с цветом ячеек и т.п., то гораздо эффектней сделать вывод на форме в поле табличного документа, а не пытаться юзать раскраску полей таблицы значений, либо дерева значений.

Кстати, можно заменить поле с таблицей значений на поле динамического списка, отработать все получение данных запросом и в этом же варианте установить условные оформления строк, практически на стандартном СКД
   Dimarik_1
 
7 - 14.07.18 - 10:54
(6) я программно создал элемент формы и заполнил его. Сейчас потребовалось сделать условное оформление
   Фрэнки
 
8 - 14.07.18 - 11:00
(7) понятно.

Имхо. Если время поджимает, то проще сделать этот элемент формы средствами конфигуратора и на готовом элементе там же определить условные оформления.

Как сделать полностью программно - не дошли руки к таким разборам.
   Dimarik_1
 
9 - 14.07.18 - 12:26
Для упрощения примера, решил программно оформить ТЧ Товары в документе реализация в УТ 11

Не заработало

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

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

    ЦветФона = НоваяСтрока.Оформление.Элементы.Найти("ЦветФона");
    ЦветФона.Значение = WebЦвета.Красный;
    ЦветФона.Использование = Истина;

    
Конецпроцедуры

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует