Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Отбор в табличной части формы для условного оформления

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

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

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

КонецЦикла;

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

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

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



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

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


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


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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует