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

13.03.22

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

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

Скачать файл

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

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

Загрузить курсы валют с сайта Национального Банка РБ 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    13081    89    21    

76

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

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

60000 руб.

07.05.2019    34472    65    45    

26

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2452    2    0    

9

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

Если вам нужно корректировать банковские документы, это расширение — именно то, что вам нужно! Создайте правило обработки, укажите, как заполнять документы, и оно автоматически применится при загрузке банковской выписки. Это значительно сократит время и усилия на корректировку. Расширение легко устанавливается в большинство современных конфигураций 1С:УТ 11.5, 1С:ERP 2.5, 1С:КА 2.5, 1С:УНФ 3.0, Розница 3.0

12000 руб.

20.12.2024    1324    10    14    

13

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

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    2187    1    1    

4

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

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

20400 руб.

03.04.2013    125944    258    377    

167

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

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

36000 руб.

03.08.2020    18974    21    22    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sytkosa 119 13.03.22 11:16 Сейчас в теме
(0) Сделайте в виде универсального расширения под УТ/БП/КА/УНФ(УК) с возможностью вызова фонового задания тогда зайдет в массы, а так очень похоже на код который был в типовых пока типовые не перешли на курсы через ИТС
2. fixin 4279 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 Сейчас в теме
Оставьте свое сообщение