Показать сообщение отдельно
Старый 27.05.2011, 10:47   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Стандартные отчета Axapta основаны на суммировании клиентских проводок (CustTrans), поскольку именно в них указывается код клиента. Бух.счетов в клиентских проводках нет. Но в них есть такое понятие, как "Профиль разноски". В свою очередь, справочник профилей разноски содержит ссылку на бух.счета.

Как следствие, общий алгоритм расчета сальдо по клиенту и конкретному бух.счету выглядит следующим образом
  1. По справочнику профилей разноски отбираются все профили разноски имеющие связь с нужным бух.счетом
  2. Суммируются все клиентские проводки нужного клиента у которых указан профиль разноски из списка, отобранного на первом этапе
Ну, есть еще некоторые тонкости какие именно бух.счета из профиля разноски используются для фильтрации, но это сами разберетесь...

Делать расчет по бух.проводкам по конкретному клиенту можно только если стандартный функционал сильно кастомизирован (протянули код клиента в бух.проводки) или же есть жесткие организационные ограничения на ведение учета.

Проблема здесь в том, что связь таблицы клиентских проводок и бух.проводок организована по коду ваучера. А подобная связь - не однозначна. Может быть несколько бух.проводок с одним и тем же номером ваучера, но не все из них относятся к нужному клиенту. Следовательно, попытка просуммировать бух.проводки по конкретному клиенту всегда будет не вполне корректна. Всегда будет содержать некую неопределенность.

Как следствие, если Вам нужен баланс по клиенту, то классы Ledger... для этой задачи - бесполезны. В них просто нет ссылок на клиентов. Нужно "копать" в сторону классов вроде CustVend... А как их использовать, смотрите в отчете "Оборотно-сальдовая ведомость"
За это сообщение автора поблагодарили: mazzy (2), Penguin (1), axalex (1).