Информер курса валют — небольшой блок, который показывает посетителю актуальные курсы ЦБ РФ прямо на страницах магазина. В 1С-Битрикс он собирается из данных модуля currency и выводится штатным компонентом, поэтому отдельная интеграция с внешним API обычно не нужна.
Что такое информер и зачем он нужен
Информер курса валют — это виджет, который отображает текущие курсы (доллар, евро и другие) в удобном месте: в шапке, в сайдбаре или в подвале. Для мультивалютного магазина это не декорация, а функциональный элемент: покупатель видит, по какому курсу пересчитываются цены, и понимает логику итоговой стоимости.
В 1С-Битрикс данные о курсах хранит модуль currency. Каждая валюта имеет поле Курс и Номинал относительно базовой валюты сайта. Информер лишь читает эти значения и показывает их в публичной части — своих курсов он не хранит.
Штатный компонент currency.rates
За вывод курсов отвечает готовый компонент bitrix:currency.rates. Он входит в модуль валют и не требует установки дополнительных решений. Компонент читает список валют, применяет формат отображения и отдаёт готовую HTML-разметку по своему шаблону.
Разместить его можно двумя способами:
- В шаблоне сайта — вставить вызов компонента напрямую в
header.phpили другой файл шаблона, чтобы блок был на всех страницах; - В контенте страницы — через визуальный редактор, вкладка «Компоненты» → «Служебные» (или «Валюты»), перетащив Курсы валют в нужную область.
Базовый программный вызов выглядит так:
$APPLICATION->IncludeComponent("bitrix:currency.rates", "", array("CACHE_TYPE" => "A", "CACHE_TIME" => "3600"));
Параметры и настройка вывода
После добавления компонента откройте его настройки (в режиме правки — иконка «шестерёнка»). Основные параметры компактны, но именно они определяют, что и как увидит посетитель.
| Параметр | Назначение |
|---|---|
| Список валют | Какие валюты показывать в информере (можно исключить базовую) |
| CACHE_TYPE / CACHE_TIME | Тип и время кэширования блока в секундах |
| Шаблон компонента | Внешний вид: .default или ваш кастомный |
Если базовая валюта сайта — рубль, её обычно из списка убирают: показывать «1 RUB = 1 RUB» бессмысленно. Оставляют USD и EUR, при необходимости добавляют CNY или другие. Формат самих чисел (разделители, символ, число знаков после запятой) берётся из настроек каждой валюты в модуле currency, а не задаётся в компоненте.
Кастомизация шаблона
Стандартный шаблон .default выводит простую таблицу и редко вписывается в дизайн. Правильный путь — скопировать шаблон в своё пространство и править копию, чтобы обновления Битрикса не затирали ваш код.
- Скопируйте папку шаблона из
/bitrix/components/bitrix/currency.rates/templates/.default/в/local/templates/<шаблон_сайта>/components/bitrix/currency.rates/<имя>/; - В файле
template.phpизмените разметку — массив$arResultсодержит валюты с курсом, номиналом и отформатированными значениями; - Подключите свои стили через
style.cssв папке шаблона; - Укажите имя нового шаблона в параметрах вызова компонента.
/bitrix/components/bitrix/. Любое обновление платформы вернёт исходный код и ваши правки пропадут. Всегда работайте через /local/ или шаблон сайта.Откуда берутся актуальные курсы
Информер хорош ровно настолько, насколько свежи данные в модуле валют. Сам виджет курсы не тянет — он показывает то, что записано в поле Курс. Чтобы значения соответствовали реальности, нужен регулярный импорт.
- Автообновление ЦБ РФ. В модуле валют есть агент, который загружает официальные курсы Центробанка. Он ставится на периодический запуск через ядро агентов Битрикса;
- Обмен с 1С. Если курсы ведутся в учётной системе, они приходят на сайт вместе с обменом каталогом и ценами;
- Ручной ввод. Подходит для редких изменений — курс правится в карточке валюты вручную.
Проверьте, что агенты действительно отрабатывают: раздел Настройки → Настройки продукта → Агенты. Если сайт с низкой посещаемостью, агенты на хитах могут не запускаться вовремя — тогда переведите их на запуск по cron.
Кэширование и производительность
Курсы меняются раз в сутки, поэтому агрессивное кэширование информера безопасно и полезно. Включите автокэширование (CACHE_TYPE = A) и задайте CACHE_TIME в диапазоне 3600–86400 секунд. Так блок не будет обращаться к базе на каждом хите.
Если магазин работает на композитном кэше, информер с курсами — статичный по своей сути, и он корректно попадает в композит. Динамики здесь нет: одно и то же значение для всех посетителей до следующего обновления курсов. Проблема возникает только когда кэш компонента живёт дольше, чем интервал обновления курсов — тогда посетитель увидит вчерашние цифры. Согласуйте CACHE_TIME с периодичностью импорта.
Типичные проблемы
Чаще всего с информером возникают три ситуации, и все они решаются проверкой смежных настроек, а не самого компонента.
- Блок пустой. В списке валют оставлена только базовая либо у валют не заполнен курс. Проверьте карточки валют в модуле
currency; - Курсы устарели. Не отрабатывает агент автообновления или обмен с 1С. Смотрите журнал агентов и дату последнего изменения курса;
- Кривой формат чисел. Символ валюты, разделители и число знаков задаются в настройках самой валюты — правьте их там, а не в шаблоне информера.
Итог
Информер курсов валют в 1С-Битрикс собирается штатным компонентом currency.rates: выбираете валюты, настраиваете кэш, при необходимости правите шаблон в /local/. Ключевое условие корректной работы — регулярный импорт курсов через агент ЦБ РФ или обмен с 1С, иначе виджет будет показывать устаревшие данные.
Если нужно вписать информер в дизайн, настроить надёжное автообновление курсов через cron или связать курсы с учётной системой без ручного ввода — мы помогаем с этим в рамках разработки, интеграции с 1С и поддержки магазинов на Битрикс.
Частые вопросы
Каким компонентом выводится информер курсов в Битрикс?
Штатным компонентом bitrix:currency.rates из модуля валют. Он читает курсы из настроек валют и выводит их по своему шаблону, дополнительные модули не требуются.
Нужно ли подключать внешний API для получения курсов?
Нет. Информер показывает курсы, уже записанные в модуле currency. Внешние данные ЦБ РФ загружает отдельный агент автообновления или обмен с 1С, а не сам виджет.
Почему информер показывает устаревшие курсы?
Как правило, не отрабатывает агент автообновления или слишком долго живёт кэш компонента. Проверьте журнал агентов, дату изменения курса и согласуйте CACHE_TIME с периодичностью импорта.
Как убрать базовую валюту из блока?
В параметрах компонента выберите список валют без базовой. Показывать курс рубля к рублю смысла нет, обычно оставляют USD, EUR и при необходимости другие валюты.
Можно ли изменить внешний вид информера?
Да. Скопируйте шаблон компонента в /local/templates или шаблон сайта и правьте копию. Редактировать оригинал в /bitrix/components нельзя — обновление платформы затрёт изменения.
Где задаётся формат чисел и символ валюты?
В настройках каждой валюты в модуле currency: там указываются разделители, число знаков после запятой и формат вывода. Компонент информера берёт эти параметры автоматически.
Как часто обновлять кэш информера?
Курсы меняются раз в сутки, поэтому подойдёт CACHE_TIME от часа до суток. Главное, чтобы время кэша не превышало интервал обновления курсов.
Почему блок с курсами пустой?
Обычно в списке оставлена только базовая валюта либо у валют не заполнено поле Курс. Проверьте карточки валют и параметр выбора валют в компоненте.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.