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