Показать сообщение отдельно
Старый 06.09.2007, 17:52   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А при чем здесь глобальная компиляция?
Там же 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));
    }
}