Имя: Пароль:
1C
1С v8
почему не работает сложный запрос?
0 Andy MilkyWay
 
14.08.12
19:06
Имеется сложный запрос:

ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
   ИЗ
       РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
   ГДЕ
       ТоварыНаСкладахОстатки.Номенклатура в  
               (ВЫБРАТЬ
                   ЗаказНарядТовары.Номенклатура
                       ИЗ
                   Документ.ЗаказНаряд.Товары КАК ЗаказНарядТовары
                       ГДЕ
                   ЗаказНарядТовары.Ссылка = &ДокументРезерва)

Когда выполняю отдельно внутренний запрос, правильно отображаются все строки с номенклатурой из ДокументаРезерва. Когда выполняю отдельно верхний запрос с указанием конкретной номенклатуры, правильно показывает остаток. Если во внутреннем запросе дополнительно указываю конкретную номенклатуру, правильно работает весь запрос и показывает остаток по этой номенклатуре. Если же делаю так, как написан фрагмент, т.е. "ГДЕ ТоварыНаСкладахОстатки.Номенклатура В (...)", то не показываются некоторые строки с остатками. Почему?
1 andrewks
 
14.08.12
19:08
это вот сложный запрос? да вы, батенька, не видели сложных запросов
2 Fragster
 
гуру
14.08.12
19:08
про параметры виртуальных таблиц слышал?
3 Andy MilkyWay
 
14.08.12
19:15
(1) сложный не по сложности, а из-за вложенности
(2) слышал, только там сказано, что передается структура. А как я в структуре укажу список номенклатуры, я не понял
4 andrewks
 
14.08.12
19:16
в скобках, в скобках указывай
5 Bober
 
14.08.12
19:16
товара нет на остатках, поэтому строки не показываются.
6 Andy MilkyWay
 
14.08.12
19:16
(3) т.е. я понял, что в структуре указываю "Номенклатура=ХХХХ", типа этого, а как мне передать именно список номенклатуры - не понял
7 Andy MilkyWay
 
14.08.12
19:17
(4) пример можно
(5) товар на складе есть
8 Bober
 
14.08.12
19:17
(6) заменить условие Номенклатура=ХХХХ на Номенклатура в (ВЫБРАТЬ ...)
9 SUA
 
14.08.12
19:17
(7)
Остатки(,Номенклатура В(...))и там тот же подзапрос
10 Bober
 
14.08.12
19:18
(7) да, товар на складе в данный момент есть, но на текущих итогах его может и не быть
11 Нуф-Нуф
 
14.08.12
19:18
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
   ИЗ
       РегистрНакопления.ТоварыНаСкладах.Остатки(Номенклатура в (ВЫБРАТЬ
                   ЗаказНарядТовары.Номенклатура
                       ИЗ
                   Документ.ЗаказНаряд.Товары КАК ЗаказНарядТовары
                       ГДЕ
                   ЗаказНарядТовары.Ссылка = &ДокументРезерва)) КАК ТоварыНаСкладахОстатки
12 Andy MilkyWay
 
14.08.12
19:18
(8) так - попробую
13 Andy MilkyWay
 
14.08.12
19:20
(10) но когда добавляю еще доп. условие "И Номенклатура = &Номенклатура", тогда показывает остаток, как с этим быть?
14 Bober
 
14.08.12
19:22
(13) что за доп условие, покажи запрос.
+ кто сказал, что значение в &Номенклатура есть в
(ВЫБРАТЬ
  ЗаказНарядТовары.Номенклатура
ИЗ
  Документ.ЗаказНаряд.Товары КАК ЗаказНарядТовары
ГДЕ
  ЗаказНарядТовары.Ссылка = &ДокументРезерва)
15 Andy MilkyWay
 
14.08.12
19:24
(14)
(ВЫБРАТЬ
  ЗаказНарядТовары.Номенклатура
ИЗ
  Документ.ЗаказНаряд.Товары КАК ЗаказНарядТовары
ГДЕ
  ЗаказНарядТовары.Ссылка = &ДокументРезерва и ЗаказНарядТовары.Номенклатура = &Номенклатура)

- так выбирает остаток
16 Нуф-Нуф
 
14.08.12
19:26
(15) ужаснах
17 Bober
 
14.08.12
19:27
(16) поддерживаю.
18 andrewks
 
14.08.12
19:29
чё-то у меня от запроса в (15)  вывих мозга - то ли я дурак, и чего-то не понимаю, то ли...
19 Нуф-Нуф
 
14.08.12
19:31
автор. в (11) готовый запрос
20 Нуф-Нуф
 
14.08.12
19:32
ну с маленькой ошибкой
21 Andy MilkyWay
 
15.08.12
10:30
(16), (17) а в чем ужас-то, объясните?
22 Fragster
 
гуру
15.08.12
10:41
(18) если в заказе нет номенклатуры то будет шишЪ
23 notebug
 
15.08.12
10:48
если в тч документа накладывается ограничение на номенклатуру, то почему бы не сделать пакет?
сначать получить номенклатуру из тч документа, поместить во врем. таблицу а потом ее уже в параметры вирт таблицы как в (11), только
... ИЗ ВремТовары КАК ВремТовары
24 Andy MilkyWay
 
15.08.12
11:02
(22) это естественно, ну и не нужны остатки мне по пустой номенклатуре :)
25 In-Vin
 
15.08.12
12:08
(0) А левым соединением не судьба?