Загрузка курсов валют НБ РБ для Республики Беларусь (управляемые формы)

13.03.22

Учетные задачи - Банковские операции

Загрузка курсов валют с сайта https://nbrb.by для конфигураций Республики Беларусь на управляемых формах (Управление торговлей 3, Бухгалтерия предприятия 2). Используется Rest API портала.

Скачать исходный код

Наименование Файл Версия Размер
Загрузка курсов валют НБ РБ для Республики Беларусь (Управляемые формы):
.epf 10,03Kb
7
.epf 10,03Kb 7 Скачать

Загрузить курсы валют с сайта Национального Банка РБ https://www.nbrb.by/bel без использования сторонних сервисов.

 

 
 Подключение и использование

1.  Использование  "Файл"->"Открыть". Курсы загружаются с предыдущей даты загрузки по текущий день. Загружаются курсы всех валют, отмеченных способом "Загружается из Интернета"

 

 

2. Подключение в справочнике "Администрирование"->"Дополнительные отчеты и обработки"

 Для данного варианта можно настроить загрузку курсов валют ежедневно по расписанию.

 

 
 Что внутри: Rest API

Подключаемся через HTTPСоединение

Примеры адресов API для валют:

//https://www.nbrb.by/api/exrates/rates/840?parammode=1 - получение внутреннего кода валюты "Cur_ID"
//https://www.nbrb.by/API/ExRates/Rates/Dynamics/431?startDate=2022-3-1&endDate=2022-3-10 курс валюты за период 1 файлом

Функция ПолучитьHTTPСоединение() Экспорт
	Соединение = Неопределено;
	SSL = Новый ЗащищенноеСоединениеOpenSSL();
	Попытка
		Соединение = Новый HTTPСоединение("www.nbrb.by",,,,,, SSL);
	Исключение
		Сообщить("Ошибка создания соединения");
		Возврат Неопределено;
	КонецПопытки; 
	Возврат Соединение;
КонецФункции

Функция ЗапросHTTP_курс(Код)
	ЗапросHTTP = Новый HTTPЗапрос();
	//ЗапросHTTP.АдресРесурса	= "/api/exrates/rates/" + 840 + "?parammode=1&ondate=" + Формат(Дата, "ДФ=yyyy-M-d"); 
	ЗапросHTTP.АдресРесурса	= "/api/exrates/rates/" + Код + "?parammode=1"; 
	Возврат ЗапросHTTP;
КонецФункции

Функция ЗапросHTTP_курсы(Код, НачалоПериода, КонецПериода)
	//https://www.nbrb.by/API/ExRates/Rates/Dynamics/431?startDate=2022-3-1&endDate=2022-3-10 курс валюты за период 1 файлом  //Доллар
	ЗапросHTTP = Новый HTTPЗапрос();
	ЗапросHTTP.АдресРесурса	= "/API/ExRates/Rates/Dynamics/" + Код + "?startDate="+Формат(НачалоПериода, "ДФ=yyyy-M-d")+ "&endDate=" + Формат(КонецПериода, "ДФ=yyyy-M-d"); 
	Возврат ЗапросHTTP;
КонецФункции

Непосредственно загрузка:

