Ребят, есть знатоки СКД? Отчетом получается таблица типа:

Позиции | Сумма | ВычетаемаяСумма |
  поз1 | 5000 | -8000 |
  поз2 | 6000 | -8000 |
  поз3 | 7000 | -8000 |
  поз4 | 8000 | -8000 |

и нужно эту вычетаемую сумму средствами СКД распределить на позиции, начиная с самой первой, т.е, чтобы получилась таблица:

Позиции | Сумма | ВычетаемаяСумма |
  поз1 | 0 | -8000 |
  поз2 | 3000 | -8000 |
  поз3 | 7000 | -8000 |
  поз4 | 8000 | -8000 |

Я читаю про всякие функции типа ВычислитьВыражениеСГруппировкой, но не понимаю можно ли с их помощью сделать подобную штуку?
---
Можно добавить пользовательское поле, что-то в этом роде:

```1c
    Выбор
    Когда ВычислитьВыражение("Сумма(Сумма)", , , "Предыдущая", "Предыдущая") Есть Null Или ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Текущая") < ВычитаемаяСуммаМодуль
    Тогда Выбор
    Когда Сумма - ВычитаемаяСуммаМодуль < 0
    Тогда 0
    Иначе Сумма - ВычитаемаяСуммаМодуль
    Конец
    Иначе Выбор
    Когда ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Предыдущая") > ВычитаемаяСуммаМодуль
    Тогда Сумма
    Иначе Сумма - ВычитаемаяСуммаМодуль + ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Предыдущая")
    Конец
    Конец
```

См. отчет во вложении.
---
Если правильно понял, то Вычитаемая сумма одна и она должна последовательно отниматься от каждой строки, пока не зачтется полностью.
Позиции | Сумма | ВычетаемаяСумма |
поз1 | 5000 | -8000 |5000 - 8000 Остаток вычитаемой суммы 3000
поз2 | 6000 | -3000 |6000 - 3000 Остаток вычитаемой суммы 0
поз3 | 7000 | -0000 |
поз4 | 8000 | -0000 |

Тогда средствами СКД такое лучше не делать. Если очень надо сделать на СКД, то в модуле отчета при компоновке данных выгрузите результат запроса в таблицу, обработайте её программно и загрузите её обратно в СКД. Так как запросами такое врятли получится сделать.

Если надо просто в итогах посчитать, то просто Сумма("Сумма") - Максимум("ВычетаемаяСумма")
---
Да я понимаю, что итоги сойдутся, если просто из суммы вычесть это поле, в том-то и прикол, что сейчас оно в итогах считается, а по детальным записям не закрывается. Ну т.е. СКД так не умеет, что перебрать запрос циклом и разнести эту сумму - это понятно, хотелось просто найти красивое решение средставми СКД.
---
"Красивое решение" средствами СКД не найти. СКД в первую очередь это отчет и формирование формы отчета. Возможностей масса, но если надо обработать запрос по строкам, то это уже не СКД.
Можно сделать отчет СКД полностью программно, тогда можно будет обработать результат при выводе отчета. Но красивым такое решение назвать трудно.

Можно программно обрабатывать выведенный результат расшифровки. Тут просто работа с табличным документом.
Можно еще попробовать посмотреть в сторону функций (для СКД можно написать функцию), но я ни разу с таким не сталкивался, поэтому подсказать не могу здесь.
---
Можно добавить пользовательское поле, что-то в этом роде:

```1c
    Выбор
    Когда ВычислитьВыражение("Сумма(Сумма)", , , "Предыдущая", "Предыдущая") Есть Null Или ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Текущая") < ВычитаемаяСуммаМодуль
    Тогда Выбор
    Когда Сумма - ВычитаемаяСуммаМодуль < 0
    Тогда 0
    Иначе Сумма - ВычитаемаяСуммаМодуль
    Конец
    Иначе Выбор
    Когда ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Предыдущая") > ВычитаемаяСуммаМодуль
    Тогда Сумма
    Иначе Сумма - ВычитаемаяСуммаМодуль + ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Предыдущая")
    Конец
    Конец
```

См. отчет во вложении.
---
Здесь можно применить вычисление нарастающего итога как в (5)

это нарастающий итог ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Текущая")

если он меньше заданной суммы, то в колонке 0

если он больше, то смотрим (нарастающий итог - текущее значение или что тоже самое ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Предыдущая")). если это значение больше, то значение в колонке не меняется, иначе в колонке разница нарастающего итога и числа
---
Блин, способ крутой и он даже работает, только у меня его в свой отчет почему-то не получилось впихать, мне потребовалось делать такое разнесение не по детальным записям теперь, а по группировке, поэтому сделал поле с такой же формулой в вычисляемых, сделал его ресурсом (видимо в этом какой-то затык).. В формуле везде переделал ВычислитьВыражение (указал вторым параметром свою группировку), так вот это поле стало показывать какую-то погоду.. То в минус значения, то отнимать не оттуда, и по цифрам понять что она делает не получилось. просидел всю ночь, но так и не понял в чем была проблема. Переделал все на внешний источник данных и обход результата запроса в цикле с составлением ТЗ. Потому что заказчику нужно было срочно сдать работы. Спасибо за направление, на досуге разберусь как это работает у вас и почему у меня не заработало..