не применяется условное оформление для таблицы формы
УТ 11.4 обработка "ПодборТоваровВДокументПродажи"
Нужно раскрасить строку или ячейку строки таблицы Корзина по условию.
Добавляю программно условное оформление
Проблема в том, что условное оформление не отрабатывает.
Что делаю не так?
Нужно раскрасить строку или ячейку строки таблицы Корзина по условию.
Добавляю программно условное оформление
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.КорзинаНоменклатура.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Корзина.Номенклатура");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = МассивТоварыУсловияВхождения;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(0, 255, 0));
ПоказатьПроблема в том, что условное оформление не отрабатывает.
Что делаю не так?
По теме из базы знаний
- Условное оформление таблицы управляемой формы
- Условное оформление дерева значений на управляемой форме
- Варианты применения СКД вне отчетов в отраслевых конфигурациях
- Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)
- Условное оформление строк и полей Таблицы значений и Дерева значений (готовый код)
Найденные решения
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
У меня сделана своя процедура к-рая добавляет УО по заданной структуре, держи может пригодится:
СтруктураОформления = Новый Структура("ЦветФона", WebЦвета.Желтый);
МассивУсловия = Новый Массив;
МассивУсловия.Добавить(Новый Структура("УсловиеЛевое, ВидСравнения", "СтатьяРегл", ВидСравненияКомпоновкиДанных.НеЗаполнено));
МассивУсловия.Добавить(Новый Структура("УсловиеЛевое, УсловиеПравое", "ЭтоГруппа", Ложь));
МассивОформляемыхПолей = Новый Массив;
МассивОформляемыхПолей.Добавить("СтатьяРегл");
СтруктураУО = Новый Структура;
СтруктураУО.Вставить("СтруктураОформления" , СтруктураОформления);
СтруктураУО.Вставить("СтруктураУсловия" , МассивУсловия);
СтруктураУО.Вставить("МассивОформляемыхПолей", МассивОформляемыхПолей);
ДобавитьЭлементУсловногоОформления(Список.УсловноеОформление, "Отсутствует статья регл.", СтруктураУО);
// Процедура добавляет элемент условного оформления
//
// Параметры:
// УсловноеОформление - УсловноеОформлениеКомпановкиДанных
// Представление - Строка
// СтруктураУО - Структура ("СтруктураОформления, СтруктураУсловия, МассивОформляемыхПолей")
// Позиция - Число (Позиция, в которую необходимо добавить оформление.
// Если = Неопределено, тогда добавляется в конец)
//
Процедура ДобавитьЭлементУсловногоОформления(УсловноеОформление, Представление, СтруктураУО, Позиция = Неопределено) Экспорт
// Раскроем структуру УО
СтруктураОформления = СтруктураУО.СтруктураОформления;
СтруктураУсловия = СтруктураУО.СтруктураУсловия;
МассивОформляемыхПолей = СтруктураУО.МассивОформляемыхПолей;
// Новый элемент условного оформления
Если Позиция = Неопределено Тогда
ЭлементУО = УсловноеОформление.Элементы.Добавить();
Иначе
ЭлементУО = УсловноеОформление.Элементы.Вставить(Позиция);
КонецЕсли;
//ЭлементУО = УсловноеОформление.Элементы.Добавить();
ЭлементУО.Представление = Представление;
ЭлементУО.Использование = Истина;
// Оформление
Для каждого КлЗн Из СтруктураОформления Цикл
Параметр = КлЗн.Ключ;
Значение = КлЗн.Значение;
ЭлементУО.Оформление.УстановитьЗначениеПараметра(Параметр, Значение);
КонецЦикла;
// Условие
Если ТипЗнч(СтруктураУсловия) = Тип("Массив") Тогда
МассивУсловий = СтруктураУсловия;
Иначе
МассивУсловий = Новый Массив;
МассивУсловий.Добавить(СтруктураУсловия);
КонецЕсли;
Для Каждого СтрУсловия Из МассивУсловий Цикл
УсловиеУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
УсловиеУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(СтрУсловия.УсловиеЛевое);
Если СтрУсловия.Свойство("ВидСравнения") Тогда
// По умолчанию: ВидСравненияКомпоновкиДанных.Равно
УсловиеУО.ВидСравнения = СтрУсловия.ВидСравнения;
КонецЕсли;
Если СтрУсловия.Свойство("УсловиеПравое") Тогда
УсловиеУО.ПравоеЗначение = СтрУсловия.УсловиеПравое;
КонецЕсли;
КонецЦикла;
// Оформляемые поля
Для каждого ОфПоле Из МассивОформляемыхПолей Цикл
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ОфПоле);
КонецЦикла;
КонецПроцедуры // ДобавитьЭлементУсловногоОформления()
Показать
(10) это условие на условное оформление, уж простите за тавтологию
в (8) пример обработки мне давали, я по ней делал себе
т.е. условное оформление добавлялось программно, а предварительно для него рассчитывался массив элементов для применения
вот вместо массива необходимо передавать список элементов и все заработает
в (8) пример обработки мне давали, я по ней делал себе
т.е. условное оформление добавлялось программно, а предварительно для него рассчитывался массив элементов для применения
вот вместо массива необходимо передавать список элементов и все заработает
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)