Ну просто огромное человеческое спасибо, друзья! Очень выручили, а то в конце года как обычно завал, в голове каша...
В итоге запрос (вернее часть его) получился такой:
|set nocount on
| -- фактический период, расход
|select
| tmz.descr Партномер
|, tmz.id [ТМЦ $Справочник.ТМЦ]
|, left(rtrim(tmz.descr),"+Макс(ДлинаПрефикса,1)+") ПечТМЦ
|, rtrim(tmz.descr)+' '+rtrim($tmz.НаименованиеАнгл) НаименованиеПолн
|, vt_Проводки.Себестоимость2 Себестоимость2
// |, vt_Проводки.КоличествоПродано2 КоличествоПродано2
|, vt_РасхНакл.Количество КоличествоПродано2
|, vt_РасхНакл.СуммаБезНДС/vt_РасхНакл.Количество СредняяЦена2
|, 0 Себестоимость1
|, 0 КоличествоПродано1
|, 0 СредняяЦена1
|, 0 СебестоимостьВозврат2
|, 0 КоличествоПроданоВозврат2
|, 0 СредняяЦенаВозврат2
|, 0 СебестоимостьВозврат1
|, 0 КоличествоПроданоВозврат1
|, 0 СредняяЦенаВозврат1
|from
| (
| select
| $rns.ТМЦ ТМЦ,
| sum($rns.Кво) Количество,
| sum($rns.СуммаБезНДС*$rn.Курс/(case when $rn.Валюта = :НацВалюта then 1 when $rn.Валюта = :Доллар then :КратностьДоллар2 when $rn.Валюта = :Евро then :КратностьЕвро2 else 1 end)) СуммаБезНДС
| from
| $ДокументСтроки.РасходнаяНакладная rns(nolock)
| right join
| _1sjourn j(nolock) on j.iddoc = rns.iddoc
| inner join
| $Документ.РасходнаяНакладная rn(nolock) on rn.iddoc = rns.iddoc
| where
| j.closed & 1 = 1
| and left(j.date_time_iddoc,8) between :НачДата and :КонДата~
| group by
| $rns.ТМЦ
| ) vt_РасхНакл
|inner join
| $Справочник.ТМЦ tmz(nolock) on tmz.id = vt_РасхНакл.ТМЦ
|left join
| (
| select
| sentry.KTSC1 СубконтоКт2,
| sum(sentry.sum_) Себестоимость2,
| sum(sentry.amount) КоличествоПродано2
| from
| _1sentry sentry(nolock)
| right join
| _1sjourn j(nolock) on j.date_time_iddoc = sentry.date_time_docid
| where
| sentry.active <> '*'
| and left(sentry.date_time_docid,8) between :НачДата and :КонДата~
| and sentry.accktid = :ВыбСчетКт
| and sentry.accdtid = :ВыбСчетДт
| and j.iddocdef = $ВидДокумента.РасходнаяНакладная
| group by
| sentry.KTSC1 having sum(sentry.sum_) >= 0
| ) vt_Проводки on vt_Проводки.СубконтоКт2 = vt_РасхНакл.ТМЦ
|
// |********************************************************************
|
|union all -- сравниваемый период, расход
Используется в обработке "Многофакторный анализ прибыльности реализации", для почти типовой бухгалтерии для Украины. Сделан по заданию моего главбуха в целях аналитического обоснования прибылей/убытков от торговых операций, для нетупого руководства и полуграмотной налоговой. Если кого заинтересует могу сюда выложить.
ЗЫ. Используется рекомендованный стабильный релиз с раздельной загрузкой FormEx: 2.5.0.5, FormEx версия: 2.0.5.82, и TableDoc - внешняя компонента для работы с табличным документом.
Причем !!!!!!!!!!!!!!!!!!!!!! с каждым запросом очень сжирается и не очищается память сервера. Кажется зависают виртуальные таблицы в скуле, точнее не предположу, не силен. Однако, имхо, здесь кроется какой-то глюк в или TableDoc или 1ср++