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