11.11.2015, 14:36 | #1 |
Участник
|
Импорт валютных курсов в Microsoft Dynamics™ 2012 R3
При импорте валютных курсов (через меню Главная книга/ Периодические операции/ Импорт курсов обмена валют) выдается инфолог: "Не удалось найти валютный курс для кодов валют ISO EUR и Руб на дату 11.11.2015. Убедитесь, что коды валют ISO поддерживаются поставщиком и доступны на запрошенную дату".
Формы "Валюты", "Типы валютных курсов", "Валютные курсы", "Настройка источников валютных курсов" в меню Главная книга/ Настройка/ Валюта настроены. Источник: "Центральный банк Российской Федерации", ServiceCurrentUrl = http://www.cbr.ru/scripts/XML_daily.asp ServiceOnDateUrl = http://www.cbr.ru/scripts/XML_daily.asp?date_req=%1 В чем может быть проблема? Причем ошибка возникает как через прокси, так и через прямое соединение с интернетом. Какой настройки может не хватать? |
|
11.11.2015, 19:35 | #2 |
Banned
|
" ISO EUR и Руб "
В таблице Currency, наверное, прописан ISO-код "Руб" вместо RUB. |
|
|
За это сообщение автора поблагодарили: Ильдар (1). |
11.11.2015, 22:09 | #3 |
Участник
|
|
|
12.11.2015, 08:41 | #4 |
Злыдни
|
Посмотрите таблицу ISOCurrencyCode. Для используемых в поле "Код валюты" валют должны быть указаны ISOCurrencyCodeNum: для рубля = 643, для евро = 978. Кто-то, наверно, пошаманил в справочнике "Коды валют по ISO".
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
За это сообщение автора поблагодарили: Ильдар (1). |
12.11.2015, 10:11 | #5 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: RAN7 (1). |
12.11.2015, 10:23 | #6 |
Участник
|
А какой курс для рубля вы хотите получить с сайта ЦБ? EUR у вас тоже переименован код или как в стандарте EUR - EUR в карточке?
__________________
Ivanhoe as is.. |
|
12.11.2015, 11:14 | #7 |
Участник
|
Пытаемся грузить курс как на текущую дату, так и за диапазон дат. Коды для валют EUR и USD совпадают в отличие от рублей.
|
|
12.11.2015, 11:26 | #8 |
Участник
|
А у кого-нибудь вообще в 2012-ой грузятся курсы?
|
|
12.11.2015, 12:26 | #9 |
Участник
|
Грузятся. Валюту Руб переименуйте в RUB - по аналогии с ISO код
|
|
|
За это сообщение автора поблагодарили: RAN7 (1), Ильдар (1). |
12.11.2015, 12:58 | #10 |
Участник
|
Не помогло. Просто инфолог сменился на: "Не удалось найти валютный курс для кодов валют ISO EUR и RUB на дату 12.11.2015. Убедитесь, что коды валют ISO поддерживаются поставщиком и доступны на запрошенную дату".
|
|
12.11.2015, 13:14 | #11 |
Участник
|
Через браузер с самого АОСа (или откуда запускаете импорт) пробовали по этим (первое сообщение) ссылкам перейти, открываются?
Последний раз редактировалось Товарищ ♂uatr; 12.11.2015 в 13:16. |
|
|
За это сообщение автора поблагодарили: RAN7 (1), Ильдар (1). |
12.11.2015, 13:34 | #12 |
Участник
|
По ссылкам открывает, но через ввод логина и пароля на прокси-сервер.
|
|
12.11.2015, 13:47 | #13 |
Участник
|
У заказчика прямое соединение, без прокси. Но тоже открывает эти ссылки, а импорта не происходит.
|
|
12.11.2015, 15:42 | #14 |
Участник
|
Если прокси, то без модификаций никак.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Ильдар (1). |
12.11.2015, 15:43 | #15 |
Участник
|
Так у заказчика без прокси.
|
|
13.11.2015, 13:10 | #16 |
Участник
|
Всем спасибо за отзывчивость и за помощь.
Проблема решилась заведением дублера курса валюты RUB (при переименовании через паспорт записи появились дополнительные проблемы при разноске счетов-фактур - пришлось вернуть обратно, но косяк все равно остался: поэтому у заказчика не стали это делать). Похоже прога по импорту засылала вместо кода валюты ISO код самой валюты, т.е. вместо латинских RUB засылался код в кириллице "Руб". Ну и в проксе тоже дело. У заказчика без доп.манипуляций загрузилось. На сервере разработки с проксей пришлось поставить обходчик прокси. Сделаем доработку, чтобы засылался код ISO, а не русскоязычный код. Последний раз редактировалось Ильдар; 13.11.2015 в 13:18. |
|
13.11.2015, 13:21 | #17 |
Участник
|
Цитата:
Сообщение от Ivanhoe
На вскидку в коде увидел условие, где и код валюты и код из справочника ISO кодов должны быть равны одной и той же переменной. Так что действительно, в коде это явно вписано
А то мы эмпирическим путем выяснили. Программеру разбираться еще придется. |
|
13.11.2015, 16:47 | #18 |
Злыдни
|
Ну кто-то добрый при переходе на новую версию AX избавился от кодов валюты ЦБ вида 'R****' и жестко запрограммировал поиск и создание курсов для пары валют по буквенному коду ISO в классе ExchangeRateProviderCBRF_RU. Хотя по логике надо было бы в таблице currency проверять, к какому ISO коду привязана валюта.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
14.11.2015, 01:05 | #19 |
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, импорт курсов валют |
|
|