Имя: Пароль:
1C
1С v8
Как отключить отбор в списке в УФ
0 Vexcel
 
10.09.13
00:03
Создал отбор в списке на управляемой форме, отбор включается по кнопке. Если кнопка нажата, то отбор включён, если не нажата то отключён.
Собственно отбор такой
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
...
ЭлементОтбора.Использование    = Истина;

Ловлю положение кнопки и ставлю Использование = Истина или Ложь соответсвенно.
Но отбор то не отключается))) Если посмотреть в отладчике то в Список.Отбор.Элементы каждый раз добавляется новая сточка с отбором. Соответвественно у предыдущей строчки будет Истина, у нижней Ложь и отбор всёравно работает.
Наверно надо как то подвязываться к именно этому отбору?

Можем очистить все отборы Список.Отбор.Элементы.Очистить(); но там же отборы ещё другие, не можем мы их почистить...
1 a_alenkin
 
10.09.13
01:59
а ты не добавляй а использование ставь лоь у имеющихся
2 a_alenkin
 
10.09.13
02:00
*ложь
3 Prilepsky
 
10.09.13
04:07
В УТ 11 есть общий модуль ОтборыСписковКлиентСервер.
Может там глянуть пример.
Они вместо отключения удаляют отбор.

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