Имя: Пароль:
1C
1С v8
Запрос по табличным частям документа
0 micha
 
13.11.11
18:26
Задача: Вывести результат запроса строками, чтобы в строках были данные табличных частей документа. Допустим есть документ РеализацияТоваровУслуг в нем есть 3 табличные части. В тобличной части Товар есть строка с Номенклатурой1 и количеством 2, В табличной части возвратная тара Есть Номенклатура2 и количеством 5, в табличной части Услуги есть Номенклатура3 и количеством 3 результат должен быть следующий
Номенклатура     Количество
Номенклатура1    2
Номенклатура2    5
Номенклатура3    3


Пробывал делать через

ВЫБРАТЬ РАЗЛИЧНЫЕ
   РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
   СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
   РеализацияТоваровУслугТовары.Номенклатура

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   РеализацияТоваровУслугВозвратнаяТара.Номенклатура,
   РеализацияТоваровУслугВозвратнаяТара.Количество
ИЗ
   Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслугВозвратнаяТара
данные выдает некоректные.
Какие могут быть мысли?
1 kosts
 
13.11.11
18:33
Если номенклатура повторяется, то сгруппировать нужно после объединения.


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

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   РеализацияТоваровУслугВозвратнаяТара.Номенклатура,
   РеализацияТоваровУслугВозвратнаяТара.Количество
ИЗ
   Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслугВозвратнаяТара
) как Таблица1
СГРУППИРОВАТЬ ПО
   Номенклатура

как то так (могу ошибаться)
2 kosts
 
13.11.11
18:35
тут видимо "РАЗЛИЧНЫЕ" - не нужно
3 Нуф-Нуф
 
13.11.11
18:40
а что подразумевается под "некорректные"?
4 kosts
 
13.11.11
18:45
Еще условие "где" во втором подзапросе пропущено.
5 micha
 
13.11.11
18:48
запрос изменил

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

СГРУППИРОВАТЬ ПО
   Таблица1.Номенклатура


Сейчас не выводит Номенклатура2 если она второй раз присудствует в табличной части возвратная тара
6 kosts
 
13.11.11
18:53
(5) В описании вижу 3 табличные части, в запросе 2. Так и нужно?
7 micha
 
13.11.11
18:55
(6) я упростил задачу
8 micha
 
13.11.11
19:06
все спасибо заработало

ВЫБРАТЬ
   Таблица1.Номенклатура КАК Номенклатура,
   Таблица1.Количество КАК Количество
ИЗ
   (ВЫБРАТЬ
       РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
       РеализацияТоваровУслугТовары.Количество КАК Количество
   ИЗ
       Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   ГДЕ
       РеализацияТоваровУслугТовары.Ссылка = &Ссылка
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       РеализацияТоваровУслугВозвратнаяТара.Номенклатура,
       РеализацияТоваровУслугВозвратнаяТара.Количество
   ИЗ
       Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслугВозвратнаяТара
   ГДЕ
       РеализацияТоваровУслугВозвратнаяТара.Ссылка = &Ссылка) КАК Таблица1
9 kosts
 
13.11.11
19:10
(8) Если без группировки, то внешний запрос и не нужен.
Закон Брукера: Даже маленькая практика стоит большой теории.