СКД глюки при расчете остатков

С СКД работаю (хочется сказать – пытаюсь работать) уже несколько лет. Периодически натыкаюсь на глюки при расчете итогов. Интернет-форумы пестрят такими сообщениями, но похоже никто так и разобрался в проблеме раз и навсегда (либо мне не повезло наткнуться на нужный пост).

В общем я решил провести эксперимент и выяснить, в каких же случаях СКД начинает глючить с расчетом итогов. И вот что получилось.

1. Вот довольно стандартный отчет:

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

Роли настроены стандартным образом:

Роли

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

Отчет 1

2. Теперь добавим в запрос новое поле:

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

На всякий случай еще раз приведу роли:
Роли 2

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

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

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

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

Может кто-то укажет на ошибку в моих действиях или посоветует чего? Буду очень благодарен.

Подписаться
Уведомить о
guest
7 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
also
11 лет назад

Скорее всего Вас спасет вывод поля ПериодСекунда

borrman
borrman
11 лет назад

Даже не вывод, а выборка и правильное назначение порядка периодов.

borrman
borrman
11 лет назад

У меня была подобная ситуация
Я добавил в запрос ПериодСекунда и настроил Ролиcomment image

borrman
borrman
11 лет назад

И заработало. У меня там еще расчет процента брака – так что тоже был “шаг влево”.

borrman
borrman
11 лет назад

Вот. На диске ИТС есть статья
“Типичные проблемы при расчете остатков”

borrman
borrman
11 лет назад