Делаю следующие изменения в коде:
X++:
public CostAmountSecCur_RU updateLedgerFinancialSecCur_RU(LedgerVoucher _ledgerVoucher,
InventUpd_Financial _updateNow)
{
CostAmountSecCur_RU costAmountSecCur;
LedgerVoucherObject ledgerVoucherObject = _ledgerVoucher.findLedgerVoucherObject();
LedgerBondClient_RU ledgerBondClient = ledgerVoucherObject.ledgerBondClient_RU();
if (this.mustBeBookedFinancially() && this.mustBeBookedOnhandSecCur_RU())
{
....
}
//исправление -->
else
{
if(this.mustBeBookedOnhandSecCur_RU())
{
costAmountSecCur = Currency::amount(_updateNow.parmCostAmountCurSecCur_RU(),
CompanyInfo::secondaryCurrency_RU());
if (costAmountSecCur)
{
_updateNow.updOperationsAmountSecCurLedger_RU(-costAmountSecCur);
}
else
{
_updateNow.updOperationsAmountSecCurLedger_RU(0);
}
}
}
//исправление <--
return costAmountSecCur;
}
На первый взгляд все работает. В том числе и коррекция при закрытии склада нормально протягивается.
Может, кто скажет, на сколько данные изменения имеют право на жизнь?
З.Ы.: код это для DAX2009 без RU3, так как его нет под рукой, но там я делал то же самое, с такими же результатами.