Долго искал - и вот нашел очень интересный момент: метод \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);
}
Бывает же.....
Какие есть мысли по этому поводу?