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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.09.2012, 16:28   #2  
avf is offline
avf
Участник
 
31 / 24 (1) +++
Регистрация: 28.06.2007
проблема оказалась шире - для исправления glp-бага пришлось доработать этот же метод следующим образом:
X++:
        settledTransAmount = this.settledTransAmount(custVendTrans, dateNull(), toDate);
// BUS-Modification on 06 Сен 2012 at 18:20:18 by avf - Begin
// BF GLP слоя
//        if (settledTransAmount && turnoverSettleDebit)
//        if ((settledTransAmount && (turnoverSettleDebit || turnoverSettleCredit))) // попытка №1 исправления бага
// Сальдо на конец периода необходимо рассчитывать вне зависимости от того были или нет сопоставления
        if (true)
// BUS-Modification on 06 Сен 2012 at 18:20:18 by avf - End
        {
            settledTransAmount = balanceDebit + turnoverDebit - turnoverSettleDebit - balanceCredit - turnoverCredit + turnoverSettleCredit;

            if (settledTransAmount)
            {
// BUS-Modification on 27 Сен 2012 at 15:38:08 by avf - Begin
// BF GLP слоя
// Определять проводка по кредиту или по дебету необходимо на основании её суммы,
// а не на основании переменной settledTransAmount,
// значение которой может быть рассчитано выше на основании нулевых переменных balanceDebit и balanceCredit, но реально ненулевого входящего сальдо
//                if (this.isCredit(settledTransAmount, custVendTrans))
                if (this.isCredit(custVendTrans.AmountMST ? custVendTrans.AmountMST : custVendTrans.AmountCur, custVendTrans))
// BUS-Modification on 27 Сен 2012 at 15:38:08 by avf - End
                {
                    settledBalanceEndCt = -settledTransAmount;
                }
                else
                {
                    settledBalanceEndDt = settledTransAmount;
                }
            }
        }
ещё порадовал код в методе loopBalanceTrans класса RLedgerSheetEngine_TurnoverCustVend, в котором значение переменной transAmount рассчитывается как сумма сопоставлений до даты toDate, и следующей же строчкой её значение рассчитывается уже новым образом)
X++:
        transAmount = this.settledTransAmount(trans, dateNull(), toDate);
        transAmount = balanceDebit - turnoverSettleDebit - balanceCredit + turnoverSettleCredit;
Теги
ax2009, bug, ru8, оборотно-сальдовая ведомость, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
palleagermark: Bug in EP 2009 when having the debug flag set to true Blog bot DAX Blogs 0 05.01.2009 11:06
msdynamicsax: DAX 2009 and MS SQL 2008 Blog bot DAX Blogs 0 09.08.2008 14:05
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
msdynamicsax: Enterprise Portal development in DAX 2009 Blog bot DAX Blogs 0 18.04.2008 07:06

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

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

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