Показать сообщение отдельно
Старый 27.05.2009, 21:05   #10  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Ок, привожу полный код метода CustVendExchAdjustment_W.isAdvanceAdjustment():

X++:
public static boolean isAdvanceAdjustment(CustVendTrans _firstCustVendTrans,
                                          CustVendTrans _custVendTransDebet,
                                          CustVendTrans _custVendTransCredit)
{
    boolean isAmountDiff = _custVendTransDebet.CurrencyCode  != CompanyInfo::standardCurrency() && _custVendTransDebet.Invoice &&
                           _custVendTransCredit.CurrencyCode == CompanyInfo::standardCurrency() && ! _custVendTransCredit.Invoice;

    if (isAmountDiff && AmountDiffParameters_RU::find().Active)
    {
        return false;
    }

    if (((! _firstCustVendTrans && (_custVendTransDebet.Invoice || _custVendTransCredit.Invoice)) || _firstCustVendTrans.Invoice) &&
        (_custVendTransDebet.Prepayment || _custVendTransCredit.Prepayment)                                                       &&
        LedgerParameters::find().AdvanceAdjustment_W)
    {
        return true;
    }

    return false;
}
Нетрудно заметить, что метод возращает true, если поле Invoice заполнено ХОТЯ БЫ В ОДНОЙ из сопоставляемых проводок - в Вашем случае это поле в обеих проводках пустое и метод вернет false, - что верно, т.к. накладной для переоценки нет и авансовой разницы у нас не было (была курсовая).

А насчет doReverse() - Вы не правы, не буду спорить, просто пройдитесь дебаггером.
__________________
You should use Bing before asking dumb questions.
За это сообщение автора поблагодарили: Ivanhoe (2).