Имя: Пароль:
1C
1С v8
Отбор в управляемой форме выбора
0 denk
 
14.04.14
06:44
Понимаю, что баян. Сам неоднократно устанавливал отбор при начале выбора, но в этот раз какой-то непонятный затык возникает.

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


В результате выполнения этого кода открывется форма без отбора. Заходим в Настроить форму, там в отборе есть соответствующая строка. Просто нажимаем ОК и отбор устанавливается. Почему не срабатывает при открытии?
1 ИС-2
 
naïve
14.04.14
07:24
отбор надо ставить в ПараметрыФормы

    ПараметрыФормыКонтрагенты = Новый Структура;
    ПараметрыФормыКонтрагенты.Вставить("Отбор", Новый Структура("Покупатель", Истина));
    ВыбранноеЗначение = ОткрытьФормуМодально("Справочник.Контрагенты.ФормаВыбора",ПараметрыФормыКонтрагенты);
2 denk
 
14.04.14
07:32
(1) Спасибо за подсказку. Раньше думал, что так будет работать, если вид сравнения Равно. Но для ВСписке тоже, оказывается, работает. УФ рулят.
Основная теорема систематики: Новые системы плодят новые проблемы.