Одним из источников курсов валют, является сайт ЦБРФ (Центральный Банк Российской Федерации). Запросить данные с сайта можно с помощью объекта HTTPСоединение. В Интернете можно найти множество источников для загрузки курсоров валют. Широко применяется загрузка курсов валют с сайта РБК.
Строка запроса данных с сайта ЦБРФ
Коды валют ЦБРФ Евро - R01239 Доллар США - R01235 Японская иена - R01820 Весь список валют
Запрос для получения курсов всех валют на последнюю дату Запрос: www.cbr.ru/scripts/XML_daily.asp
Запрос для получения курсов всех валют на 24.08.2016 Шаблон: www.cbr.ru/scripts/XML_daily.asp?date_req=День/Месяц/Год Запрос: www.cbr.ru/scripts/XML_daily.asp?date_req=24/08/2016
Запрос для получения курсов Евро за период с 20/08/2016 по 24/08/2016 Шаблон: www.cbr.ru/scripts/XML_dynamic.asp?date_req1=День/Месяц/Год&date_req2=День/Месяц/Год&VAL_NM_RQ=КодВалюты Запрос: www.cbr.ru/scripts/XML_dynamic.asp?date_req1=20/08/2016&date_req2=24/08/2016&VAL_NM_RQ=R01239
Загрузить курсы валют
При запросе с сайта ЦБРФ возвращается xml-файл. При запросе курсов на определенную дату или за период структура xml-файла отличается.
Функция ПолучитьКурсыВалют()
//Сервер Сервер = "www.cbr.ru";
//Курс всех валют на последнюю дату Адрес = "scripts/XML_daily.asp";
//Курс всех валют определенную дату Адрес = "scripts/XML_daily.asp?date_req=24/08/2016";
//Курс Евро за период Адрес = "scripts/XML_dynamic.asp?date_req1=20/08/2016&date_req2=24/08/2016&VAL_NM_RQ=R01239";
Попытка HTTP = Новый HTTPСоединение(Сервер); Исключение Сообщить("Не удалось подключиться"); Возврат Ложь; КонецПопытки;
HTTPЗапрос = Новый HTTPЗапрос(Адрес); HTTPОтвет = HTTP.Получить(HTTPЗапрос); Текст = HTTPОтвет.ПолучитьТелоКакСтроку("windows-1251");
ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(Текст);
//В переменной Текст содержится текс в XML-формате //Перебор узлов формируется в зависимости от структуры XML
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXML.ЛокальноеИмя = "ИмяТэга" Тогда Читаем = Истина; КонецЕсли; ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда Если Читаем Тогда Значение = XMLЗначение(Тип("Строка"), ЧтениеXML.Значение); Читаем = Ложь; КонецЕсли; КонецЕсли;