Имя: Пароль:
1C
 
Не отрабатывает условное оформление програмно
0 Sova112
 
13.06.16
11:22
Доброго время дня,
написала УО для таблитчной части, процедура отрабатывает нормально.

Процедура ОформитьСтрокиТЧ(Объект,УсловноеОформление,ТипОбъектаПодробный,ИмяТЧ) Экспорт
    ТипОбъектаСтр               = СтрЗаменить(ТипОбъектаПодробный,".",Символы.ПС);
    ТипОбъектаКраткий           = СтрПолучитьСтроку(ТипОбъектаСтр,1);
    ИмяОформляемогоМетаданного  = СтрПолучитьСтроку(ТипОбъектаСтр,2);

      ТипОбъектаКраткий = "Документы";


    ОбъектДанные = ДанныеФормыВЗначение(Объект,Тип(ТипОбъектаПодробный));

    Для каждого СтрТЧ Из ОбъектДанные.Товары Цикл
        
        Если НЕ ЗначениеЗаполнено(СтрТЧ.Серия) Тогда
            Продолжить;
        КонецЕсли;
        
        Если СтрТЧ.Серия.ГоденДо = дата("00010101") Тогда
            Продолжить;

        КонецЕсли;

        Процент = НайтиЗначениеПроцента();
        
        Если Процент = 0 Тогда
            Продолжить;
        КонецЕсли;
        
         КолДней =(НачалоДня(СтрТЧ.Серия.ГоденДо) -НачалоДня(ТекущаяДата()))/86400;
        
         ПроцентРезультат = 0;
        ПроцентРезультат = 100*КолДней/365;

        
        
        Если ПроцентРезультат <= Процент Тогда
            
            
            ОбъектСОформлением  = СтрТЧ.НомерСтроки;
            
            ЦветФонаСтроки      = WebЦвета.Красный;
            //ЦветШрифтаСтроки    = WebЦвета.Красный;
            
            
            ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
            ЭлементУсловногоОформления.Использование    = Истина;
            
            ОформлениеУО        = ЭлементУсловногоОформления.Оформление;
            ОтборУО             = ЭлементУсловногоОформления.Отбор;
            ОформляемыеПоляУО   = ЭлементУсловногоОформления.Поля;
            
            
            ОформлениеУО.УстановитьЗначениеПараметра("ЦветФона", ЦветФонаСтроки);
            //ОформлениеУО.УстановитьЗначениеПараметра("ЦветТекста", ЦветШрифтаСтроки);
            //ОформлениеУО.УстановитьЗначениеПараметра("Шрифт", ШрифтСтроки);
            
            ЭлементОтбора                = ОтборУО.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.НомерСтроки" );
            ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
            ЭлементОтбора.ПравоеЗначение = ОбъектСОформлением;
            ЭлементОтбора.Использование  = Истина;
            
            Для каждого РеквизитТЧ Из Метаданные[ТипОбъектаКраткий][ИмяОформляемогоМетаданного].ТабличныеЧасти[ИмяТЧ].Реквизиты Цикл
                
                НазваниеРеквизита   = РеквизитТЧ.Имя;
                ОформляемоеПоле     = ОформляемыеПоляУО.Элементы.Добавить();
                ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧ + НазваниеРеквизита);
                
            КонецЦикла;
            
            ОформляемоеПоле      = ОформляемыеПоляУО.Элементы.Добавить();
            ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧ + "НомерСтроки");
        КонецЕсли;
        
    КонецЦикла;
КонецПроцедуры
1 Sova112
 
13.06.16
11:24
но цвет строк не меняется, добавила так же в процедуру УстановитьУсловноеОформление. Все равно не отрабатыает. Или на секунду становится красным, если делаю условное оформление  через форму.
Подскажите что не так?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший