Имя: Пароль:
1C
1С v8
множественный отбор в динамическом списке управляемой формы
0 dimm7310
 
19.07.12
13:55
в форме списка УФ документов необходимо сделать отбор  по нескольким реквизитам. По одному реквизиту отбирает нормально, код:    Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));    
   Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Регион");
   Отбор.ПравоеЗначение = ОтборРегион;

как правильно прописать отборы для остальных реквизитов ?
1 gosn1ck
 
19.07.12
13:56
копипастом :))
2 dimm7310
 
19.07.12
13:57
(1) не работает, отдирает по последнему реквизиту
3 dimm7310
 
19.07.12
13:57
отдирает = отбирает
4 gosn1ck
 
19.07.12
14:02
списки документов унф открой

Процедура УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено) Экспорт
   
   ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных(ИмяПоля);
   ЭлементОтбора.ВидСравнения     = ?(ВидСравнения = Неопределено, ВидСравненияКомпоновкиДанных.Равно, ВидСравнения);
   ЭлементОтбора.Использование    = Истина;
   ЭлементОтбора.ПравоеЗначение   = ПравоеЗначение;
   ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   
КонецПроцедуры // УстановитьЭлементОтбораСписка()
5 dimm7310
 
19.07.12
14:09
(4) спасибо.

а как очистить (сбросить отбор) для того что бы задать новые значения отбора ?
6 gosn1ck
 
19.07.12
14:12
я тебе еще раз говорю унф открой, там всё изобретено уже давно

Процедура УдалитьЭлементОтбораСписка(Список, ИмяПоля) Экспорт
   
   ПолеКомпоновки = Новый ПолеКомпоновкиДанных(ИмяПоля);
   Счетчик = 1;
   Пока Счетчик <= Список.Отбор.Элементы.Количество() Цикл
       ЭлементОтбора = Список.Отбор.Элементы[Счетчик - 1];
       Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных")
           И ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновки Тогда
           Список.Отбор.Элементы.Удалить(ЭлементОтбора);
       Иначе
           Счетчик = Счетчик + 1;
       КонецЕсли;    
   КонецЦикла;
   
КонецПроцедуры // УдалитьЭлементОтбораСписка()
7 dimm7310
 
19.07.12
14:15
(6) спасибо
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс