С СКД работаю (хочется сказать – пытаюсь работать) уже несколько лет. Периодически натыкаюсь на глюки при расчете итогов. Интернет-форумы пестрят такими сообщениями, но похоже никто так и разобрался в проблеме раз и навсегда (либо мне не повезло наткнуться на нужный пост).
В общем я решил провести эксперимент и выяснить, в каких же случаях СКД начинает глючить с расчетом итогов. И вот что получилось.
1. Вот довольно стандартный отчет:
ВЫБРАТЬ РасчетыСПокупателямиОстаткиИОбороты.Организация КАК Организация, РасчетыСПокупателямиОстаткиИОбороты.Договор КАК Договор, РасчетыСПокупателямиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, РасчетыСПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, РасчетыСПокупателямиОстаткиИОбороты.СуммаРасход КАК СуммаРасход, РасчетыСПокупателямиОстаткиИОбороты.СуммаПриход КАК СуммаПриход ИЗ РегистрНакопления.РасчетыСПокупателями.ОстаткиИОбороты(, , Авто, , ) КАК РасчетыСПокупателямиОстаткиИОбороты Роли настроены стандартным образом:

В результате имеем абсолютно корректно формирующийся отчет:

2. Теперь добавим в запрос новое поле:
ВЫБРАТЬ
РасчетыСПокупателямиОстаткиИОбороты.Организация КАК Организация,
РасчетыСПокупателямиОстаткиИОбороты.Договор КАК Договор,
РасчетыСПокупателямиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
РасчетыСПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
РасчетыСПокупателямиОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
РасчетыСПокупателямиОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
ВЫБОР
КОГДА РасчетыСПокупателямиОстаткиИОбороты.Регистратор ССЫЛКА Документ.Реализация
ИЛИ РасчетыСПокупателямиОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаОтгрузки
ТОГДА РасчетыСПокупателямиОстаткиИОбороты.СуммаОборот
ИНАЧЕ 0
КОНЕЦ КАК СуммаОтгрузка
ИЗ
РегистрНакопления.РасчетыСПокупателями.ОстаткиИОбороты(, , Авто, , ) КАК РасчетыСПокупателямиОстаткиИОбороты
На всякий случай еще раз приведу роли:

Добавим новое поле в ресурсы:

И в поля отчета:

В результате остатки в отчете разъехались:

Честно говоря я пришел к выводу что совершенно не понимаю как работает движок СКД. Он видимо как-то пытается каждый раз модифицировать исходных запрос под конкретный набор параметров. Если запрос – простейшая виртуальная таблица, то все работает хорошо. Шаг в сторону – и движок уже спотыкается.
Может кто-то укажет на ошибку в моих действиях или посоветует чего? Буду очень благодарен.






Скорее всего Вас спасет вывод поля ПериодСекунда
Даже не вывод, а выборка и правильное назначение порядка периодов.
А можно поподробнее?
Просто вытащить в поле запроса ПериодСекунда ничего не дает.
У меня была подобная ситуация
Я добавил в запрос ПериодСекунда и настроил Роли
http://1cskd.ru/wp-content/uploads/2012/12/03-12-2012-15-44-34.png
И заработало. У меня там еще расчет процента брака – так что тоже был “шаг влево”.
Вот. На диске ИТС есть статья
“Типичные проблемы при расчете остатков”
http://1cskd.ru/wp-content/uploads/2012/12/tproi8021031.pdf