1. Вот рабочий пример:
|SELECT
| [З.Док] Док
|, [З.Товар] Товар
|, (SUM([З.КолР])) КолР
|, (SUM([З.ЦенаР])) ЦенаР
|, (SUM([З.СумР])) СумР
|, (SUM([З.КолВ])) КолВ
|, (SUM([З.ЦенаВ])) ЦенаВ
|, (SUM([З.СумВ])) СумВ
|, (GROUPING([З.Док])) грДок
|, (GROUPING([З.Товар])) грТовар
|INTO
| #Врем
|FROM
|(
| SELECT
| [Ж.Ссылка] Док
|, [Т.Товар] Товар
|, (SUM([Т.Количество])) КолР
|, (SUM([Т.Цена])) ЦенаР
|, (SUM([Т.Сумма])) СумР
|, (SUM(0)) КолВ
|, (SUM(0)) ЦенаВ
|, (SUM(0)) СумВ
| FROM
| [Журнал] Ж WITH (NOLOCK)
| JOIN
| [Документ.РасходнаяНакладная] Ш WITH (NOLOCK)
| ON
| [Ж.Ссылка] = [Ш.Ссылка]
| JOIN
| [ТабличнаяЧасть.РасходнаяНакладная] Т WITH (NOLOCK)
| ON " + ?(ВыбКлиент.РазмерСписка() <> 0,"[Ш.Ссылка] = [Т.Ссылка]","[Ж.Ссылка] = [Т.Ссылка]") + "
| WHERE
| [Ж.Закрыт] & 1 = 1 AND [Ж.ДатаДок] BETWEEN [@Дата1] AND [@Дата2]
|" + ?(ПустаяСтрока(ФильтрЗапроса)=0," AND " + ФильтрЗапроса,"") + "
| AND
| [Ш.ПризнакНакладной] = [@ПризнакПродажи]
| GROUP BY
| [Ж.Ссылка],[Т.Товар]
|
|UNION ALL
|
| SELECT
| [Ж.Ссылка] Док
|, [Т.Товар] Товар
|, (SUM([Т.Количество])) КолР
|, (SUM([Т.Цена])) ЦенаР
|, (SUM([Т.Сумма])) СумР
|, (SUM(0)) КолВ
|, (SUM(0)) ЦенаВ
|, (SUM(0)) СумВ
| FROM
| [Журнал] Ж WITH (NOLOCK)
| JOIN
| [Документ.РасходнаяРеализатора] Ш WITH (NOLOCK)
| ON
| [Ж.Ссылка] = [Ш.Ссылка]
| JOIN
| [ТабличнаяЧасть.РасходнаяРеализатора] Т WITH (NOLOCK)
| ON " + ?(ВыбКлиент.РазмерСписка() <> 0,"[Ш.Ссылка] = [Т.Ссылка]","[Ж.Ссылка] = [Т.Ссылка]") + "
| WHERE
| [Ж.Закрыт] & 1 = 1 AND [Ж.ДатаДок] BETWEEN [@Дата1] AND [@Дата2]
|" + ?(ПустаяСтрока(ФильтрЗапроса)=0," AND " + ФильтрЗапроса,"") + "
| AND
| [Ш.ПризнакНакладной] = [@ПризнакПродажи]
| GROUP BY
| [Ж.Ссылка],[Т.Товар]";
Если ВыбКлиент.РазмерСписка() = 0 Тогда
глТекст = глТекст + "
|
|UNION ALL
|
|SELECT
| [Ж.Ссылка] Док
|, [Т.Товар] Товар
|, (SUM([Т.Количество])) КолР
|, (SUM([Т.Цена])) ЦенаР
|, (SUM([Т.Сумма])) СумР
|, (SUM(0)) КолВ
|, (SUM(0)) ЦенаВ
|, (SUM(0)) СумВ
|FROM
| [Журнал] Ж WITH (NOLOCK)
|JOIN
| [ТабличнаяЧасть.ОтчетКассовойСмены] Т WITH (NOLOCK)
|ON
| [Ж.Ссылка] = [Т.Ссылка]
|WHERE
| [Ж.Закрыт] & 1 = 1 AND [Ж.ДатаДок] BETWEEN [@Дата1] AND [@Дата2] "
+ ?(ПустаяСтрока(ФильтрЗапроса)=0," AND " + ФильтрЗапроса,"") + "
|GROUP BY
| [Ж.Ссылка],[Т.Товар]
|
|UNION ALL
|
|SELECT
| [Ж.Ссылка] Док
|, [Т.Товар] Товар
|, (SUM([Т.Количество])) КолР
|, (SUM([Т.Цена])) ЦенаР
|, (SUM([Т.Сумма])) СумР
|, (SUM(0)) КолВ
|, (SUM(0)) ЦенаВ
|, (SUM(0)) СумВ
|FROM
| [Журнал] Ж WITH (NOLOCK)
|JOIN
| [Документ.Чек] Ш WITH (NOLOCK)
|ON
| [Ж.Ссылка] = [Ш.Ссылка]
|JOIN
| [ТабличнаяЧасть.Чек] Т WITH (NOLOCK)
|ON
| [Ш.Ссылка] = [Т.Ссылка]
|WHERE
| [Ж.Закрыт] & 1 = 1 AND [Ж.ДатаДок] BETWEEN [@Дата1] AND [@Дата2] "
+ ?(флУчетВозврата = 0," AND [Ш.ЧекНаВозврат] = 0","")
+ ?(ПустаяСтрока(ФильтрЗапроса)=0," AND " + ФильтрЗапроса,"") + "
|GROUP BY
| [Ж.Ссылка],[Т.Товар]";
КонецЕсли;
Если флУчетВозврата = 1 Тогда
глТекст = глТекст + "
|
|UNION ALL
|
|SELECT
| [Ж.Ссылка] Док
|, [Т.Товар] Товар
|, (SUM(0)) КолР
|, (SUM(0)) ЦенаР
|, (SUM(0)) СумР
|, (SUM([Т.Количество])) КолВ
|, (SUM([Т.Цена])) ЦенаВ
|, (SUM([Т.Сумма])) СумВ
|FROM
| [Журнал] Ж WITH (NOLOCK)
|JOIN
| [Документ.ПриходнаяНакладная] Ш WITH (NOLOCK)
|ON
| [Ж.Ссылка] = [Ш.Ссылка]
|JOIN
| [ТабличнаяЧасть.ПриходнаяНакладная] Т WITH (NOLOCK)
|ON " + ?(ВыбКлиент.РазмерСписка() <> 0,"[Ш.Ссылка] = [Т.Ссылка]","[Ж.Ссылка] = [Т.Ссылка]") + "
|WHERE
| [Ж.Закрыт] & 1 = 1 AND [Ж.ДатаДок] BETWEEN [@Дата1] AND [@Дата2]
|AND [Ш.ПризнакНакладной] = [@ПризнакВозврата]
|" + ?(ПустаяСтрока(ФильтрЗапроса)=0," AND " + ФильтрЗапроса,"") + "
|GROUP BY
| [Ж.Ссылка],[Т.Товар]
|
|UNION ALL
|
|SELECT
| [Ж.Ссылка] Док
|, [Т.Товар] Товар
|, (SUM(0)) КолР
|, (SUM(0)) ЦенаР
|, (SUM(0)) СумР
|, (SUM([Т.Количество])) КолВ
|, (SUM([Т.Цена])) ЦенаВ
|, (SUM([Т.Сумма])) СумВ
|FROM
| [Журнал] Ж WITH (NOLOCK)
|JOIN
| [Документ.ПриходнаяРеализатора] Ш WITH (NOLOCK)
|ON
| [Ж.Ссылка] = [Ш.Ссылка]
|JOIN
| [ТабличнаяЧасть.ПриходнаяРеализатора] Т WITH (NOLOCK)
|ON " + ?(ВыбКлиент.РазмерСписка() <> 0,"[Ш.Ссылка] = [Т.Ссылка]","[Ж.Ссылка] = [Т.Ссылка]") + "
|WHERE
| [Ж.Закрыт] & 1 = 1 AND [Ж.ДатаДок] BETWEEN [@Дата1] AND [@Дата2]
|AND [Ш.ПризнакНакладной] = [@ПризнакВозврата]
|" + ?(ПустаяСтрока(ФильтрЗапроса)=0," AND " + ФильтрЗапроса,"") + "
|GROUP BY
| [Ж.Ссылка],[Т.Товар]
|";
По каждому документу необходимо писать подзапрос и соединять все через UNION ALL
2. Попробуй так:
SELECT
[РНК.ДокОснование] IS Документ
FROM
[Документ.РасходнаяНакладная] РНК WITH(NOLOCK)
Правда работоспособность не проверял!