|
|
#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). | |
|
|
#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; |
|
|
|
|
#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). | |
|
|
#4 |
|
Участник
|
Кроме того, обнаружилась ещё ошибка: если после отображения данных в форме ОСВ с детализацией сальдо "Развёрнутое" или "Свёрнутое и развёрнутое" её не проматывать вниз (при скролинге заполняются данные в FormListControl), а сразу нажать кнопку "Печать", то начиная с определённой строки данные выводятся в печатную форму с пустыми значениями последней колонки. Для исправления данной ошибки необходимо в методе "reportFetchNext" класса RLedgerSheetEngine_TurnoverCustVend предусмотреть переменную и логику, аналогичную переменной "custVendDetailBalansLineCount" из метода "insertRow", значение которой изменяется в зависимости от параметра "Детализация сальдо" и изменяет число заполняемых колонок с данными в строках формы.
|
|
|
|
| За это сообщение автора поблагодарили: twilight (2). | |
| Теги |
| ax2009, bug, ru8, оборотно-сальдовая ведомость, ошибка |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|