Имя: Пароль:
1C
1С v8
Табличное поле типа Отбор как "прикрутить" к запросу к справочнику Номенклатура
0 neo1109
 
25.01.17
14:28
Форма обработка.
На ней расположено табличное поле с типом отбор.
программно добавляю 1 элемент отбора: "Номенклатура"/условие/правое значение

теперь по тому условию и правому значению, которое выбрал пользователь хочу отобрать из справочника Номенклатура.

Думал через ПостроительЗапроса. Примерно так:
ПостроительЗ = Новый ПостроительЗапроса;
        ПостроительЗ.Параметры.Вставить("Дата",Неопределено);
        ПостроительЗ.Параметры.Вставить("ТипЦен",ТипЦен);
        ПостроительЗ.Параметры.Вставить("ТипЦенОптовые",ТипЦенОптовая);
        ПостроительЗ.Текст = "ВЫБРАТЬ
                             |    СпрНоменклатура.Ссылка КАК Номенклатура,
                             |    СпрНоменклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
                             |    МАКСИМУМ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК Цена,
                             |    МАКСИМУМ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихОптовые.Цена, 0)) КАК ОптоваяЦена,
                             |    СУММА(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК Остаток
                             |ИЗ
                             |    Справочник.Номенклатура КАК СпрНоменклатура
                             |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦенОптовые) КАК ЦеныНоменклатурыСрезПоследнихОптовые
                             |        ПО СпрНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследнихОптовые.Номенклатура
                             |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                             |        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка)
                             |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
                             |        ПО ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка
                             |ГДЕ
                             |    СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
                             |{ГДЕ
                             |    СпрНоменклатура.Ссылка КАК НоменклатураСсылка}
                             |
                             |СГРУППИРОВАТЬ ПО
                             |    СпрНоменклатура.Ссылка
                             |АВТОУПОРЯДОЧИВАНИЕ";
                            
        ПостроительЗ.Выполнить();                    
        Для каждого ЭлОтбора Из ОтборНоменклатуры Цикл
            НовыйОтбор = ПостроительЗ.Отбор.Добавить("НоменклатураСсылка", "Номенклатура");
            ЗаполнитьЗначенияСвойств(НовыйОтбор, ЭлОтбора);
        КонецЦикла;                    
        
        //Товары.Загрузить(ПостроительЗ.Результат.Выгрузить());
        Товары.Очистить();
        ТЗРезультат = ПостроительЗ.Результат.Выгрузить();
        Для каждого СтрокаТЗ Из ТЗРезультат Цикл
        
            Если ЗаполнятьТолькоВНаличии И СтрокаТЗ.Остаток <= 0 Тогда
                Продолжить;
            КонецЕсли;
            
            НоваяСтрока = Товары.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
            
        КонецЦикла;

Но при выборе вида сравнения "В группе из списка" вываливается ошибка
"{ВнешняяОбработка.ВыгрузкаНаСайт.Форма.Форма.Форма(432)}: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств)
            ЗаполнитьЗначенияСвойств(НовыйОтбор, ЭлОтбора);
по причине:
Ошибка установки значения свойства 'Значение'
по причине:
Неверный тип значения"

С построителем практически не работал, может кто подскажет, как быть?
1 neo1109
 
25.01.17
14:29
Получается не работает во всех случаях когда правое значение НЕ типа СправочникСсылка.Номенклатура...
2 neo1109
 
25.01.17
14:44
Вопрос закрыт.
Получилось так:
...
ЗаполнитьЗначенияСвойств(НовыйОтбор, ЭлОтбора,"ВидСравнения");
            ЗаполнитьЗначенияСвойств(НовыйОтбор, ЭлОтбора,,"ВидСравнения");
...
AdBlock убивает бесплатный контент. 1Сергей