CurrencyRate


Назначение

Вывод обменного курса валюты на заданную дату.

Ключи

source Строка, обязательный параметр. Содержит идентификатор источника данных. На текущий момент может принимать следующие значения:
  • CBRF - Центральный Банк Российской Федерации
  • BNM - Национальный Банк Молдовы
  • NBRK - Национальный Банк Республики Казахстан
currency Строка, обязательный параметр. Содержит код валюты в том виде, который применим для используемого источника.

Где взять коды валют:

date Дата, в формате понимаемом источником данных. Дата не может быть больше текущей.

Если ключ не задан, используется текущая дата.

Используемые форматы дат:

  • CBRF: ДД.ММ.ГГГГ
  • BNM: ДД.ММ.ГГГГ (с 25.06.2008, до этого был ММ/ДД/ГГГГ)
  • NBRK: дата никак не задается (ключ игнорируется), т.к. сервис Центробанка Казахстана выдает данные только на текущую дату. Формат даты в базе ДД.ММ.ГГГГ.
condition Составное условие выполнения макроса.

Комментарии

Сервис получает данные из внешнего источника и записывает полученное значение для последующего использования в локальную базу (файл Data/currency_rates.dat). То есть обращение сервиса к внешнему источнику происходит только в том случае, когда значение не найдено в базе.

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

Логика обработки (парсинга) данных зашита внутри сервиса и никак не настраивается.

Как правило, обменный курс выводится по отношению к валюте национального банка, то есть для ЦБ РФ курс считается по отношению к рублю. Если исчисление курса производится для 10, 100, 1000 (и т.п.) денежных единиц - например, курс для 10 японских йен - система приводит курс без деления на количество, поскольку подразумеваются принятые на финансовых рынках числовые значения.

Страницы, где используется данный сервис не попадут в кэш системы. Для нагруженных страниц рекомендуется выносить данный сервис в некэшируемые Javascript сценарии, которые будут выводить данные через document.write (или другим способом), при этом сама страница сможет закэшироваться.

Примеры

Примеры использования
$CurrencyRate [source: "CBRF"; currency: R01235; date: 28.01.2008]$
$CurrencyRate [source: "BNM"; currency: 840]$
$CurrencyRate [source: NBRK; currency: RUB]$