условное оформление формы списка справочника программно

1. Egres 21.12.22 10:53 Сейчас в теме
В форме списка справочника "Номенклатура" в пользовательском режиме раскрашиваем строки по условию "Ссылка ВГруппе".
При попытке сделать программно ВИерархии- ничего не работает. Работает только Подобно, Равно, Содержит.
Как добиться того же эффекта программно?

код для тестирования

&НаСервере
&После("УстановитьУсловноеОформление")

Процедура Расш2_УстановитьУсловноеОформление() 

	эл = Справочники.Номенклатура.НайтиПоНаименованию("Нужная Группа");   
	ЭлементУО = УсловноеОформление.Элементы.Добавить();
	ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",новый Цвет(0,0,254));
        поле = ЭлементУО.Поля.Элементы.Добавить();
	поле.Поле = Новый ПолеКомпоновкиДанных("Наименование");
	поле.Использование = Истина;
        поле = ЭлементУО.Поля.Элементы.Добавить();
	поле.Использование = Истина;
	поле.Поле = Новый ПолеКомпоновкиДанных("Код");
	поле.Использование = Истина;
	ЭО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭО.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("Список.Ссылка");
	ЭО.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
	ЭО.ПравоеЗначение = эл;

	ЭлементУО.Использование = Истина;
		
КонецПроцедуры

Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. independ 1556 21.12.22 21:15 Сейчас в теме
(1) для динамического списка можно использовать ПриПолученииДанныхНаСервере
Свойство оформление
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Штрихкоды.Владелец КАК Владелец,
	|	Штрихкоды.Штрихкод
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК Штрихкоды
	|ГДЕ
	|	Штрихкоды.Владелец В(&Владелец)
	|ИТОГИ ПО
	|	Владелец";
	
	Запрос.УстановитьПараметр("Владелец", Строки.ПолучитьКлючи());
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаВладелец = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	Пока ВыборкаВладелец.Следующий() Цикл
		Штрихкоды="";
		КоличествоШК=0;
		ВыборкаДетальныеЗаписи = ВыборкаВладелец.Выбрать();
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			Штрихкоды=Штрихкоды+?(Штрихкоды="","",",")+ВыборкаДетальныеЗаписи.Штрихкод;
			КоличествоШК=КоличествоШК+1;
		КонецЦикла;
		Попытка
			СтрокаСписка=Строки[ВыборкаВладелец.Владелец];
			СтрокаСписка.Данные.ШК=КоличествоШК;
			СтрокаСписка.Данные.Штрихкоды=Штрихкоды;
		Исключение
		КонецПопытки;
		СтрокаСписка.Оформление["Штрихкоды"].УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(, 7, , , , ));
	КонецЦикла;
Показать
user5300; +1 Ответить
2. soft_wind 21.12.22 11:04 Сейчас в теме
как вариант, сначала в запросе ДС, анализируйте вхождение в нужные группы и формируйте колонку Цвет,
затем в УО красьте по условию Если Цвет = 1 Тогда Красный
пример


Выбрать
...
спр.Ссылка как Номенклатура,
Выбор 
Когда спр.Родитель.Наименование = "Нужная группа" Тогда 1
Когда спр.Родитель.Родитель.Наименование = "Другая группа" Тогда 2
...  Тогда 10
Иначе 11
Конец как Цвет
из
Справочник.Номенклатура спр
Показать
Vitaly1C8; +1 Ответить
3. Egres 21.12.22 19:20 Сейчас в теме
Спасибо за совет.

Но всё-таки хотелось бы понять: почему нельзя сделать программно то, что можно сделать в пользовательском режиме?
Оставьте свое сообщение

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