Имя: Пароль:
1C
 
Как настроить условное оформление для созданной программно колонки?
0 Галахад
 
гуру
05.03.25
16:09
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ДобавитьДопРеквизиты();
	ДобавитьУФ();
	
КонецПроцедуры

&НаСервере
Процедура ДобавитьДопРеквизиты()
	
	МассивРеквизитов = Новый Массив;

	НовРек = Новый РеквизитФормы("НовРек", Новый ОписаниеТипов("Число"), "Объект.ТЧ", "Нов рек", Ложь);

	МассивРеквизитов.Добавить(НовРек);
	
	  ИзменитьРеквизиты(МассивРеквизитов);	
	
	Эл = Элементы.Вставить("НовРек", Тип("ПолеФормы"), Элементы.ТЧ);
	Эл.Вид = ВидПоляФормы.ПолеВвода;
	Эл.ПутьКДанным = "Объект.ТЧ.НовРек";	
	
КонецПроцедуры

&НаСервере
Процедура ДобавитьУФ()
	
	УсловноеОформление.Элементы.Очистить();

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Использование = Истина;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧ.НовРек");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбораДанных.ПравоеЗначение = 0;
	ЭлементОтбораДанных.Использование = Истина;
	
	НовыйЭлемент = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ТЧРек");
	//НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ТЧНовРек");
		
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный);	
	
КонецПроцедуры
1 Галахад
 
гуру
05.03.25
10:30
Есть справочник с табличной частью "ТЧ".
В "ТЧ" есть реквизит "Рек".
Программно добавил реквизит "НовРек".

При настройке условного оформления в зависимости от значения "НовРек", получается оформить колонку "Рек", но вот колонку "НовРек" оформить не получается.

Куда копать?
2 Галахад
 
гуру
05.03.25
10:31
Так работает:
    НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ТЧРек");
Так не работает:
    НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ТЧНовРек");
3 Мультук
 
гуру
05.03.25
10:37
(1)

Тут недавно была тема, где выяснилось, что если (например) таблицу значений полностью создать программно (динамически) и вывести её на форму, то УО применить к ней невозможно.

Решения автор (не я) так и не нашёл.
Возможно это из той же оперы
4 Fedor-1971
 
05.03.25
10:42
(2) крась НовРек, как назвал на форме, то и крась
5 Галахад
 
гуру
05.03.25
10:41
(3) Новость удручающая. ))

(4) Да. Процедура ДобавитьДопРеквизиты() последние строки.
6 Fedor-1971
 
05.03.25
10:44
(5) я посмотрел невнимательно, ты назвал реквизит формы "НовРек", а красишь ТЧНовРек
7 Галахад
 
гуру
05.03.25
10:46
(6) Ай, спасибо!
8 Галахад
 
гуру
05.03.25
10:48
Хм, интересно:

Так работает:
    НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ТЧРек");
Так не работает:
    НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ТЧНовРек");

...

Так работает:
    НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("НовРек");
Так не работает:
    НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("Рек");
9 Fedor-1971
 
05.03.25
16:13
(8) НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных( ... Вот тут надо указать наименование реквизита на форме ...);
т.е. как назвал, то и крась