Процедура ЗагрузитьКурсыВалютПоПараметрам(СписокВалют, НачалоПериода, КонецПериода, ПриЗагрузкеВозниклиОшибки)
	//https://www.nbrb.by/api/exrates/rates/840?parammode=1 - получение внутреннего кода валюты "Cur_ID"
	//https://www.nbrb.by/API/ExRates/Rates/Dynamics/431?startDate=2022-3-1&endDate=2022-3-10 курс валюты за период 1 файлом
	
	Соединение = ПолучитьHTTPСоединение();
	Если Соединение = Неопределено Тогда
		Возврат;
	КонецЕсли; 
	
	Для каждого Валюта из СписокВалют Цикл
		ВнутрКод = "";
		ЗапросHTTP = ЗапросHTTP_курс(Валюта.КодВалюты);
		Ответ = Соединение.Получить(ЗапросHTTP);
		
		Если Ответ.КодСостояния = 200 ИЛИ Ответ.КодСостояния = 204 Тогда
		Иначе
			Возврат;
		КонецЕсли; 
		
		ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
		ПП = ПрочитатьОтветJSON(ТелоОтвета);	
		ВнутрКод = ПП["Cur_ID"];
		Кратность = Число(ПП["Cur_Scale"]);
		
		ЗапросHTTP = ЗапросHTTP_курсы(ВнутрКод, НачалоПериода, КонецПериода);
		Ответ = Соединение.Получить(ЗапросHTTP);
		
		Если Ответ.КодСостояния = 200 ИЛИ Ответ.КодСостояния = 204 Тогда
		Иначе
			Возврат;
		КонецЕсли; 
		
		ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
		ПП = ПрочитатьОтветJSON(ТелоОтвета);
		
		Для каждого Эл из ПП Цикл
			Курс = Число(Эл["Cur_OfficialRate"]);	
			Дата = ВДату(Эл["Date"]);//"2021-07-09T00:00:00"
			ЗаписатьКурсВалюты(Валюта.Валюта, Дата, Курс, Кратность)
		КонецЦикла;
	КонецЦикла;
	
	
КонецПроцедуры

Функция ПрочитатьОтветJSON(СтрокаJSON) Экспорт
	
	Результат = Неопределено;
	
	Попытка
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
		Результат = ПрочитатьJSON(ЧтениеJSON, Истина,,,"ПреобразованиеJSON", );
	Исключение
		Возврат Неопределено;
	КонецПопытки;
	
	Возврат Результат;
КонецФункции

Тестировалось на версиях конфигураций Управление торговлей, редакция 3.4 и Бухгалтерия для Беларуси, редакция 2.1. Локализация для Республики Беларусь. Версия платформы 1С 8.3.15. Подойдет для любой конфигурации на базе БСП.

Загрузка курсы валют Беларусь НБ РБ Национальный банк REST API JSON

См. также

Автоматическая обработка банковских выписок и документов в 1С

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

15000 руб.

21.03.2023    8890    50    12    

48

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16233    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18401    10    15    

16

1С обмен данными с клиентом банка для БП 3.0, ERP 2.4, ERP 2.5 с дополнительными правилами загрузки

Обмен с интернет-банком Банковские операции Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Модуль представляет собой комплексную автоматизацию обмена данными 1С с банком для БП 3.0, ERP 2.4, ERP 2.5. Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20400 руб.

03.04.2013    123317    247    377    

161

Обмен с клиентом банка для Беларуси

Банковские операции Обмен с интернет-банком Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Беларусь Россия Бухгалтерский учет Платные (руб)

Типовая обработка "Клиент-банк" из конфигурации 1С "Бухгалтерия для Беларуси, редакция 2.1" корректно работает с выписками только банка "Дабрабыт", до 28.01.2019 "Москва-Минск". А бухгалтеру нужно работать и с другими банками и с другими конфигурациями. Для этого было разработано расширение, которое позволит решить данную проблему!

10.10.2017    36788    71    Xershi    41    

58
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sytkosa 119 13.03.22 11:16 Сейчас в теме
(0) Сделайте в виде универсального расширения под УТ/БП/КА/УНФ(УК) с возможностью вызова фонового задания тогда зайдет в массы, а так очень похоже на код который был в типовых пока типовые не перешли на курсы через ИТС
2. fixin 4256 05.01.24 20:04 Сейчас в теме
в конце 2023 адрес API поменялся.
Сделал необходимые доработки, можно почитать в моей статье: https://geniy1s.ru/zagruzka-kursov-valyut-naczbanka-belarusi-v-2024/
3. svilsa 12 06.01.24 20:41 Сейчас в теме
Оставьте свое сообщение