Проблема такая - Из регистра РегистрОстаткиОбороты за определенный период выбираются движения. В результирующей таблице выводится неверный остаток. Такое чувство, что они считаются так : Остатки = Было - Расход, а приход не учитывается, т.е. остатки всегда отрицательные... Помогите плиз...
Код примерно такой:
Запрос = СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |SELECT |РегПок.Фирма as [Фирма $Справочник.Фирмы], |$ФирмаСпр.УпрАналитика as [УпрАналитика $Справочник.УпрАналитика], |$ФирмаСпр.ЮрЛицо as [ЮрЛицо $Справочник.СвоиЮрЛица], |ДоговорСпр.ParentExt as [Контрагент $Справочник.Контрагенты], |РегПок.Договор as [Договор $Справочник.Договоры], |РегПок.ВидДолга as [ВидДолга $Перечисление.ВидыДолга], |РегПок.КредДокумент as [КредДокумент $Документ], |РегПок.КодОперации as [КодОперации $Перечисление.КодыОпераций], |Журнал.$ОбщийРеквизит.Проект as [Проект $Справочник.Проекты], |Right(РегПок.ПозицияДокумента, 9) as [Док $Документ], |РегПок.ВидДокумента as Док_вид, |РегПок.СуммаВалНачальныйОстаток as НачОстВ, |РегПок.СуммаВалПриход as ПриходВ, |РегПок.СуммаВалРасход as РасходВ, |РегПок.СуммаВалКонечныйОстаток as КонОстВ, |Case When РегПок.КодОперации = :глкоВозвратОтПокупателя |Then РегПок.СуммаВалРасход |Else 0 End ВозвратОтПокупателяВ,
|Case When РегПок.КодОперации = :глкоВозвратПоставщику |Then РегПок.СуммаВалПриход |Else 0 End ВозвратПоставщикуВ, |Case When (Left(ЖурналКредДок.Date_Time_IDDoc, 8) <>:ПустаЗнач) |AND (Left(ЖурналКредДок.Date_Time_IDDoc, 8) <:КонДата~) |Then РегПок.СуммаВалКонечныйОстаток |Else 0 End КонОстП
|FROM |$РегистрОстаткиОбороты.Покупатели(:НачДата,:КонДата~,Документ,,,,) as РегПок |INNER JOIN $Справочник.Фирмы as ФирмаСпр ON ФирмаСпр.ID = РегПок.Фирма |INNER JOIN _1SJOURN as Журнал ON РегПок.ПозицияДокумента = Журнал.DATE_TIME_IDDOC |INNER join _1sJourn AS ЖурналКредДок (NOLOCK) on ЖурналКредДок.IDDoc = Right(РегПок.КредДокумент,9) |INNER JOIN $Справочник.Договоры as ДоговорСпр ON ДоговорСпр.ID = РегПок.Договор;
Запрос.УстановитьТекстовыйПараметр("глкоВозвратОтПокупателя", глКО.ВозвратОтПокупателя); Запрос.УстановитьТекстовыйПараметр("глкоВозвратПоставщику", глКО.ВозвратПоставщику); Запрос.УстановитьТекстовыйПараметр("ПустаЗнач", ПолучитьПустоеЗначение("Дата")); Запрос.УстановитьТекстовыйПараметр("ПеремКонтр", МножественныйФильтр); Если ПустоеЗначение(НачДата) = 1 Тогда Запрос.УстановитьТекстовыйПараметр("НачДата", Дата("01.01.01")); Иначе Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата); КонецЕсли;
Если ПустоеЗначение(КонДата) = 1 Тогда Запрос.УстановитьТекстовыйПараметр("КонДата", ТекущаяДата()); Иначе Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата); КонецЕсли; ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТЗ.Выгрузить(ТЗ1);
|