не применяется условное оформление для таблицы формы

1. VictorRGB2 13 11.06.19 10:35 Сейчас в теме
УТ 11.4 обработка "ПодборТоваровВДокументПродажи"

Нужно раскрасить строку или ячейку строки таблицы Корзина по условию.

Добавляю программно условное оформление

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

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.КорзинаНоменклатура.Имя);

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(0, 255, 0));
Показать


Проблема в том, что условное оформление не отрабатывает.

Что делаю не так?
По теме из базы знаний
Найденные решения
8. antz 11.06.19 11:31 Сейчас в теме
(4) А, невнимательно смотрю, не выспался) Короче, с количеством у меня работает. Может, с МассивТоварыУсловияВхождения что не так? Там не группы случаем?
Прикрепленные файлы:
УО.epf
VictorRGB2; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 129 11.06.19 10:46 Сейчас в теме
У меня сделана своя процедура к-рая добавляет УО по заданной структуре, держи может пригодится:
СтруктураОформления = Новый Структура("ЦветФона", WebЦвета.Желтый);
МассивУсловия 	= Новый Массив;
МассивУсловия.Добавить(Новый Структура("УсловиеЛевое, ВидСравнения", "СтатьяРегл", ВидСравненияКомпоновкиДанных.НеЗаполнено));
МассивУсловия.Добавить(Новый Структура("УсловиеЛевое, УсловиеПравое", "ЭтоГруппа", Ложь));
МассивОформляемыхПолей = Новый Массив;
МассивОформляемыхПолей.Добавить("СтатьяРегл");
СтруктураУО = Новый Структура;
СтруктураУО.Вставить("СтруктураОформления"   , СтруктураОформления);
СтруктураУО.Вставить("СтруктураУсловия"      , МассивУсловия);
СтруктураУО.Вставить("МассивОформляемыхПолей", МассивОформляемыхПолей);
ДобавитьЭлементУсловногоОформления(Список.УсловноеОформление, "Отсутствует статья регл.", СтруктураУО);

// Процедура добавляет элемент условного оформления
//
// Параметры:
//  УсловноеОформление  - УсловноеОформлениеКомпановкиДанных
//  Представление  		- Строка
//  СтруктураУО 		- Структура ("СтруктураОформления, СтруктураУсловия, МассивОформляемыхПолей")
//  Позиция				- Число (Позиция, в которую необходимо добавить оформление. 
//							Если = Неопределено, тогда добавляется в конец)
//
Процедура ДобавитьЭлементУсловногоОформления(УсловноеОформление, Представление, СтруктураУО, Позиция = Неопределено) Экспорт

	// Раскроем структуру УО
	СтруктураОформления 	= СтруктураУО.СтруктураОформления;
	СтруктураУсловия 		= СтруктураУО.СтруктураУсловия;
	МассивОформляемыхПолей 	= СтруктураУО.МассивОформляемыхПолей;
	
	// Новый элемент условного оформления
	Если Позиция = Неопределено Тогда
	 	ЭлементУО = УсловноеОформление.Элементы.Добавить();
	Иначе	
	    ЭлементУО = УсловноеОформление.Элементы.Вставить(Позиция);
	КонецЕсли;
	//ЭлементУО = УсловноеОформление.Элементы.Добавить();
	ЭлементУО.Представление = Представление;
	ЭлементУО.Использование = Истина;
	
	// Оформление 	
	Для каждого КлЗн Из СтруктураОформления Цикл
		Параметр = КлЗн.Ключ;
		Значение = КлЗн.Значение;
		ЭлементУО.Оформление.УстановитьЗначениеПараметра(Параметр, Значение);
	КонецЦикла;	
	
	// Условие
	Если ТипЗнч(СтруктураУсловия) = Тип("Массив") Тогда
		МассивУсловий = СтруктураУсловия;
	Иначе
		МассивУсловий = Новый Массив;
		МассивУсловий.Добавить(СтруктураУсловия);
	КонецЕсли;
		
	Для Каждого СтрУсловия Из МассивУсловий Цикл
		
		УсловиеУО 				 = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		УсловиеУО.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных(СтрУсловия.УсловиеЛевое);
		Если СтрУсловия.Свойство("ВидСравнения") Тогда
			// По умолчанию: ВидСравненияКомпоновкиДанных.Равно
			УсловиеУО.ВидСравнения = СтрУсловия.ВидСравнения;
		КонецЕсли;
		Если СтрУсловия.Свойство("УсловиеПравое") Тогда
			УсловиеУО.ПравоеЗначение = СтрУсловия.УсловиеПравое;
		КонецЕсли;                                                    	
		
	КонецЦикла;
	
	// Оформляемые поля	
	Для каждого ОфПоле Из МассивОформляемыхПолей Цикл
		ОформляемоеПоле 	 = ЭлементУО.Поля.Элементы.Добавить();
		ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ОфПоле);
	КонецЦикла;
		
КонецПроцедуры // ДобавитьЭлементУсловногоОформления()
Показать
3. antz 11.06.19 10:50 Сейчас в теме
4. VictorRGB2 13 11.06.19 11:04 Сейчас в теме
(3) что с Использовать, что без результат один
не применяется, даже если через конфигуратор условное оформление делать, например раскрасить ячейку "Количество" если введено больше заданного числа
5. antz 11.06.19 11:15 Сейчас в теме
(4) А поля оформления кто указывать будет?

	ПолеОформления = Элемент.Поля.Элементы.Добавить();
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Объект.Корзина.Номенклатура");
8. antz 11.06.19 11:31 Сейчас в теме
(4) А, невнимательно смотрю, не выспался) Короче, с количеством у меня работает. Может, с МассивТоварыУсловияВхождения что не так? Там не группы случаем?
Прикрепленные файлы:
УО.epf
VictorRGB2; +1 Ответить
9. VictorRGB2 13 11.06.19 13:11 Сейчас в теме
(8) вся соль была в том. что в МассивТоварыУсловияВхождения передавался именно массив, а не список
спасибо за наводку
10. tiger12 1 08.02.21 11:40 Сейчас в теме
(9) Подскажите, а список здесь откуда берется, заполняется?

Тоже пишу условное оформление для таблицы на форме.
11. VictorRGB2 13 08.02.21 12:42 Сейчас в теме
(10) это условие на условное оформление, уж простите за тавтологию
в (8) пример обработки мне давали, я по ней делал себе
т.е. условное оформление добавлялось программно, а предварительно для него рассчитывался массив элементов для применения
вот вместо массива необходимо передавать список элементов и все заработает
6. t.v.s. 111 11.06.19 11:17 Сейчас в теме
В модуле формы есть функция УстановитьУсловноеОформление, внутри которой все элементы условного оформления очищаются. Соответственно, если вы создаете свое оформление ДО того как она вызывается, то в дальнейшем оно удалится.
7. VictorRGB2 13 11.06.19 11:20 Сейчас в теме
(6) это понятно, но я свое вызываю после
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот