Имя: Пароль:
1C
1С v8
Помогите с запросом 55
,
0 Klesk
 
12.05.12
08:00
ВЫБРАТЬ ПЕРВЫЕ 5000
   НоменклатураСсылка.Артикул,
   СУММА(ЗаказыПоставщикамОстатки.ЗаказаноОстаток) КАК ЗаказаноОстаток,
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) КАК ВНаличииОстаток,
   СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) КАК ВРезервеОстаток,
   СвободныеОстаткиОстатки.Склад,
   НоменклатураСсылка.Наименование,
   НоменклатураСсылка.ЦеноваяГруппа,
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.Ссылка
ИЗ
   Справочник.Номенклатура КАК НоменклатураСсылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
       ПО НоменклатураСсылка.Ссылка = СвободныеОстаткиОстатки.Номенклатура.Ссылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(, {(ЗаказПоставщику.ДокументОснование.Ссылка = &ПустойЗаказ) КАК Поле2}) КАК ЗаказыПоставщикамОстатки
       ПО НоменклатураСсылка.Ссылка = ЗаказыПоставщикамОстатки.Номенклатура.Ссылка
ГДЕ
   НоменклатураСсылка.Артикул > """"
   И НоменклатураСсылка.ЦеноваяГруппа <> &НеВключатьвПрайс

СГРУППИРОВАТЬ ПО
   НоменклатураСсылка.Артикул,
   СвободныеОстаткиОстатки.Склад,
   НоменклатураСсылка.Наименование,
   НоменклатураСсылка.ЦеноваяГруппа,
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.Ссылка

ИМЕЮЩИЕ
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) - СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) > 0

Не возвращает ЗаказаноОстаток, если сделать
ПРАВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(....
то выбирает строки только где ЗаказаноОстаток присутствует
как правильно сделать, чтобы суммировался ЗаказаноОстаток только когда у заказа поставщика нет документа основания, заранее спасиба
1 andrewks
 
12.05.12
08:07
ну включи в условие соединения
2 Klesk
 
12.05.12
08:09
в ГДЕ?
3 shuhard
 
12.05.12
08:10
(2) в ПО
4 Klesk
 
12.05.12
08:14
Добавил в
СГРУППИРОВАТЬ ПО
              ..
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.ДокументОснование.Ссылка

не помогло, объясните, что и куда добавить
5 andrewks
 
12.05.12
08:15
етить...

соединение ... ПО -=> ТУТ!!! -=<
6 Klesk
 
12.05.12
08:23
так?

ВЫБРАТЬ ПЕРВЫЕ 5000
   НоменклатураСсылка.Артикул,
   СУММА(ЗаказыПоставщикамОстатки.ЗаказаноОстаток) КАК ЗаказаноОстаток,
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) КАК ВНаличииОстаток,
   СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) КАК ВРезервеОстаток,
   СвободныеОстаткиОстатки.Склад,
   НоменклатураСсылка.Наименование,
   НоменклатураСсылка.ЦеноваяГруппа,
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.Ссылка
ИЗ
   Справочник.Номенклатура КАК НоменклатураСсылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
       ПО НоменклатураСсылка.Ссылка = СвободныеОстаткиОстатки.Номенклатура.Ссылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
       ПО НоменклатураСсылка.Ссылка = ЗаказыПоставщикамОстатки.Номенклатура.Ссылка И ЗаказПоставщику.ДокументОснование.Ссылка = &ПустойЗаказ
ГДЕ
   НоменклатураСсылка.Артикул > """"
   И НоменклатураСсылка.ЦеноваяГруппа <> &НеВключатьвПрайс

СГРУППИРОВАТЬ ПО
   НоменклатураСсылка.Артикул,
   СвободныеОстаткиОстатки.Склад,
   НоменклатураСсылка.Наименование,
   НоменклатураСсылка.ЦеноваяГруппа,
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.Ссылка
ИМЕЮЩИЕ
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) - СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) > 0

все равно пусто :(
7 shuhard
 
12.05.12
08:48
(6) убери

ИМЕЮЩИЕ
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) - СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) > 0

и ответь себе на вопрос:
как при левом соединении и без ЕстьNULL может такая конструкция работать
8 Klesk
 
12.05.12
08:51
(7) все работает вроде
не могу только эту проверку добавить на заказклиента
9 Klesk
 
12.05.12
08:59
убрал ИМЕЮЩИЕ не помогло тоже
10 DEVIce
 
12.05.12
09:03
Не уверен я что вот такая конструкция "НоменклатураСсылка.Артикул > """"" правильно будет работать, далеко не факт, что это проверка на пустой артикул. :)
11 Klesk
 
12.05.12
09:25
Спасибо, все получилось

ВЫБРАТЬ ПЕРВЫЕ 5000
   НоменклатураСсылка.Артикул,
   ВЫБОР КОГДА ЗаказыПоставщикамОстатки.ЗаказПоставщику.ДокументОснование.Ссылка=&ПустойЗаказ ТОГДА
   СУММА(ЗаказыПоставщикамОстатки.ЗаказаноОстаток)
   ИНАЧЕ 0 КОНЕЦ КАК ЗаказаноОстаток
   ,
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) КАК ВНаличииОстаток,
   СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) КАК ВРезервеОстаток,
   СвободныеОстаткиОстатки.Склад,
   НоменклатураСсылка.Наименование,
   НоменклатураСсылка.ЦеноваяГруппа,
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.Ссылка
ИЗ
   Справочник.Номенклатура КАК НоменклатураСсылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
       ПО НоменклатураСсылка.Ссылка = СвободныеОстаткиОстатки.Номенклатура.Ссылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
       ПО НоменклатураСсылка.Ссылка = ЗаказыПоставщикамОстатки.Номенклатура.Ссылка
ГДЕ
   НоменклатураСсылка.Артикул > """"
   И НоменклатураСсылка.ЦеноваяГруппа <> &НеВключатьвПрайс

СГРУППИРОВАТЬ ПО
   НоменклатураСсылка.Артикул,
   СвободныеОстаткиОстатки.Склад,
   НоменклатураСсылка.Наименование,
   НоменклатураСсылка.ЦеноваяГруппа,
   ЗаказыПоставщикамОстатки.ЗаказПоставщику.Ссылка

ИМЕЮЩИЕ
   СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) - СУММА(СвободныеОстаткиОстатки.ВРезервеОстаток) > 0

УПОРЯДОЧИТЬ ПО
   ЗаказаноОстаток
12 Vesa
 
12.05.12
09:35
Текст запроса написан не корректно (нет ф-ции ЕстьNULL). Но, вроде, результат будет выдавать правильный.