11.09.2012, 18:46 | #1 |
Участник
|
Bug: ОСВ DAX 2009 RU8
DAX 2009 RU8:
Ошибка на glp слое, из-за которой могут неправильно рассчитываться поля "Сальдо на конец Дт" и "Сальдо на конец Кт" при построении ОСВ с детализацией сальдо "Развернутое". Для исправления необходимо в методе AOT\Classes\RLedgerSheetServer_TurnoverCustVend\updateAccounts заменить следующий код X++: turnoverSettleDebit = this.settledTransAmount(custVendTrans, fromDate, toDate); if (this.isCredit(custVendTrans.AmountMST, custVendTrans)) { turnoverSettleCredit = - turnoverSettleDebit; turnoverSettleDebit = 0; } settledTransAmount = this.settledTransAmount(custVendTrans, dateNull(), toDate); if (settledTransAmount && turnoverSettleDebit) X++: turnoverSettleDebit = this.settledTransAmount(custVendTrans, fromDate, toDate); if (this.isCredit(custVendTrans.AmountMST, custVendTrans)) { turnoverSettleCredit = - turnoverSettleDebit; turnoverSettleDebit = 0; } settledTransAmount = this.settledTransAmount(custVendTrans, dateNull(), toDate); // if (settledTransAmount && turnoverSettleDebit) if (settledTransAmount && (turnoverSettleDebit || turnoverSettleCredit)) // BF { |
|
|
За это сообщение автора поблагодарили: twilight (2), gl00mie (5). |
27.09.2012, 16:28 | #2 |
Участник
|
проблема оказалась шире - для исправления 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; } } } X++: transAmount = this.settledTransAmount(trans, dateNull(), toDate); transAmount = balanceDebit - turnoverSettleDebit - balanceCredit + turnoverSettleCredit; |
|
28.09.2012, 15:29 | #3 |
Участник
|
В итоге, поправил так:
X++: // BF GLP слоя // if (settledTransAmount && turnoverSettleDebit) // Сальдо на конец периода необходимо рассчитывать внезависимости от того были или нет сопоставления if (true) { /* BF GLP слоя settledTransAmount = balanceDebit + turnoverDebit - turnoverSettleDebit - balanceCredit - turnoverCredit + turnoverSettleCredit; if (this.isCredit(settledTransAmount, custVendTrans)) { settledBalanceEndCt = -settledTransAmount; } else { settledBalanceEndDt = settledTransAmount; } */ settledBalanceEndDt = balanceDebit + turnoverDebit - turnoverSettleDebit; settledBalanceEndCt = balanceCredit + turnoverCredit - turnoverSettleCredit; } |
|
|
За это сообщение автора поблагодарили: BOAL (2). |
01.10.2012, 17:43 | #4 |
Участник
|
Кроме того, обнаружилась ещё ошибка: если после отображения данных в форме ОСВ с детализацией сальдо "Развёрнутое" или "Свёрнутое и развёрнутое" её не проматывать вниз (при скролинге заполняются данные в FormListControl), а сразу нажать кнопку "Печать", то начиная с определённой строки данные выводятся в печатную форму с пустыми значениями последней колонки. Для исправления данной ошибки необходимо в методе "reportFetchNext" класса RLedgerSheetEngine_TurnoverCustVend предусмотреть переменную и логику, аналогичную переменной "custVendDetailBalansLineCount" из метода "insertRow", значение которой изменяется в зависимости от параметра "Детализация сальдо" и изменяет число заполняемых колонок с данными в строках формы.
|
|
|
За это сообщение автора поблагодарили: twilight (2). |
Теги |
ax2009, bug, ru8, оборотно-сальдовая ведомость, ошибка |
|
|