0
xintrea
30.10.12
✎
13:43
|
Вопрос в следующем.
Есть у меня динамический список СписокСвойстваОборудования. Для его фильтрации сделал две процедуры:
----- 8< -----
&НаКлиенте
Процедура УстановитьФильтрНаСвойстваОборудования()
// Объект, реализующий фильтр отбора для свойств оборудования
Отбор=ЭтаФорма.СписокСвойстваОборудования.Отбор;
Отбор.Элементы.Очистить();
ЭлементОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЕдиницаОборудования");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = Объект.Ссылка; // Сама текущая единица оборудования
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьФильтрНаСвойстваОборудования()
// Объект, реализующий фильтр отбора для свойств оборудования
Отбор=ЭтаФорма.СписокСвойстваОборудования.Отбор;
Отбор.Элементы.Очистить();
КонецПроцедуры
----- 8< -----
Проблема в том, что применить фильр в модуле формы можно только один раз!
Например, при открытии вызываю УстановитьФильтрНаСвойстваОборудования(). Процедура нормально отрабатывает, данные фильтруются. А если затем вызвать ОчиститьФильтрНаСвойстваОборудования(), то процедура срабатыват, да только данные в динамическом списке остаются всё так же отфильтрованными. То есть, "фильтрующие правила" не очищаются.
Почему так происходит?
Что надо сделать, чтобы применение какого-нибудь фильтра Отбор (после уже один раз установленного фильтра Отбор) давало эффект?
|
|