Имя: Пароль:
1C
1С v8
Условное оформление 8.2
,
0 NSerg
 
25.10.11
10:53
Необходимо реализовать боевой раскрас элементов формы, которые были добавлены на неё (форму) динамически.

Использую следующий код:

ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
   ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
   ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Валюты_1_Наименование");
   ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("Источник_Валюты_1.Наименование");
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
   ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Валюты_1_НаименованиеПолное");
   ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.СинийСоСтальнымОттенком);


И вот не работает. а если в качестве Левого значения укзаать не поле компановки, а непосредственно значение реквизита :
ЭлементОтбора.ЛевоеЗначение =  Источник_Валюты_1.Наименование;

то отрабатывает. может кто-то сталкивался?
1 Cube
 
25.10.11
11:02
ЭлементОтбора.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("Источник_Валюты_1.Наименование");
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Источник_Валюты_1.Наименование");
2 NSerg
 
25.10.11
11:04
(1) и зачем так?
3 NSerg
 
25.10.11
11:05
идея вот в чём. на форме есть поле ввода с сылкой  и есть поле ввода в которое внесут полное наименование. и вот необходимо полное наименование сравнить с наименованием в ссылке и если разно, то раскрасить
4 NSerg
 
25.10.11
11:14
(1) Да, кстати, ваш пример не работает. Также не работает когда делаю вот так :

   ЭлементОтбора.ЛевоеЗначение =  Истина;
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ЭлементОтбора.ПравоеЗначение = Истина;

вообще, такое ощущение что как-то кривовато сделано условное оформеление в тонком клиенте. к слову, релиз платформы 8.2.14.533
5 NSerg
 
25.10.11
11:16
(1) извиняюсь, работает, но мне нужно всёравно другое :)
6 Defender aka LINN
 
25.10.11
11:17
(0) На русский язык этот код можно перевести так:
"Если поле "Источник_Валюты_1.Наименование" не равно полю "Валюты_1_НаименованиеПолное", то с полем "Валюты_1_Наименование" мы не делаем ничего, но цвет будет СинийСоСтальнымОттенком."
7 NSerg
 
25.10.11
11:18
(6) ага
8 NSerg
 
25.10.11
11:23
проблема заключается именно с
ЭлементОтбора.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("Источник_Валюты_1.Наименование");

т.к. если написать вот так :

ЭлементОтбора.ЛевоеЗначение =  ЭтаФорма["Источник_Валюты_1"].ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Валюты_1_Наименование");

то работает
9 NSerg
 
25.10.11
11:24
проблема заключается именно с
ЭлементОтбора.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("Источник_Валюты_1.Наименование");

т.к. если написать вот так :

ЭлементОтбора.ЛевоеЗначение =  ЭтаФорма["Источник_Валюты_1"].Наименование;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Валюты_1_Наименование");


то работает
10 Cube
 
25.10.11
11:29
А так:

   ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
   ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
   ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Валюты_1_Наименование");
   ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.СинийСоСтальнымОттенком);
11 NSerg
 
25.10.11
11:34
(10) нет, но (9) работает
12 NSerg
 
25.10.11
17:12
АПП
13 NSerg
 
27.10.11
12:22
всё, идё больше нет?
14 NSerg
 
27.10.11
12:22
*идей )
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn