Имя: Пароль:
1C
1С v8
Отбор номенклатуры , входящей в список групп
0 Мимохожий Однако
 
03.02.14
09:51
На управляемой форме отображен список отдельных групп товара. Пытаюсь отобрать товар, входящий в группу товаров из этого списка. Где-то ошибся. Конфигурация УТ11.
..
ЗапросТекст =
    "ВЫБРАТЬ
    |   ЗаказыКлиентовОстатки.Номенклатура,
    |   ЗаказыКлиентовОстатки.Склад,
    |   СУММА(ЗаказыКлиентовОстатки.ЗаказаноОстаток) КАК КоличествоУпаковок,
    |   ЗаказыКлиентовОстатки.Характеристика,
    |   ЗаказыКлиентовОстатки.КодСтроки,
    |   Назначения.Ссылка КАК Назначения,
    |   ЗаказыКлиентовОстатки.Номенклатура.ЕдиницаИзмерения КАК Упаковка,
    |   ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) КАК СтавкаНДС
    |ИЗ
    |   РегистрНакопления.ЗаказыКлиентов.Остатки(
    |           ,
    |           ЗаказКлиента.Организация = &Организация
    |               И Номенклатура В ИЕРАРХИИ (&ГруппыНоменклатуры)) КАК ЗаказыКлиентовОстатки
    |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК Назначения
    |       ПО ЗаказыКлиентовОстатки.ЗаказКлиента = Назначения.Заказ
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаказыКлиентовОстатки.Номенклатура,
    |   ЗаказыКлиентовОстатки.Склад,
    |   ЗаказыКлиентовОстатки.Характеристика,
    |   ЗаказыКлиентовОстатки.КодСтроки,
    |   Назначения.Ссылка,
    |   ЗаказыКлиентовОстатки.Номенклатура.ЕдиницаИзмерения";
..
Запрос.УстановитьПараметр("ГруппыНоменклатуры", ГруппыНоменклатуры.ВыгрузитьЗначения());
ГруппыНоменклатуры - это реквизит с типом список значений, в котором помещены группы справочника.
1 Yea-Yea
 
03.02.14
09:52
а что не получается
2 Cube
 
03.02.14
09:52
(0) Дык, а ВыгрузитьЗначения() разве не массив возвращает?
3 Defender aka LINN
 
03.02.14
09:55
(0) Тип значений списка какой?
4 Мимохожий Однако
 
03.02.14
10:02
Заполняется группами номенклатуры (ссылками).
При отладке показывает

ГруппыНоменклатуры.ВыгрузитьЗначения().Получить(0)
Возвращает СправочникСсылка.Номенклатура.
5 Defender aka LINN
 
03.02.14
10:03
(4) Значит, нет такой номенклатуры в заказах с указанной организацией. Все просто.
6 Мимохожий Однако
 
03.02.14
10:03
Когда отбираю по одной группе, в которой есть искомый элемент, то запрос отбирает как надо. Когда заношу эту группу в список, запрос не отбирает.
7 Мимохожий Однако
 
03.02.14
10:04
Для полноты картины. Я на этом пока остановился.
  Организация = Объект.Организация;
    Поставщик = Объект.Поставщик;
    ГруппыНоменклатуры = Объект.ГруппыНоменклатуры;
    ВыбраннаяГруппа = Объект.ВыбраннаяГруппа;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Организация", Организация);
    ЗапросТекст =
    "ВЫБРАТЬ
    |   ЗаказыКлиентовОстатки.Номенклатура,
    |   ЗаказыКлиентовОстатки.Склад,
    |   СУММА(ЗаказыКлиентовОстатки.ЗаказаноОстаток) КАК КоличествоУпаковок,
    |   ЗаказыКлиентовОстатки.Характеристика,
    |   ЗаказыКлиентовОстатки.КодСтроки,
    |   Назначения.Ссылка КАК Назначения,
    |   ЗаказыКлиентовОстатки.Номенклатура.ЕдиницаИзмерения КАК Упаковка,
    |   ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) КАК СтавкаНДС
    |ИЗ
    |   РегистрНакопления.ЗаказыКлиентов.Остатки(
    |           ,
    |           ЗаказКлиента.Организация = &Организация
    |               И Номенклатура В ИЕРАРХИИ (&ГруппыНоменклатуры)) КАК ЗаказыКлиентовОстатки
    |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК Назначения
    |       ПО ЗаказыКлиентовОстатки.ЗаказКлиента = Назначения.Заказ
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаказыКлиентовОстатки.Номенклатура,
    |   ЗаказыКлиентовОстатки.Склад,
    |   ЗаказыКлиентовОстатки.Характеристика,
    |   ЗаказыКлиентовОстатки.КодСтроки,
    |   Назначения.Ссылка,
    |   ЗаказыКлиентовОстатки.Номенклатура.ЕдиницаИзмерения";
    
    Если ВыбраннаяГруппа.Пустая() Тогда
        Если ГруппыНоменклатуры.Количество() > 0 Тогда
            ЗапросТекст = СтрЗаменить(ЗапросТекст,"В ИЕРАРХИИ (&ГруппыНоменклатуры)","В (&ГруппыНоменклатуры)");
            Запрос.УстановитьПараметр("ГруппыНоменклатуры", ГруппыНоменклатуры.ВыгрузитьЗначения());
        Иначе
            ЗапросТекст = СтрЗаменить(ЗапросТекст," И Номенклатура В ИЕРАРХИИ (&ГруппыНоменклатуры)","");
        КонецЕсли;
    Иначе    
        Запрос.УстановитьПараметр("ГруппыНоменклатуры", ВыбраннаяГруппа);
    КонецЕсли;
    Запрос.Текст = ЗапросТекст;
8 Мимохожий Однако
 
03.02.14
10:05
ОФФ: Надо бежать по делам. На дополнительные вопросы отвечу попозже. Может за это время кто-нибудь подскажет?