:: Visual Foxpro, Foxpro for DOS
Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Много лет работаю с бухгалтерией,
вроде все там знаю, проблем не было.
И сальдо тоже писал многократно.
Но некоторые программы остались по наследству
от ушедших на пенсию коллег. Есть у меня такое свойство,
может и плохое. Если добились нужной цифры из чужого кода,
я это в упор не понимаю, пытаюсь написать свой вариант.
После неких реформ нужно среди прочего изменить кода
расчета сальдо на начало года. Вчера коллега исправила чужой код,
и он дает верные цифры. Не понимаю я там сбор из разных таблиц и использование древнего оператора 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
оставляя только одну пару и меняя где нужно знак суммы.
Все. Исходого тз или документации нет. Был вчера у двух замов главбуха,
пытаясь получить формулу для исходящего годового сальдо,
лучше бы не ходил.
Ratings: 0 negative/0 positive
Re: Входящее сальдо
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Описание процесса выглядит... не совсем полно. Если дипломатично выразиться.

Когда-то, ну просто очень давно, пришлось заниматься чем-то подобным. После общения с главбухом и замом (обе весьма толковые попались, что бывает редко) понял, что надо отказываться от SELECT-SQL при обработке, поскольку существует с добрый десяток неочевидных нюансов, о которых знают бухи, но они их просто не помнят. Я же знаю, что "что-то есть", но не знаю, что, и как это "что" проводится.
Поэтому приходилось брать помесячные формы и сверять с тем, что было когда-то сформировано бухами без моего софта. Обработка велась по отдельным записям в циклах. Так постепенно и "всё всплыло".

Насчёт расчёта сальдо. Вопрос где и как его хранить - вопрос интересеый, конечно.
Идеальным представляется такой вариант. Есть таблица с итоговым сальдо, хранящимся на начало текущего отчётного периода (как правило, месяца). В этой таблице также может накапливаться движение в разрезе счетов (субсчетов), контрагентов и т. д. Например, при бюджетном финансировании сальдо ведётся ещё в разрезе статей финансирования. Так что сальдо может быть и трех, и четырехуровневым, если можно так выразиться.

При расчёте сальдо на следующий месяц можно ограничиться обработкой оборотов в таблице сальдо. Или сделать пересчёт из таблицы бухгалтерских проводок.

Припоминаю, что есть нюансы насчёт проводок со знаком минус, то есть "по-красному". Далеко не во всех случаях проводка по-красному эквивалентна проводке со знаком плюс и со сменой дебета на кредит (или кредита на дебет).

Что же касаемо того, что бухи не смогли дать ответы на вопросы, то, возможно, это связано с тем, что они просто не поняли, что именно у них спрашивают. Так частенько бывает.

Но если вопросы им задавать "с выходными формами в руках" и числами, то они обычно понимают.
Ratings: 0 negative/0 positive
Re: Входящее сальдо
po2

Сообщений: 2864
Откуда: Иркутск
Дата регистрации: 22.12.2001
boba
Много лет работаю с бухгалтерией

Бухгалтерия - не математика. Например, сальдо учитывает тип счета. Потому, нельзя произвольно поменять знак и утащить значение в противоположную колонку. Следует искать ошибку в аналитике счета, разбираясь в причинах появления отрицательного результата.
Ratings: 0 negative/1 positive
Re: Входящее сальдо
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
select distinct
debschet,credschet
union all
credschet, ancread

Єто опечатка, или я нашел в чем проблема?
Ratings: 0 negative/0 positive
Re: Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
po2
boba
Много лет работаю с бухгалтерией

Бухгалтерия - не математика. Например, сальдо учитывает тип счета. Потому, нельзя произвольно поменять знак и утащить значение в противоположную колонку. Следует искать ошибку в аналитике счета, разбираясь в причинах появления отрицательного результата.
Ньюансы- как раз есть учет по плану счетов активности или пассивности счета.
Это меняет простое правило замены суммы, которое я описал.
Но его учет ничего н исправил.
Это в коде тоже есть.
И общие суммы, если плюнуть на аналитику верные.
Но у меня некоторые строчки разделились на несколько
по аналитике, а в исходном варианте нет.
Повторюсь, есть работающее решение,
которое коллега вчера быстро подогнала
под нужный результат.
Мне этого мало. Хочу понять, а код написан на древнефоксовом,
таблицы откуда тянут нужное я знаю, но принцип их наполнения не понимаю.
С точки зрения математики одной таблицы проводок с начальным сальдо в начале месяце 0
достаточно.
Ratings: 0 negative/0 positive
Re: Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Sawradym
select distinct
debschet,credschet
union all
credschet, ancread

