Имя: Пароль:
1C
1С v8
программная настройка СКД
0 1cnik2
 
10.07.12
16:20
поломал голову с этим кодом:
               //добавим условное оформление - выделим текущий и предыдущий документ
               НовыйЭлементУсловногоОформления = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
               НастроитьУсловноеОформлениеДляРаскраскиРегистратораВРасшифровке(НовыйЭлементУсловногоОформления, СтруктураДанных.Документ, WebЦвета.КрасноФиолетовый);
               
               НовыйЭлементУсловногоОформления = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
               НастроитьУсловноеОформлениеДляРаскраскиРегистратораВРасшифровке(НовыйЭлементУсловногоОформления, СтруктураДанных.ПредыдущийДокумент, WebЦвета.ЗеленаяЛужайка);
                               
               ФормаОтчета.СкомпоноватьРезультат();

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

КонецПроцедуры



проблема в том, что несмотря на то, что НовыйЭлементУсловногоОформления изменяется процедурой НастроитьУсловноеОформлениеДляРаскраскиРегистратораВРасшифровке(), сам элемент из коллекции ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы при этом не изменяется. То есть в отладчике смотришь, что все что установила процедура, есть в НовыйЭлементУсловногоОформления, а среди элементов коллекции элемент, добавленный с помощью метода Добавить() так и остается без настроек. Кто сталкивался, как это победить?
1 1cnik2
 
10.07.12
16:27
up
2 1cnik2
 
10.07.12
16:36
разобрался, дело было в отсутствии модификатора &НаКлиенте перед процедурой НастроитьУсловноеОформлениеДляРаскраскиРегистратораВРасшифровке()
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан