СКД глюки при расчете остатков
В общем я решил провести эксперимент и выяснить, в каких же случаях СКД начинает глючить с расчетом итогов. И вот что получилось.
1. Вот довольно стандартный отчет:
"ВЫБРАТЬ
РасчетыСПокупателямиОстаткиИОбороты.Организация КАК Организация,
РасчетыСПокупателямиОстаткиИОбороты.Договор КАК Договор,
РасчетыСПокупателямиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
РасчетыСПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
РасчетыСПокупателямиОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
РасчетыСПокупателямиОстаткиИОбороты.СуммаПриход КАК СуммаПриход
ИЗ
РегистрНакопления.РасчетыСПокупателями.ОстаткиИОбороты(, , Авто, , ) КАК РасчетыСПокупателямиОстаткиИОбороты" |
Роли настроены стандартным образом:
В результате имеем абсолютно корректно формирующийся отчет:
2. Теперь добавим в запрос новое поле:
"ВЫБРАТЬ
РасчетыСПокупателямиОстаткиИОбороты.Организация КАК Организация,
РасчетыСПокупателямиОстаткиИОбороты.Договор КАК Договор,
РасчетыСПокупателямиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
РасчетыСПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
РасчетыСПокупателямиОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
РасчетыСПокупателямиОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
ВЫБОР
КОГДА РасчетыСПокупателямиОстаткиИОбороты.Регистратор ССЫЛКА Документ.Реализация ИЛИ РасчетыСПокупателямиОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаОтгрузки
ТОГДА РасчетыСПокупателямиОстаткиИОбороты.СуммаОборот
ИНАЧЕ 0
КОНЕЦ КАК СуммаОтгрузка
ИЗ
РегистрНакопления.РасчетыСПокупателями.ОстаткиИОбороты(, , Авто, , ) КАК РасчетыСПокупателямиОстаткиИОбороты" |
На всякий случай еще раз приведу роли:
Добавим новое поле в ресурсы:
И в поля отчета:
В результате остатки в отчете разъехались:
Честно говоря я пришел к выводу что совершенно не понимаю как работает движок СКД. Он видимо как-то пытается каждый раз модифицировать исходных запрос под конкретный набор параметров. Если запрос – простейшая виртуальная таблица, то все работает хорошо. Шаг в сторону – и движок уже спотыкается.
Может кто-то укажет на ошибку в моих действиях или посоветует чего? Буду очень благодарен.
Скорее всего Вас спасет вывод поля ПериодСекунда
Даже не вывод, а выборка и правильное назначение порядка периодов.
А можно поподробнее?
Просто вытащить в поле запроса ПериодСекунда ничего не дает.
У меня была подобная ситуация
Я добавил в запрос ПериодСекунда и настроил Роли
И заработало. У меня там еще расчет процента брака – так что тоже был “шаг влево”.
Вот. На диске ИТС есть статья
“Типичные проблемы при расчете остатков”
/wp-content/uploads/2012/12/tproi8021031.pdf