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

13.03.22

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Загрузить курсы валют с сайта Национального Банка РБ 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С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

19200 руб.

21.03.2023    17993    125    23    

102

SALE! 50%

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

Корректируйте банковские документы быстро и легко! Создайте правило обработки, и оно автоматически применится при загрузке выписки, экономя ваше время. Решение позволяет автоматически заполнять расшифровку платежа, исключать загрузку ненужных документов (дублей) из банка, заполнять комиссию за эквайринг и многое другое. Вам не нужно доплачивать за алгоритмы, они уже включены в решение. Автоматическая обработка применяется при загрузке данных как из файлов клиент банка, так и через DirectBank.

15000 руб.

20.12.2024    11086    40    24    

41

SALE! 15%

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    3923    18    2    

20

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

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

36000 руб.

03.08.2020    21717    30    24    

24

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9600 руб.

17.06.2025    1625    5    0    

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