Имя: Пароль:
1C
1С v8
Отбор в табличной части формы для условного оформления
0 sirbure
 
07.02.18
16:56
Собственно как через условное оформление на форме сделать я понимаю, но нужно сделать это программно, (просят готовые кнопки), и что то туплю я.Создал обработку, с частью реквизитов, подскажите как отобрать строки где значение в поле ТоварыКоличество равно значению в поле ТоварыКолВоПоЗаказу. Код такой:
&НаСервере
Процедура ТоварыНоменклатураПриИзмененииНаСервере()
    
    УслОф=ЭтотОбъект.УсловноеОформление;    
    ОформляемыеПоля=Новый Массив;
    ОформляемыеПоля.Добавить("ТоварыКолВоПоЗаказу");
    ОформляемыеПоля.Добавить("ТоварыКоличество");
    ОформляемыеПоля.Добавить("ТоварыНоменклатура");
    ОформляемыеПоля.Добавить("ТоварыНомерСтроки");    
    Оформление=Новый Структура;
    Оформление.Вставить("ЦветФона", Новый Цвет(0,128,0));
    НовыйЭлемент=УстановитьЦвет(УслОф,ОформляемыеПоля,Оформление);
    УстановитьОтбор(НовыйЭлемент.Отбор,"ТоварыКоличество","ТоварыКолВоПоЗаказу",ВидСравненияКомпоновкиДанных.Равно);
    
КонецПроцедуры

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

    ОформляемоеПоле=НовыйЭлемент.Поля.Элементы.Добавить();
    ОформляемоеПоле.Использование=Истина;
    ОформляемоеПоле.Поле=Новый ПолеКомпоновкиДанных(ИмяПоля);
    

КонецЦикла;

Для каждого ЭлементОформления Из СтруктураОформление Цикл
    
    НовыйЭлемент.Оформление.УстановитьЗначениеПараметра(ЭлементОформления.Ключ,ЭлементОформления.Значение);
    
КонецЦикла;     

Возврат НовыйЭлемент

КонецФункции // УстановитьЦвет()


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

КонецФункции // ДобавитьОтбор()

&НаКлиенте
Процедура Офрмить(Команда)
    ТоварыНоменклатураПриИзмененииНаСервере();
КонецПроцедуры


Красит все, строки, если устанавливать тип отбора больше или меньше не красит ничего.  понимаю что косяк с отбором, совсем что то не догоняю как он работает.
1 sirbure
 
07.02.18
18:09
Можно закрывать, разобрался, через отладчик, с включенныу уф через форму.
Закон Брукера: Даже маленькая практика стоит большой теории.