Во многих типовых прикладных решениях уже реализован механизм получения курсов валют. Чаще всего в конфигурации существует специальный регистр сведений для хранения этих данных. Если требуется загрузить курсы валют не в типовом прикладном решении, то можно реализовать собственный алгоритм получения курсов по валютам.
РБК - это крупный российский мультимедийный холдинг. Данная компания включает одноименной телеканал, печатные СМИ, интернет-портал. Котировки валют можно получить не только с сайта РБК. ЦБРФ(Центральный банк Российской Федерации) в свободном доступе транслирует котировки валют.
Сайт РБК транслирует курсы валют в открытом доступе. Данный портал предоставляет котировки за различные периоды. Для получения необходимых данных нужно составить соответствующий запрос.
Строка запроса данных с сайта РБК Коды валют Британский фунт - 826 Американский доллар - 840 Японская йена - 392 Полный список валют...
Запрос для получения курса доллара на 23.08.2016 Шаблон: http://cbrates.rbc.ru/tsv/КодВалюты/Год/Месяц/День.tsv Запрос: http://cbrates.rbc.ru/tsv/840/2016/08/23.tsv
Запрос для получения курса доллара за весь период Шаблон: http://cbrates.rbc.ru/tsv/cb/КодВалюты.tsv Запрос: http://cbrates.rbc.ru/tsv/cb/840.tsv
Формат выгружаемых данных Каждый курс валюты выгружается в отдельной строке. Параметры валюты в строке разделены знаком табуляции.
Дата |
Кратность |
Курс |
20160821 |
1 |
72.4558 |
20160822 |
1 |
72.4558 |
20160823 |
1 |
72.4457 |
Загрузка курсов валют с сайта РБК
Функция ПолучитьКурсыВалют() //Сервер Сервер = "cbrates.rbc.ru"; //На определенную дату Адрес = "tsv/cb/840/2016/08/22.tsv"; //ИЛИ //Без ограничения даты Адрес = "tsv/cb/840.tsv"; Попытка HTTP = Новый HTTPСоединение(Сервер); Исключение Сообщить("Не удалось подключиться"); Возврат Ложь; КонецПопытки; HTTPЗапрос = Новый HTTPЗапрос(Адрес); HTTPОтвет = HTTP.Получить(HTTPЗапрос); Текст = HTTPОтвет.ПолучитьТелоКакСтроку("windows-1251"); Для ИндексСтроки = 1 По СтрЧислоСтрок(Текст) Цикл СтрокаКурса = СтрПолучитьСтроку(Текст, ИндексСтроки); //Распарсить строку с курсом по символу табуляции МногострочнаяСтрока = СтрЗаменить(СтрокаКурса, " ", Символы.ПС); ДатаКурса = СтрПолучитьСтроку(МногострочнаяСтрока, 1); КратностьКурса = СтрПолучитьСтроку(МногострочнаяСтрока, 2); Курс = СтрПолучитьСтроку(МногострочнаяСтрока, 3); КонецЦикла; КонецФункции
|