Єто опечатка, или я нашел в чем проблема?
Это только вершина айсберга
Я привел не код, а описание того, что он делает
Построение курсора с уникальным набором счет, аналитика,
на который потом навешиваются суммы.
Конечно кода даже два запроса

select distinct
debschet,credschet from curdeb
union all
select credschet, ancread from curcred
потом из результата еще раз запрос с distinct
И потом еще три запроса
Первый клеит к курсору счет-аналитика суммы из curdeb
второй из curcred
и потом общую склейку в результирующий курсор.
Сейчас тупо ищу расхождения в результате с тем, что должно быть
Я просто хотел не код, а формулу расчета сальдо как таковую



Исправлено 2 раз(а). Последнее : boba, 22.12.21 10:01
Ratings: 0 negative/0 positive
Re: Входящее сальдо
po2

Сообщений: 2864
Откуда: Иркутск
Дата регистрации: 22.12.2001
boba
Но у меня некоторые строчки разделились на несколько
по аналитике, а в исходном варианте нет.

Возможно, здесь и подвох. При подсчете итогового сальдо, по бухгалтерским правилам, при переходе на следующий пункт аналитики передается свернутое сальдо. Т.е. по каждому конкретному пункту подсчитываются дебетовые и кредитовые суммы и сворачиваются, в таблице остается либо дебет, либо кредит. Хотя, может я и не о том.
Ratings: 0 negative/0 positive
Re: Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
я же и сказал, в сально всегда только одна пара счет-аналитика,
а не исходные 4 из проводок.
Ни документации ни ТЗ, есть только чужой код аборигенки,
ушедший на пенсию в 80 лет.
Конечно по анекдоту ( сын пришел к папе программисту тот сидит в глубоком дебагере
папа , а правда, что Солнце каждый день встает? Сынок, ты проверил,
тогда ничего не трогай.)
Можно поступить так, оставить как есть и забыть.
Но опять таки, не могу чужую шпору взять и переписать себе,
если сам думаю по-другому.



Исправлено 1 раз(а). Последнее : boba, 22.12.21 10:44
Ratings: 0 negative/0 positive
Re: Входящее сальдо
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
Даже после моего замечания, для дебета в качестве аналитики упорно берется не то поле.

И еще хочу уточнить, что именно не получается:
а) правильно собрать табличку с начальным сальдо?
или
б) по правильно собранной сальдовой табличке получить начальный баланс?
Ratings: 0 negative/0 positive
Re: Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Да странная штука.
Сверяю свой вариант расчета с реальным сальдо
При разнице лажу в проводки и ищу причину.
Два раза уже нашел, что вроде я прав,
а не фирменный расчет. То есть нахожу проводку, которая неизвестно почему не учтена
в сальдо. С другой стороны
все сальдо каждый месяц сверяются с другой независимой
задачей Баланс предприятия.
Там если даже копейка уйдет, кричат караул.
В пятницу буду на месте, кого-то стану трясти,
но пока непонятно кого.
Может я чего-то не знаю, но странно,
сижу на этом уже не первый год.
Всего разниц -12 строчек, что от общего числа
просто ничтожный процент.
Но не должно быть вообще никакой разницы.
Ratings: 0 negative/0 positive
Re: Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
вроде нашел причину большинства , но не всех расхождений
Есть счета, где не должно быть аналитики.
Но по-видимому по ошибке она проставлена
По моему алгоритму сальдо разбивается на две строки
вместо одной- в одной строке нет аналитики, в другой есть
Общая сумма верна.
Ratings: 0 negative/0 positive
Re: Входящее сальдо
akvvohinc

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
И какое отношение ко всему этому имеет Фокс?
Ratings: 0 negative/0 positive
Re: Входящее сальдо
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Да никакого абсолютно.
Просто единственным рецептом снова оказывается анализ
существующего кода на отклонения.
Напрямую там этого нет. Но есть где-то
правило разложения в таблицы, в которые кроме проводок
раскладываются данные, а из них уже потом сальдо
Хрень, писать по прототипу, не понимая что и почем.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 41 (Гостей: 41)

© 2000-2024 Fox Club 
Яндекс.Метрика