Вниманию предлагается набор функций для загрузки в Terrasoft 3.X актуального курса доллара к гривне по версии Нацбанка Украины. Можно получать как официальный, так и средневзвешенный рыночный курс.
Функция непосредственного получения курса. Если входной параметр true – получает официальный курс, если false или без параметра – средневзвешенный.
Результат - объект с двумя полями. Rate – количество украинских гривен за 1 доллар США (например, 7.993). Date – указанная на сайте дата этого курса. Для официального – следующий рабочий день, для среднего – предыдущий.
try {
var Result = new Object();
var webAddress = 'http://bank.gov.ua/control/uk/index';
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.6.0");
xmlHttpReq.open("GET", webAddress, false);
xmlHttpReq.send();
var HtmlText = xmlHttpReq.responseText.replace(/\s/g, "");
if (IsOfficial) {
var BeginText = '
var EndText = '
} else {
var BeginText = '-->
var EndText = '
}
var BeginIndex = HtmlText.indexOf(BeginText)+ BeginText.length;
var EndIndex = HtmlText.indexOf(EndText);
var HtmlFragment = HtmlText.substring(BeginIndex, EndIndex);
var Rate = parseFloat(HtmlFragment);
if (isNaN(Rate)) {
Log.Write(2, 'Ошибка при получении курса Нацбанка');
return null;
}
Result.Rate = Rate/100;
if (IsOfficial) {
BeginText = '
EndText = '
} else {
BeginText = '
EndText = '
Александр, спасибо!
Правильно ли я понимаю, что функция рассчитана на текущую разметку официального сайта НБУ и Вы будете следить за ее изменениями, внося соответствующие правки в свое решение?
Да, так и есть. У НБУ, в отличие от ЦБРФ, нет публичного XML API.
За полгода дизайн сайта НБУ не менялся, пока работает нормально.
Александр! функция перестала работать!
выдает сообщение: "Ошибка при получении курса Нацбанка"
Поправьте скрипт как можно скорее!
Спасибо.