AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.07.2015, 10:01   #1  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Сальдо на дату
Снова вопрос по сальдо. Точнее как его посчитать на заданную дату по клиенту? Эта задача уже неоднократно обсуждалась и в ряде сообщений указывалось, что нужно использовать таблицы LedgerBalancesTrans и LedgerBalancesDimTrans (аккумулированные обороты за определенную дату в разрезе счетов и счетов+аналитик соответсвенно). Но в 2012 я таких таблиц просто не нашла. Может быть кто-нибудь знает в какую сторону копать теперь? Как получить сальдо не анализируя все проводки custTrans с начала времен?

Последний раз редактировалось Mila; 06.07.2015 в 10:10.
Старый 06.07.2015, 10:23   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Сальдо по клиенту - это сумма открытых (не полностью сопоставленных) проводок - посмотрите, как считается сальдо в штатном функционале (Расчеты с клиентами/Клиенты/Все клиенты, кнопка Сальдо). При нормальном сопоставлении число открытых проводок по клиенту в каждый момент времени должно быть невелико, так что никакие расчеты с начала времен не нужны, напротив, считать нужно от текущего открытого сальдо. Посмотрите штатную оборотку по клиентам, как там считается входящее сальдо на дату.
Старый 06.07.2015, 10:44   #3  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Посмотрите штатную оборотку по клиентам, как там считается входящее сальдо на дату.
Или, как вариант, акт сверки взаимных расчетов. В нем есть расчет сальдо на начальную и конечную дату выборки
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 07.07.2015, 08:55   #4  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Посмотрела Акт сверки взаимных расчетов. Если я правильно поняла, то сальдо на начало заданного периода считается в rLedgerSheetServer_ActAdjustCustVend.calcBalanceBegPeriod(). Так тут анализируется CustTruns с начала времен, до указанной даты. Не понимаю, может быть я чего-то не увидела?
Старый 07.07.2015, 09:41   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В разных местах по разному считает.
Если посмотрите примеры которые вам привели, то убедитесь в этом.
Старый 09.07.2015, 13:39   #6  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Navision
Посмотрела я оба отчета, указанных выше. Но решения для себя так и не нашла. В шахматной ведомости не считается сальдо, только обороты, но это не главное. Главное, что запрос идет по GeneralJournalEntry и к ней джойнится FiscalCalendarPeriod. Мне нужно сальдо в разрезе клиентов (планировала CustTrans анализировать). В акте сверки взаимных расчетов (RLedgerSheetServer_ActAdjustCustVend.calcBalanceBegPeriod()) запрос выглядит примерно так:
SELECT * FROM CustTrans
ORDER BY CustTrans.TransDate ASC
WHERE ((AccountNum = N'Test')) AND
((TransDate<={ts '2015-07-31 00:00:00.000'})),
но это как раз и есть запрос от начала времен. На таблице CustTable есть стандартный метод для подсчета сальдо по клиенту на дату balanceCurPerDate, но он опять таки считает <= _transactionDate. Подскажите пожалуйста, может быть есть какая-то таблица, типа InventSum, но в которой сальдо, например, на конец года хранятся. Я не нашла ((((
Старый 10.07.2015, 08:46   #7  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от Mila Посмотреть сообщение
Подскажите пожалуйста, может быть есть какая-то таблица, типа InventSum, но в которой сальдо, например, на конец года хранятся. Я не нашла ((((
По-моему, не найдете. Оптимизационный подход к расчету сальдо, если не брать проводки со старта системы, посчитать текущее по открытым и сложить/вычесть проводки до даты расчета сальдо, либо, на мой взгляд наиболее предпочтительный вариант на больших БД, создать куб по проводкам клиентов, поставщиков и персонала, а из него очень быстро получать сальдо на любую дату.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 10.07.2015, 09:36   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Тут есть нюанс с т.з. учета: чисто технически сальдо - сумма дебетовых и кредитовых проводок до определенной даты, но с т.з. учета открытое дебетовое и открытое кредитовое сальдо нельзя просто взять и "схлопнуть", потому что если мы должны клиенту по предоплате за заказ1 100 р., а клиент нам должен за уже отгруженный заказ2 100 р., то ни наш, ни его долг никуда не девается и "по умолчанию" не взаимозачитывается. Это в том числе может быть связано с условиями оплаты: заказ2 клиент может быть вправе не оплачивать еще месяц, в то время как по заказу1 подтвержденная дата отгрузки, скажем, уже сегодня.
Таким образом, с т.з. учета сальдо на дату, во-первых, надо считать отдельно дебетовое и кредитовое, во-вторых, учитывать в его подсчете даты сопоставлений, а не только даты самих проводок. Опять же, если есть отгрузка клиенту на 100 р. на дату 30.06.15 и оплата 100 р. на дату 30.06.15, а сопоставлены они по каким-то причинам датой 01.07.15 (скажем, фин. период закрыт по 30.06.15), то на 30.06.15 мы имеем ненулевое кредитовое и ненулевое дебетовое сальдо по клиенту, хотя обыденная логика подсказывает нам, что на 30.06.15 сальдо уже было нулевым.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сальдо в разрезе финансовых аналитик CaliforniA DAX: Функционал 1 03.10.2012 11:50
Почему показывает разное сальдо на счете при смене периода на 1 день ? George A DAX: Функционал 2 23.12.2011 16:06
Как посчитать сальдо по клиенту на дату Silphidae DAX: Программирование 23 29.07.2010 14:59
DAX 4.0 Ген. фин. отчетов - Активное сальдо (дебет) и Сальдо дебет - в чем разница? Aleks_K DAX: Функционал 5 17.01.2008 01:47
Сальдо по валютам - не сальдо! max_woody_ru DAX: Функционал 19 15.12.2004 17:04
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:36.