Показать сообщение отдельно
Старый 05.03.2005, 17:32   #6  
tischenko is offline
tischenko
Участник
 
35 / 10 (1) +
Регистрация: 12.01.2005
Адрес: Киев
Долго искал - и вот нашел очень интересный момент: метод \Data Dictionary\Tables\Currency\Methods\amountCur2MSTSecond , который используеться кругом при вычислении суммы во вторичной валюте вообще никак не использует параметры exchRate и exchrateSecondary при расчетет суммы. Курс вторичной валюты оказываеться всегда берется на определенную дату. Самое интересное что если посмотреть перекресные ссылки то по сути кругом эти курсы то и передаются.

X++:
static AmountMstSecondary amountCur2MSTSecond(AmountCur                 amountCur,
                                              CurrencyCode              currencyCode,
                                              TransDate                 exchrateDate = systemdateGet(),
                                              ExchRatesTriangulation    triangulation = UnknownNoYes::Unknown,
                                              ExchRate                  exchRate,
                                              ExchRate                  exchrateSecondary = 0)
{
    AmountMST               amountMST;
    CurrencyCode            secondaryCurrencyCode = CompanyInfo::find().secondaryCurrencyCode;

    // RU Bug Fix -->
    if( ! isConfigurationkeyEnabled(configurationkeynum(CurrencySecondaryCurrency)))
        return 0;
    // RU Bug Fix <--

    if (currencyCode)
    {
        amountMST = amountCur * currency::crossRate(currencyCode, secondaryCurrencyCode, exchrateDate);
    }
    else
    {
        throw error("@SYS23229");
    }
    return Currency::amount(amountMST,secondaryCurrencyCode);
}
Бывает же.....
Какие есть мысли по этому поводу?