|
![]() |
#1 |
Участник
|
Всем спасибо за отзывчивость и за помощь.
Проблема решилась заведением дублера курса валюты RUB (при переименовании через паспорт записи появились дополнительные проблемы при разноске счетов-фактур - пришлось вернуть обратно, но косяк все равно остался: поэтому у заказчика не стали это делать). Похоже прога по импорту засылала вместо кода валюты ISO код самой валюты, т.е. вместо латинских RUB засылался код в кириллице "Руб". Ну и в проксе тоже дело. У заказчика без доп.манипуляций загрузилось. На сервере разработки с проксей пришлось поставить обходчик прокси. Сделаем доработку, чтобы засылался код ISO, а не русскоязычный код. Последний раз редактировалось Ильдар; 13.11.2015 в 13:18. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Ivanhoe
На вскидку в коде увидел условие, где и код валюты и код из справочника ISO кодов должны быть равны одной и той же переменной. Так что действительно, в коде это явно вписано
![]() А то мы эмпирическим путем выяснили. Программеру разбираться еще придется. |
|
![]() |
#3 |
Microsoft Dynamics
|
Наверно речь идет о методе \Classes\ExchangeRateProviderCBRF_RU\getExchangeRatesFromService
строка 64: X++: currencyPair.parmToCurrency(#RUB); Честно говоря, я не очень понял в чем суть проблемы. Какая прога засылала "Руб" вместо RUB? Импорт курсов валют ни никуда не "засылает" Руб или RUB. Единственно, что он "засылает" - это дату, за которую необходимо получить курсы. Получив от ЦБ курсы валют на дату, импорт курсов сохраняет курсы в таблице. Поиск соответствий кодов валют происходит по currency.CurrencyCodeISO в методе \Classes\ExchangeRateImportOperation\saveRates(43) X++: toCurrency = Currency::findCurrencyCodeISO(externalCurrencyPair.parmToCurrency()); Если говорить про "From Currency", то в отличие от других провайдеров, в российском From Currency ищется по двум полям или CurrencyCode или CurrencyCodeISO: Метод \Classes\ExchangeRateProviderCBRF_RU\getExchangeRatesFromService(46) X++: select CurrencyCode from fromCurrency where fromCurrency.CurrencyCode == cbCurrencyCode || fromCurrency.CurrencyCodeISO == cbCurrencyCode; ... if (fromCurrency) { currencyCode = fromCurrency.CurrencyCode; } else { currencyCode = cbCurrencyCode; } \Classes\ExchangeRateImportOperation\saveRates(31) X++: // Get the internal currency code that relates to the ISO Currency Code. // <GEERU> if (_exchangeRateImportRequest.parmProviderId() == ExchangeRateProviderCBRF_RU::providerId()) { fromCurrency = Currency::find(externalCurrencyPair.parmFromCurrency()); } else { // </GEERU> Последний раз редактировалось AlexSD; 14.11.2015 в 01:33. |
|
|
За это сообщение автора поблагодарили: Ильдар (1). |
Теги |
currency rates import, импорт курсов валют |
|
|