Имя: Пароль:
1C
1С v8
СКД и итоги...
,
0 men47
 
19.12.19
18:09
Добрый вечер, никак не могу победить итоги. Нужна помощь.

Делаю относительно простой запрос:

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

И начинаю бороться с ролями в СКД:

https://cdn1.radikalno.ru/uploads/2019/12/19/1cab592d0169a6101755221d335786d2-full.png

на выходе получаю такое:

https://cdn1.radikalno.ru/uploads/2019/12/19/f034f0df0eaa9b729b4d37e8aacb070a-full.png


Начальный остаток не правильный, он должен быть 0, т.к. в предыдущем периоде было 0
Период правильно, конечный не правильно....

что я не так делаю, подскажите, пожалуйста...
1 men47
 
19.12.19
18:10
(0) конечный правильно
2 lodger
 
19.12.19
18:14
ты меняешь суммы "расход-приход" в запросе, а потом спрашиваешь почему эти суммы отличаются от реально записанных?
3 men47
 
19.12.19
18:16
(2) неверно, я спрашиваю, почему он показывает на начало какую-то сумму, когда на начало 0.
4 men47
 
19.12.19
18:18
там вычисления идут для того, чтобы финансы при возврате не паниковали, а считали откатом. В Расходе есть " + БонусныеБаллыОстаткиИОбороты.НачисленоРасход " но там 0.
5 men47
 
19.12.19
18:42
не уверен... но думаю из-за этого

https://cdn1.radikalno.ru/uploads/2019/12/19/9dd0b28b828cfc19d2c511091d080bf3-full.png


и я не могу понять почему он так ставит....
попытался в СКД упорядочить по ПериодСекунда, не помогло
6 men47
 
19.12.19
18:51
причем, отменяешь проведение предпоследнего документа, который дает +22 балла и отчет начинает корректно работать.... проводишь и опять косит... че за фигня=)))
7 men47
 
19.12.19
19:17
короче.... вытащил это в разные наборы данных и сделал объединение, прокатило... пусть так..
8 men47
 
19.12.19
19:18
(7) т.е. разделил на отдельные наборы, "остатки" и "обороты"
9 toypaul
 
гуру
20.12.19
08:10
заказ клиента это не период. регистратор это период
10 toypaul
 
гуру
20.12.19
08:12
и читаем тут последний абзац https://its.1c.ru/db/metod8dev#content:2913:hdoc

а это для полного понимания https://its.1c.ru/db/metod8dev#content:3093:hdoc

(7) и ладушки
11 men47
 
20.12.19
09:53
(9) без разницы хоть ставлю регистратор - период, хоть заказ - период. Он показывает одно и то же.

(10) это было прочитано не однократно, изначально полностью выполнялось по инструкции, но все тоже самое.

в сообщении (5) я отобразил какой последовательностью отображается в консоле запроса данный запрос. Причем, если отменить проведение одного единственного документа, который лезет вперед, то все корректно отображается и в отчете тоже. Итоги пересчитывались, отмена проведения всех документов и последовательное проведение тоже проводилось, тестирование базы тоже и почему-то так отображается.... и кстати, СКД игнорит упорядочивание, заданным запросом...
12 toypaul
 
гуру
20.12.19
10:32
(11) плохо читали последний абзац в первой ссылке. вы делаете то, что нельзя и хотите получить правильный результат
13 men47
 
20.12.19
10:38
(12) но необходимо отобразить так, как в начале=)
14 Cyberhawk
 
20.12.19
10:38
"Начальный остаток не правильный, он должен быть 0" // Так он у тебя и так ноль - для первой детальной записи
15 men47
 
20.12.19
10:39
16 Cyberhawk
 
20.12.19
10:40
(15) Долбишься? В строке с первым заказом пустая ячейка
17 men47
 
20.12.19
10:41
(16) долблюсь, объясняй, почему он в сумме показывает 1040, а не 0...
18 Cyberhawk
 
20.12.19
10:42
(17) То что на уровне группировки нелады это уже твой косяк
19 men47
 
20.12.19
10:42
(16) а так же объясни, почему именно 1040, а не любая иная сумма
20 Cyberhawk
 
20.12.19
10:42
(19) Вот такой вот черный ящик эта СКД
21 men47
 
20.12.19
10:42
(18) в уровне группировки нет касяков
22 men47
 
20.12.19
10:44
(20) а так же читаем пост (6) где я говорю, что если отменить 1 документ, все красиво становится
23 Cyberhawk
 
20.12.19
10:57
(22) Ты выдаешь желаемое за действительное. Тебе просто повезло, что без какого-то документа все выглядит как ты ожидал.
24 Cyberhawk
 
20.12.19
10:57
А на самом деле у тебя где-то косяк
25 men47
 
20.12.19
11:07
(24) полюбому, а еще 1с идеальная программа без косяков=)