Показать сообщение отдельно
Старый 06.12.2018, 15:09   #1  
VORP is offline
VORP
Участник
Аватар для VORP
 
146 / 95 (4) ++++
Регистрация: 26.05.2006
DAX 2012 R2: Расчёт курсовой по поставщикам - ошибка стандарта?
Добрый день,

возможно переоценивать авансы поставщикам и неправильно по РСБУ, но так получилось что они были переоценены.
При сопоставлении должна была откатиться нереализованная курсовая, она и откатывается, но на большую сумму чем изначально была рассчитана.

Это происходит из-за следующего:

в CustVendSettle.settleNow

custVendExchAdjustment.processRealizedExchAdj(
-realizedExchAdjAmount,
-realizedReportingExchAdjAmount,
firstCustVendTrans,
custVendTransDebit,
custVendTransCredit,
custVendTransOpenDebit,
custVendTransOpenCredit,
settleAmountCurDebit,
0, ///settleAmountCurCredit всегда ноль!!!!
, дальше в custVendExchAdjustment.processRealizedExchAdj

this.reverseUnrealizedExchAdj(
_custVendTransCredit,
_custVendTransOpenCredit,
(! _settleAmountCurCredit && _paym2Invoice) ? //Если ноль то берётся дебетовая сумма по пропорции, но у неё другой знак!!!
_settleAmountCurDebet / _paym2Invoice :
_settleAmountCurCredit,

Эта сумма идёт сюда:
[standardReversedUnrealAmountAccounting, standardReversedUnrealAmountReporting] = this.calcUnrealizedExchAdj(
-standardUnrealAmountAccounting,
-standardUnrealAmountReporting,
_custVendTrans,
transDate,
_settleAmountCur + _cashDisc); //СЮДА

//OpenAmountCur - сумма открытая после сопоставления. -8194
if (Currency::amount(abs(_settleAmountCur), _custVendTrans.CurrencyCode) <= abs(pendingSettledAmountCur))
{
openAmountCur += _settleAmountCur; //А это сумма сопоставления 32192
}

unrealisedAmountAccounting = Currency::amount(_exchRateDiffAccounting * abs(_settleAmountCur / (openAmountCur ? openAmountCur : _settleAmountCur)));
unrealisedAmountReporting = Currency::amount(_exchRateDiffReporting * abs(_settleAmountCur / (openAmountCur ? openAmountCur : _settleAmountCur)));

Пропорция получается больше 1, приблизительно 32192/24000. То есть отменяется больше чем было начислено. Должно быть где то 32192/40000

будет ли правильно здесь:
_settleAmountCurDebet / _paym2Invoice
брать сумму Debet с обратным знаком?