Имя: Пароль:
1C
 
Как сделать запрос в условии виртуальной таблицы?
0 23th
 
26.08.15
07:05
У меня есть список товаров, я хочу узнать были ли они проданы по этому договору.

ВЫБРАТЬ
    ВозвратТоваровОтПокупателяТовары.Номенклатура,
    ВозвратТоваровОтПокупателяТовары.Коэффициент * ВозвратТоваровОтПокупателяТовары.Количество КАК Количество,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот
ИЗ
    Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, &ДатаОкончания, , ДоговорКонтрагента = &ДоговорКонтрагента) КАК ПродажиОбороты
        ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
    ВозвратТоваровОтПокупателяТовары.Ссылка = &Ссылка

Можно ли сделать так чтобы сразу отобрать номенклатуру в условии вирт. таблицы ПродажиОбороты РегистрНакопления.Продажи.Обороты(, &ДатаОкончания, , ДоговорКонтрагента = &ДоговорКонтрагента) ?
1 cons74
 
26.08.15
07:14
...Обороты(,,,номенклатура в (выбрать ...)) ?
2 Assena
 
26.08.15
07:15
запросом собери список номенклатуры, выгрузи в таблицу значений, и используй как параметр в условии виртуальной таблицы ПродажиОбороты РегистрНакопления.Продажи.Обороты(, &ДатаОкончания, , ДоговорКонтрагента = &ДоговорКонтрагента И Номенклатура В (&Номенклатура))
3 patria0muerte
 
26.08.15
07:43
(2) А нафига через параметр то, если можно сразу запрос написать как в (1)?
4 23th
 
26.08.15
07:48
На самом деле мне нужно узнать как раз каких товаров не было в регистре продаж, то есть возвратили товары, которые не продавали по этому договору
5 shuhard_серый
 
26.08.15
07:49
(4) и что мешает получить список проданных и соединить со справочником налево с условием есть NULL  ?
6 23th
 
26.08.15
07:59
(5) всмысле с уловием естьNULL ?
ИЗ
    Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, &ДатаОкончания, , ДоговорКонтрагента = &ДоговорКонтрагента) КАК ПродажиОбороты
        ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
ПродажиОбороты.Номенклатура = NULL
Вот так?
7 shuhard_серый
 
26.08.15
08:02
(6) херово
надо писать есть NULL
8 patria0muerte
 
26.08.15
08:06
Либо "ЕСТЬNULL(ПродажиОбороты.Номенклатура, 0) = 0", от одного бывшего коллеги слышал, что так мол получше чем "ПродажиОбороты.Номенклатура ЕСТЬ NULL".

Хотя почему - без понятия. Мож знает кто?
9 Апош
 
26.08.15
08:09
лучше ЕСТЬNULL(ПродажиОбороты.Номенклатура, "авотфих") = "авотфих"
10 Kvant1C
 
26.08.15
08:13
(9) чем лучше? в (7) правильно написано
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший