А при чем здесь глобальная компиляция?
Там же 4 параметра, а передается 5. Конечно ругается.
Вот метод из 4ки (SP2). Возможно сможете подделать под него. Нужно просто все
custVendTransCredit.Dimension заменить на
dimension. Но вообще - это баг, имхо. Надо регистрировать, кто может.
X++:
void postPennyDiffOnCashDisc(AmountCur _totalAmountCur,
CustVendTrans _custVendTrans,
ExchRate _exchRate,
CustVendTrans _custVendTransCredit,
Dimension _dimension = custVendTransCredit.Dimension)
{
int idx = conlen(conLedgerAccount);
int idxMax;
LedgerAccount ledgerAccount;
AmountCur remainAmountCur = -_totalAmountCur;
AmountCur amountCur;
;
if (idx)
{
idxMax = idx;
while (idx != 0)
{
// if tax has been posted we can find the account here
ledgerAccount = conpeek(conLedgerAccount, idx);
if (idx == idxMax)
{
amountCur = remainAmountCur;
}
else
{
amountCur = conpeek(conTaxBaseAmountCur, idx);
}
// if no tax was posted we can find the account here
if (!ledgerAccount)
{
ledgerAccount = this.cashDiscAccount(_custVendTrans);
}
idx--;
remainAmountCur -= amountCur;
ledgerVoucher.addTrans(
LedgerVoucherTransObject::newCreateTrans(
ledgerVoucher.findLedgerVoucherObject(),
LedgerPostingType::MSTDiff,
ledgerAccount,
_dimension,
CompanyInfo::standardCurrency(),
amountCur,
_custVendTrans.TableId,
_custVendTrans.RecId,
0,
_exchRate,
0,
UnknownNoYes::No));
}
}
if (remainAmountCur)
{
if (!ledgerAccount)
{
ledgerAccount = this.cashDiscAccount(_custVendTrans);
}
ledgerVoucher.addTrans(
LedgerVoucherTransObject::newCreateTrans(
ledgerVoucher.findLedgerVoucherObject(),
LedgerPostingType::MSTDiff,
ledgerAccount,
_dimension,
CompanyInfo::standardCurrency(),
remainAmountCur,
_custVendTrans.TableId,
_custVendTrans.RecId,
0,
_exchRate,
0,
UnknownNoYes::No));
}
}