1CLenta.ru  

Загрузка курсов валют из РБК в 1С

Программирование системы     23.08.2016 10:30     23043

Во многих типовых прикладных решениях уже реализован механизм получения курсов валют. Чаще всего в конфигурации существует специальный регистр сведений для хранения этих данных. Если требуется загрузить курсы валют не в типовом прикладном решении, то можно реализовать собственный алгоритм получения курсов по валютам.

РБК - это крупный российский мультимедийный холдинг. Данная компания включает одноименной телеканал, печатные СМИ, интернет-портал. Котировки валют можно получить не только с сайта РБК. ЦБРФ(Центральный банк Российской Федерации) в свободном доступе транслирует котировки валют.

Сайт РБК транслирует курсы валют в открытом доступе. Данный портал предоставляет котировки за различные периоды. Для получения необходимых данных нужно составить соответствующий запрос.

Строка запроса данных с сайта РБК


Коды валют
Британский фунт - 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);

КонецЦикла;

КонецФункции

Комментарии (2)

1. vektor  25.05.2020 20:37  
Добрый день !
Подскажите пожалуйста: как это запустить в 1с8 Бухгалтерия 3.0 ?
Буду благодарен за помощь.
2. progv8  30.05.2020 14:46  
Здесь показан пример, как получить курсы валют.
Этот пример можно запустить во внешней обработке для Бухгалтерии 3.0.