Получить курс валют от Банк России. Интеграция с ЦБ РФ API
Получение данных о котировках валют по API с сайта www.cbr.ru (ЦБ РФ).
Как реализовать
Вызов внешнего действия APIRequest при сохрании формы:
CREATE PROCEDURE [dbo].[fm_watch_valuta_saveItem]
@username nvarchar(256),
@itemID int,
@fieldvaluta nvarchar(256) = ''
AS
BEGIN
-- 1 SELECT (Result, Msg)
select 1 Result, ' ' Msg
select 'apirequest' type, 'valuta' code, 'valuta' p1_name, @fieldvaluta p1_value
END
API вызов (тип GET, XML):
CREATE PROCEDURE [dbo].[api_valuta_request]
@parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2)
@username nvarchar(32) -- текущий пользователь.
AS
BEGIN
declare @maxDate nvarchar(10) = convert(nvarchar(10), getdate(), 103)
declare @minDate nvarchar(10) = convert(nvarchar(10), dateadd(day, -7, getdate()), 103)
declare @valuta nvarchar(128) = (select top 1 Value2 from @parameters where [Key]='valuta')
-- SELECT 1 Msg, Result, Url (адрес, куда будет идти запрос)
select '' Msg, 1 Result, 'http://www.cbr.ru/scripts/XML_dynamic.asp?'+
'date_req1='+@minDate+'&date_req2='+@maxDate+'&VAL_NM_RQ=' + @valuta Url -- R01235 14/03/2001
-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
END
Обработка в JS (обратите внимание, что здесь работаем не с JSON, а с XML через jQuery):
<script>
$(function(){
as.formcallbacks["watch_valuta_saveItem"] = function(data, params){
var ss = JSON.parse(data.additionalData)[0].items;
var resp = $.grep(ss, function(v) {
return v.key == "response"
});
console.log(resp)
if(resp.length>0 && resp[0].value2) {
var el = resp[0].value2;
console.log("valuta", el);
var s = "";
$("record", el).each(function(){
/*
<Record Date="14.03.2001" Id="R01235">
<Nominal>1</Nominal>
<Value>28,6500</Value>
</Record>
*/
s+='<div>' + $(this).attr("Date") + " - <span class='badge badge-light'>" + $("Value", this).html() + "</span></div>";
});
if(s){
as.sys.bootstrapAlert(
'<h3>'+$('.as-form-item[data-code=valuta] select option:selected').text() + ' к рублю</h3>' + s,
{type: "info", delay: 1000000, icon: ' '});
return;
}
}
as.sys.bootstrapAlert("Что-то пошло не так", {type: "danger"});
}
});
</script>
Другие демостенды
— Обновление содержимого страницы сайта (Refresh container). Перезагрузка части страницы— Загрузка таблицы на странице в некий контейнер по ссылке
— Отображение денежных сумм на сайте
— Выгрузка определенных строк при экспорте в Excel
Что есть в базе знаний по этой теме
— Локализация сайта. Перевод интерфейса сайта на языки— Как добавить в фильтре значение Не выбрано со значением
— Как сделать показ увеличенных картинок (лайтбокс)
— Интеграция API Курсы валют Центрального Банка РФ
— Работа с редактором кода в личном кабинете разработчика
Последние обновления
Интеграции 24.11.2025
Разное 24.11.2025
Форма 15.11.2025
Визуализация 02.11.2025
Таблица 08.10.2025
Форма 26.09.2025
Таблица 23.09.2025
Разное 23.08.2025
Таблица 21.08.2025
Форма 20.08.2025
Таблица 18.08.2025
Таблица 21.06.2025
Форма 07.06.2025
Форма 29.03.2025
Форма 17.02.2025
Файлы и документы 10.01.2025
Форма 01.11.2024
Форма 23.10.2024
SQL-инструмент для создания личных кабинетов на сайте
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства