Как сделать отбор списка по двум реквизитам? 1с 8.3
☑
0
Geroy
04.02.15
✎
11:49
Работает отбор по 1 реквизиту
&НаКлиенте
Процедура ОтборЭлектронныйЧекАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
Если СтрДлина(Элементы.ОтборЭлектронныйЧек.ТекстРедактирования)=13 тогда
ОтборСостояниеПриИзменении(Элемент);
ТекОтбор = Список.Отбор.Элементы;
ТекОтбор.Очистить();
УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭлектронныйЧек");
УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
УсловиеОтбора.ПравоеЗначение = Элементы.ОтборЭлектронныйЧек.ТекстРедактирования;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтборЭлектронныйЧекОчистка(Элемент, СтандартнаяОбработка)
Список.Отбор.Элементы.Очистить();
КонецПроцедуры
Нужно добавить еще одно условие
УсловиеОтбора.ПравоеЗначение=Перечисления.СостоянияЗаказовПокупателей.ОжидаетсяРезервирование;
1
deniseek
04.02.15
✎
11:52
(0) Ну так и добавь рядо с твоим отбором еще 1, то есть: УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных")); и т.д.
2
Geroy
04.02.15
✎
11:53
(1) УсловиеОтбора.ПравоеЗначение=Перечисления.СостоянияЗаказовПокупателей.ОжидаетсяРезервирование;
НаКлиенте не выполняется
Как задать значение
Перечисления.СостоянияЗаказовПокупателей.ОжидаетсяРезервирование;
3
Geroy
04.02.15
✎
12:25
Сделал уже
&НаКлиенте
Процедура ОтборЭлектронныйЧекАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
Если СтрДлина(Элементы.ОтборЭлектронныйЧек.ТекстРедактирования)=13 тогда
ТекОтбор = Список.Отбор.Элементы;
ТекОтбор.Очистить();
УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭлектронныйЧек");
УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
УсловиеОтбора.ПравоеЗначение = Элементы.ОтборЭлектронныйЧек.ТекстРедактирования;
УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Состояние");
УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
УсловиеОтбора.ПравоеЗначение =ПредопределенноеЗначение("Перечисление.СостоянияЗаказовПокупателей.ОжидаетсяРезервирование");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтборЭлектронныйЧекОчистка(Элемент, СтандартнаяОбработка)
Список.Отбор.Элементы.Очистить();
КонецПроцедуры
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший