|
06.11.2008, 14:27 | #1 |
Программатор
|
Поле LedgerParameters.ExpressExchRate
В методе \Data Dictionary\Tables\Currency\Methods\amountCur2MST
есть строка с кодом amountMST = _amountCur * exchRate / 100; Почему тут не делится на поле LedgerParameters.ExpressExchRate? Просто если у меня в этом поле (поле называется "Кратность курса валют") стоит единичка, то 1000 евро стоит 1050 рублей грубо говоря. Нехило так. Причем это деление на 100 я встречал во многих местах. Спасибо... |
|
06.11.2008, 14:39 | #2 |
Участник
|
\Data Dictionary\Tables\ExchRates\Methods\editExchRate
|
|
06.11.2008, 14:40 | #3 |
Участник
|
Потому что бага.
Пишите в Майкрософт или сюда Отправьте баги в Майкрософт Не забудьте указать версию вашего приложения. Потому что в Дании все курсы валют указываются за 100 единиц. Поэтому в Аксапте и в Навижине очень долгое время курс надо было указывать за 100 единиц. И вот - случилось чудо - в последних версиях ввели кратность. Но код изменили не везде. Баг, просто баг... |
|
06.11.2008, 14:58 | #4 |
Программатор
|
Коллеги подсказывают, что этот параметр нужен только для отображения курса на формах. Хранится в системе всегда для сотни. Если это так, то рано я запаниковал)))
|
|
06.11.2008, 15:16 | #5 |
Участник
|
В DAX 4 SP2 FP1 появился долгожданный импорт курсов валют с сайта ЦБ. В нем тоже разработчики посчитали, что настроек нет и делят на 100. А это уже похуже, чем просто отображение. Класс CurrencyRateImport_RU метод loadRatesOnDate. Правда там можно систему обмануть, но это тоже не очень радует.
|
|
06.11.2008, 15:22 | #6 |
Программатор
|
Все таки я склоняюсь к тому что это не бага. Прошолся по таблицам - курс хранится за 100. Просто отображается в зависимости от этой настроечки.
|
|
06.11.2008, 15:34 | #7 |
Участник
|
Если в загрузке курсов, то именно бага. Так как там используется стандартный метод установки курса (setExchRate), то в случае установки в параметре кратности 1, курс увеличивается в 100 раз (так как при загрузке он уже умножался на 100). Если обходится без модификаций (и ждать исправления), то можно обойти тем, что в справочнике валют в поле "Коэффициент" ввести значение кратности, которое устанавливает ЦБ ,умноженное на 100. То есть для USD, EUR и т.п. ввести 100, а, например, для Казахских тенге 10000.
|
|
21.07.2009, 13:20 | #8 |
Участник
|
Доклад о раскопках:
Вчера повозился и в итоге перешел на 1 к 1, подправив наши места в коде, где про это не знали. Настройка влияет только на отображение, курс хранится 100 к 100, как и было, соотв. весь код, где /100 по живому работает, как и работал. Косяки могут быть только при вводе операций с заниженным в 100 раз курсом, где нет метода, а все через поле вживую. Наш функционал, например, АО знает об этой правке - там метод editExchRate используется. Итого, в коде на формах не должно быть поле Курс, а только едит-метод обертка для него. Настройку можно менять в любое время, хоть два раза в день - она НЕ пересчитывает ничего и не влияет на ведение операций или закачку курсов, тк курсы идут одинаково (100 к 100), без настройки. Главное о смене настройки пользователям донести, что б выбивали 34р за $, а не 3400. В закачке курсов делить не нужно, пусть 100 к 100 заливает. |
|
|
За это сообщение автора поблагодарили: sukhanchik (5). |
11.08.2009, 14:26 | #9 |
Участник
|
Поправка.
Видимо, установка кратности и закачка курсов требуют перезахода в АХ или перезапуска АОС, тк кэшируется. Реально штатная закачка с ЦБ РФ ВРЕТ и закачивает 1 в 10000, если поставить 1, вместо 100 в кратности. Нештатная, которая в 2003 на АХ форуме давалась ХРО, работает как часы, там только галку нужно ставить CBCurrencyRate_RU для полноты счастья. 6 лет пользовал эту закачку, а тут на стандарт решил перейти - щас! он еще и вопросы дуратские задает, трубующие ответа ДА-НЕТ (как это в пакетнике будет? и нафиг эти вопросы, когда курсов по выходным нет - это норма бытия). В общем, как всегда.... напильник в руки или все свое, проверенное. |
|