Имя: Пароль:
1C
1С v8
Условное оформление не срабатывает
0 KazSever
 
22.05.24
14:20
Всем привет.

Почему-то не срабатывает условное оформление на программно добавленный в табличную часть.
Если выбрать другой реквизит ТЧ (который есть на форме), то оформление срабатывает без проблем.
Подскажите пожалуйста, что не так делаю.

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



После этого программно устанавливаю условное оформление:

	ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	
	ОформляемоеПоле	  = ЭлементОформления.Поля.Элементы.Добавить();
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТоварыУчетВС"); 
	
	ЭлементОформления.Использование = Истина;
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Текст", "ВС");	
	
	ЭлементУсловия	= ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.КодТНВЭД");
	ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;   
	ЭлементУсловия.Использование  = Истина; 
	
	ЭлементУсловия.ПравоеЗначение = СписокТНВЭДВыпискаСНТ;
1 Timon1405
 
22.05.24
18:20
на вид сравнения "равно" и конкретный элемент срабатывает?
2 sapravka
 
22.05.24
18:56
Возможно, проблема связана с тем, что реквизит «УчетВС» не используется в форме или таблице. Убедитесь, что он добавлен корректно и связан с данными, которые должны отображаться в таблице.
3 youalex
 
23.05.24
00:21
а если

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

?
5 KazSever
 
23.05.24
07:45
(4) Условное оформление применяем на добавленную колонку, а само условие работает по другой.

Выше писал, что все работает, если вместо колонки "УчетВС" (которая программно добавляется) использовать любую другую, которая есть на форме.
6 Лирик
 
23.05.24
07:55
Реквизит и поле формы "УчетВС" а оформляете "Новый ПолеКомпоновкиДанных("ТоварыУчетВС")"
определитесь
Тогда правильно НоваяКолонка = Элементы.Добавить("ТоварыУчетВС", Тип("ПолеФормы"), Элементы.Товары);
7 KazSever
 
23.05.24
08:29
(3) Спасибо, получилось этим методом.
Рабочий код:

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