|
20.05.2011, 10:40 | #1 |
Участник
|
Расчет конечного сальдо
Здравствуйте!
Необходимо: 1. Рассчитать сальдо конечное кредитовое по счету 62.2.1 на дату (по данному контрагенту, договору, ставке НДС); 2. Рассчитать сальдо конечное дебетовое по счету 76.АВ на дату (по данному контрагенту, договору, ставке НДС); Для дальнейшего вывода в Excel и построения отчета. Не получается найти подходящий класс. Или у кого нибудь есть мысли на эту тему. Смотрел похожие темы, класс Ledger Balance и его наследников.
__________________
С уважением, Алексей. |
|
20.05.2011, 11:55 | #2 |
MCTS
|
Расчеты с клиентами / Запросы / Оборотно-сальдовая ведомость
смотрели?
__________________
I could tell you, but then I would have to bill you. |
|
20.05.2011, 12:05 | #3 |
Участник
|
Заглянул, но у меня она в очень мощном апгрейде, очень долго разбираться в коде, не успеваю.. Проще просто класс подобрать наверное, чем разобрать ОСВ.. Вот и спрашиваю совета..
__________________
С уважением, Алексей. |
|
27.05.2011, 09:11 | #4 |
Участник
|
Просмотрев различные формы и классы, решил написать свои функции по расчету сальдо.
Вышло примерно так: X++: Amount getBalanceCred(CustTrans _custTrans) { CustTrans custTransCursor; LedgerTrans ledgerTransCursor; str 100 accountNum; ; select sum(AmountCur) from ledgerTransCursor where ledgerTransCursor.Dimension[7] == _custTrans.Dimension[7] && ledgerTransCursor.Dimension[8] == _custTrans.Dimension[8] && ledgerTransCursor.Dimension[9] == _custTrans.Dimension[9] && ledgerTransCursor.AccountNum == "62.02.1" && ledgerTransCursor.TransDate <= TransDate && ledgerTransCursor.Crediting == true; // && ledgerTransCursor.TransType == 15 return ledgerTransCursor.AmountCur; } X++: Amount getBalanceDeb(CustTrans _custTrans) { CustTrans custTransCursor; LedgerTrans ledgerTransCursor; str 100 accountNum; ; select sum(AmountCur) from ledgerTransCursor where ledgerTransCursor.Dimension[7] == _custTrans.Dimension[7] && ledgerTransCursor.Dimension[8] == _custTrans.Dimension[8] && ledgerTransCursor.Dimension[9] == _custTrans.Dimension[9] && ledgerTransCursor.AccountNum == "76.АВ" && ledgerTransCursor.TransDate <= TransDate && ledgerTransCursor.Crediting == false; // && ledgerTransCursor.TransType == 15 return ledgerTransCursor.AmountCur; } Но, всё же, возникают ошибки в выводе. По моим предположениям я не учёл что-либо..
__________________
С уважением, Алексей. |
|
27.05.2011, 09:22 | #5 |
Участник
|
вы суммируете amountCur, но не учитываете валюту. в результате у вас доллары складываются с евро и с остальными валютами. amountCur можно суммировать только в пределах одной валюты.
кроме того, вы получаете дебетовое сальдо. но не учитываете поле correction. аксапта умеет работать с красным сторно. в этом случае поле correction = true. |
|
27.05.2011, 10:47 | #6 |
Участник
|
Стандартные отчета Axapta основаны на суммировании клиентских проводок (CustTrans), поскольку именно в них указывается код клиента. Бух.счетов в клиентских проводках нет. Но в них есть такое понятие, как "Профиль разноски". В свою очередь, справочник профилей разноски содержит ссылку на бух.счета.
Как следствие, общий алгоритм расчета сальдо по клиенту и конкретному бух.счету выглядит следующим образом
Делать расчет по бух.проводкам по конкретному клиенту можно только если стандартный функционал сильно кастомизирован (протянули код клиента в бух.проводки) или же есть жесткие организационные ограничения на ведение учета. Проблема здесь в том, что связь таблицы клиентских проводок и бух.проводок организована по коду ваучера. А подобная связь - не однозначна. Может быть несколько бух.проводок с одним и тем же номером ваучера, но не все из них относятся к нужному клиенту. Следовательно, попытка просуммировать бух.проводки по конкретному клиенту всегда будет не вполне корректна. Всегда будет содержать некую неопределенность. Как следствие, если Вам нужен баланс по клиенту, то классы Ledger... для этой задачи - бесполезны. В них просто нет ссылок на клиентов. Нужно "копать" в сторону классов вроде CustVend... А как их использовать, смотрите в отчете "Оборотно-сальдовая ведомость" |
|
|
За это сообщение автора поблагодарили: mazzy (2), Penguin (1), axalex (1). |
27.05.2011, 17:13 | #7 |
MCTS
|
Цитата:
Сообщение от Владимир Максимов
Как следствие, общий алгоритм расчета сальдо по клиенту и конкретному бух.счету выглядит следующим образом
__________________
Dynamics AX Experience |
|
Теги |
ledgerbalance, конечное сальдо, по счету, сальдо |
|
|