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

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) это понятно, но я свое вызываю после
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день