Добрый день.
По флагам и настройкам генерится такой запрос:
SELECT
РезервыТМЦОстаткиОбороты.Фирма [Фирма $Справочник.Фирмы]
, СФирма.Descr ФирмаИмя
, СДоговоры.ParentExt [Покупатель $Справочник.Контрагенты]
, СПокупатель.Descr ПокупательИмя
, РезервыТМЦОстаткиОбороты.Склад [Склад $Справочник.Склады]
, ССклад.Descr СкладИмя
, РезервыТМЦОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура]
, СНоменклатура.Descr НоменклатураИмя
, $СНоменклатура.ОсновнаяЕдиница [ОсновнаяЕдиница $Справочник.Единицы]
, ПозицияДокумента [ДатаДок $Дата]
, ltrim(rtrim(ПозицияДокумента)) [Позиция]
, RIGHT(РезервыТМЦОстаткиОбороты.ПозицияДокумента,9) [Документ $Документ]
, РезервыТМЦОстаткиОбороты.ВидДокумента Документ_вид
, Sum(РезервыТМЦОстаткиОбороты.КоличествоНачальныйОстаток) СуммаКоличествоНачальныйОстаток
, Sum(РезервыТМЦОстаткиОбороты.КоличествоПриход) СуммаКоличествоПриход
, Sum(РезервыТМЦОстаткиОбороты.КоличествоРасход) СуммаКоличествоРасход
, Sum(РезервыТМЦОстаткиОбороты.КоличествоКонечныйОстаток) СуммаКоличествоКонечныйОстаток
FROM $РегистрОстаткиОбороты.РезервыТМЦ(:ДатаНачала,:ДатаКонца~,Документ,Движения,
INNER JOIN $Справочник.Фирмы AS СФирма (NOLOCK) ON СФирма.ID=Фирма
INNER JOIN $Справочник.Договоры AS СДоговоры (NOLOCK) ON СДоговоры.ID=ДоговорПокупателя
INNER JOIN $Документ.ЗаявкаПокупателя AS ДЗаявкаПокупателя (NOLOCK) ON ДЗаявкаПокупателя.IDDOC=ЗаявкаПокупателя
,
Номенклатура IN (Select val FROM #СпНоменклатура)
,
(Фирма,Склад,Получатель,ДоговорПокупателя,Номенклатура,ЗаявкаПокупателя)
) AS РезервыТМЦОстаткиОбороты
INNER JOIN $Справочник.Договоры AS СДоговоры (NOLOCK) ON РезервыТМЦОстаткиОбороты.ДоговорПокупателя=СДоговоры.ID
INNER JOIN $Справочник.Номенклатура AS СНоменклатура (NOLOCK) ON СНоменклатура.ID=Номенклатура
INNER JOIN $Справочник.Фирмы AS СФирма (NOLOCK) ON СФирма.ID=РезервыТМЦОстаткиОбороты.Фирма
INNER JOIN $Справочник.Склады AS ССклад (NOLOCK) ON ССклад.ID=РезервыТМЦОстаткиОбороты.Склад
INNER JOIN $Справочник.Контрагенты AS СПолучатель (NOLOCK) ON СПолучатель.ID=РезервыТМЦОстаткиОбороты.Получатель
INNER JOIN $Справочник.Контрагенты AS СПокупатель (NOLOCK) ON СПокупатель.ID=СДоговоры.ParentExt
GROUP BY РезервыТМЦОстаткиОбороты.Фирма
, СФирма.Descr
, СДоговоры.ParentExt
, СПокупатель.Descr
,РезервыТМЦОстаткиОбороты.Склад
, ССклад.Descr
,РезервыТМЦОстаткиОбороты.Номенклатура
, СНоменклатура.Descr
, $СНоменклатура.ОсновнаяЕдиница
,ПозицияДокумента
,ltrim(rtrim(ПозицияДокумента))
,RIGHT(РезервыТМЦОстаткиОбороты.ПозицияДокумента,9)
,РезервыТМЦОстаткиОбороты.ВидДокумента
ORDER BY СФирма.Descr
, СПокупатель.Descr
, ССклад.Descr
, СНоменклатура.Descr
, ПозицияДокумента
На выходе получаю таблицу, по движению 100% совпадающую с отчетом по резервам ТМЦ, но начальные остатки выводятся не верно.
Если нужно прикреплю таблицы из 1С и результат этого запроса.
Что в запросе не правильно? почему начальные остатки выдаются не верные.