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

13.03.22

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

19520 руб.

21.03.2023    23488    164    39    

124

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

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

15250 руб.

20.12.2024    15796    70    29    

65

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

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

42700 руб.

03.08.2020    24461    37    26    

28

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

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

17568 руб.

20.12.2024    6444    28    4    

30

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

24000 руб.

02.02.2021    23215    70    52    

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