Имя: Пароль:
1C
1С v8
Отбор на форме списка документов
0 quest1C
 
20.03.17
18:55
Обычная форма списка документа. Как сделать программно отбор по реквизиту для списка значений?

Пример отбора для одного значения (просто что бы было понятно, что это не то, что нам надо):
ДокументСписок.Отбор.Контрагент.Установить(Справочники.Контрагенты.НайтиПоКоду("ном"));
1 HomoAlbus
 
20.03.17
19:05
Отбор = ОтчетОстатки.ПостроительОтчета.Отбор;
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
    Отбор.Добавить("Номенклатура");
КонецЕсли;
Отбор["Номенклатура"].Использование = Истина;
Отбор["Номенклатура"].Значение      = Номенклатура;
Отбор["Номенклатура"].ВидСравнения  =
        ?(Номенклатура.ЭтоГруппа,
            ВидСравнения.ВСпискеПоИерархии,
            ВидСравнения.Равно);
2 quest1C
 
20.03.17
19:40
(1)
По аналогии с предложенным вариантом для списка документа:
ОтборСписок = новый СписокЗначений;
    ОтборСписок.Добавить(Контрагент1);
    ОтборСписок.Добавить(Контрагент2);
    
    Отбор = ДокументСписок.Отбор;
    Если Отбор.Найти("Контрагент") = Неопределено Тогда
        Отбор.Добавить("Контрагент");
    КонецЕсли;
    Отбор["Контрагент"].ВидСравнения  = ВидСравнения.ВСписке;
    Отбор["Контрагент"].Значение      = ОтборСписок;
    Отбор["Контрагент"].Использование = Истина;

НЕ работает!
3 НаборДанных
 
20.03.17
19:47
(2)*ля, создаешь НОВЫЙ список значений, добавляешь реквизиты контр1 и контр2 и пытаешься установить отбор по реквизиту контрагент, логику включи.
4 quest1C
 
20.03.17
19:49
Все работает. Всем спасибо.
5 НаборДанных
 
20.03.17
19:51
(3)Не реквизиты конечно же, мозг оплавился уже, но надеюсь смысл ты понял, у тебя нет поля отбора "Контрагент"
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший