Входящее сальдо

Много лет работаю с бухгалтерией,
вроде все там знаю, проблем не было.
И сальдо тоже писал многократно.
Но некоторые программы остались по наследству
от ушедших на пенсию коллег. Есть у меня такое свойство,
может и плохое. Если добились нужной цифры из чужого кода,
я это в упор не понимаю, пытаюсь написать свой вариант.
После неких реформ нужно среди прочего изменить кода
расчета сальдо на начало года. Вчера коллега исправила чужой код,
и он дает верные цифры. Не понимаю я там сбор из разных таблиц и использование древнего оператора total
По смыслу сбор сальдо должен идти из всего одной таблицы проводок в которой
в начале года и лежит входящее сальдо на год, накопившееся за предыдущий год.
А запускать его мне. Пытался написать свой вариант,
процентов на 95 дает все верно. Но есть строки, которые в упор не идут.
И так , в таблице проводок поля debschet,credschet,andeb,ancread, smr, mesatz
В обычной не сальдовой проводки как правило есть все комбинации полей.
Во входящем сальдо должно быть заполнено или debschet,andeb,smr или credschet, ancread
smr. mesatz=0
Сумма в итоге должна быть всегда положительная .
Если в варианте debschet,andeb сумма получилась с минусом, ставим ей плюс
обеляем поля debschet,andeb и ставим вместо них credschet, ancread
Или если в варианте credschet, ancread сумма получилась отрицательная, меняем ей знак
, обеляем credschet, ancread и переносим их в debschet,andeb
Весь код написал в нескольких select c group by
Ньюанс , бывают исходные не сальдовые проводки с перебросом, где debschet и credschet равны друг другу.
Обычно они встречаются парами , где сумма сначала с плюсом, а потом с минусом.
Может кто писал такое. Код конечно могу тут привести, но там полно не нужных деталей
Делаю сначала select только по debschet,credschet, sum(smr) group by debschet,credschet
потом такой же по credschet, ancread
Из двух получившихся курсоров создаю курсор с уникальной комбинацией
select distinct
debschet,credschet
union all
credschet, ancread
Нf него с помощью двух left join навешиваю два предыдущих курсора
В результирующем курсоре меняю по описанному правилу debschet,andeb - credschet, ancread
оставляя только одну пару и меняя где нужно знак суммы.
Все. Исходого тз или документации нет. Был вчера у двух замов главбуха,
пытаясь получить формулу для исходящего годового сальдо,
лучше бы не ходил.

0

Автор публикации

Пользователи не найдены
Оставить комментарий
Авторизация
*
*
Генерация пароля