Имя: Пароль:
1C
1С v8
Как сделать двойной отбор по одному реквизиту в динамическом списке
0 luch
 
20.11.12
10:59
есть форма списка Поступления товаров и услуг
нужно отобрать документы с двумя условиями
1. Склад <> Пустое значение
(этот отбор должен быть всегда установлен) желательно недоступен для редактирования
2. ну и допустим Склад <> склады филиалов
выставляет пользователями
1 YF
 
20.11.12
11:00
(0) Что мешает?
2 luch
 
20.11.12
11:46
пользователь допустим устанавливает условия отбора
Склад <> склады филиалов
я програмно добавляю свое условие, оно заменяет условия пользователя
ДокументСписок.Отбор.СкладОрдер.Значение = Справочники.Склады.ПустаяСсылка();
ДокументСписок.Отбор.СкладОрдер.ВидСравнения = ВидСравнения.НеРавно;
ДокументСписок.Отбор.СкладОрдер.Использование = Истина

модифицировать условие - вариант конечно,
ДокументСписок.Отбор.СкладОрдер.Значение = СписокСкладов;
ДокументСписок.Отбор.СкладОрдер.ВидСравнения = ВидСравнения.НеВСписке;

как-то некрасиво получается, как можно проще это сделать?
3 YF
 
21.11.12
09:55
элементОтбора_                    = _список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
       элементОтбора_.ВидСравнения        = <Нужный вид сравнения>;
       элементОтбора_.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных(_имяОтбора);
       
       элементОтбора_.ПравоеЗначение    = <Нужное значение отбора>;
       
       // Если нужно - скроем от пользователя отбор
       Если <Нужно скрыть отбор> Тогда
           элементОтбора_.РежимОтображения    = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
       КонецЕсли;//<Нужно скрыть отбор>
4 Reset
 
21.11.12
10:00
(2) Почему некрасиво? И не путай термины, ДокументСписок - это не ДинамическийСписок, хотя и очень похож