Нестандартный отчет СКД
- Получаем начальный остаток обоих РН на дату начала отчета
- Получаем все записи обоих РН (у них реквизиты Организация и контрагент одинаковые, а договоры разные)
- Сортируем список (2) по периоду
- Последовательно проходим по всем отсортированным записям и, если запись из РН товары полученные, остаток увеличиваем на сумму записи, если товары переданные, уменьшаем.
В результате получается типовой отчет (нач остаток, приход, расход, кон остаток).
Все было бы просто если бы не несколько условий:
- 1) Иерархия отчета может строиться произвольно. То есть пользователь может убрать, например, договор, контрагента, а возможно и номенклатуру;
- 2) Ресурсы “Приход” и “Расход” по вышестоящим группировкам суммируются (здесь проблем нет, штатный механизм), а вот ресурсы “Начальный остаток” и “Конечный остаток” должны вести себя по-иному:
- 3) “Начальный остаток” – сумма группировки по первому значению (первая строка в группировке)
- 4) “Конечный остаток” – сумма группировки по последнему значению (последняя строка в группировке)
В общем вот такой нестандартный отчет
Чтобы было более понятно, приложил скрин:
<изображение утеряно :(>
По вышестоящим группировкам начальный остаток должен быть 1457 (1367 первой строки номенклатуры Матал + 90 первой строки номенклатуры (евро))
конечный остаток – 1268 (1188 последней строки номенклатуры Матал + 80 последней строки номенклатуры (евро))
В общем что только я не пробовал, никак не получается каменный цветок.
Пробовал вычислять строки, добавлять их в ТЗ, а потом передавать в СКД, пробовал объединять 2 запроса и выводить строки с помощью
IsNull(ВЫЧИСЛИТЬВЫРАЖЕНИЕ("КонечныйОстаток", , , "Предыдущая", "Предыдущая"),НачальныйОстаток) |
Ни один из вариантов не подошел
Может кто-нибудь сталкивался с подобным заданием и уже победил?
Был бы очень благодарен за советы