Валюта в магазине на 1С-Битрикс — это не просто символ ₽ рядом с ценой. Это основа расчётов: типы цен, скидки, корзина, заказы и обмен с 1С опираются на настройки модуля «Валюты». Разберём весь путь — от подключения модуля до формата вывода и автообновления курсов.
Модуль «Валюты» и его роль в магазине
За работу с деньгами в 1С-Битрикс отвечает отдельный модуль currency. Он не входит в редакцию «Старт», но присутствует во всех коммерческих сборках: «Малый бизнес», «Бизнес» и в «Битрикс24 в коробке». Проверить наличие можно в Настройки → Настройки продукта → Модули — если модуль «Валюты» установлен, вы увидите его в списке и получите доступ к разделу Магазин → Настройки → Валюты.
Модуль хранит справочник валют, их курсы к базовой валюте и правила форматирования. На эти данные опираются модули catalog (каталог и типы цен) и sale (корзина, заказы, скидки). Поэтому валюты стоит настроить до наполнения каталога и запуска обмена с 1С — иначе придётся пересчитывать цены задним числом.
Базовая валюта: почему её выбирают один раз
Базовая (основная) валюта — та, к курсу которой приводятся все остальные. По умолчанию в российских сборках это рубль (RUB) с курсом 1. Именно в базовой валюте система хранит и сравнивает суммы: считает скидки, применяет наценки, формирует отчёты.
Ключевое правило: базовую валюту меняют один раз, на старте проекта. Если в магазине уже есть товары с ценами и оформленные заказы, смена основной валюты приведёт к рассинхронизации — старые цены останутся в прежних числах, а система начнёт трактовать их в новой валюте. Поэтому определитесь заранее: в какой валюте вы ведёте учёт и обмениваетесь данными с 1С.
- Один рынок, рубли — оставляйте
RUBбазовой, остальные валюты не нужны. - Учёт в 1С в другой валюте — базовая на сайте должна совпадать с валютой управленческого учёта.
- Витрина в валюте, приём в рублях — базовая рублёвая, а показ в валюте решается типами цен или пересчётом.
Создание валюты: классификатор или вручную
Добавить новую валюту можно двумя способами. Первый и рекомендуемый — через классификатор: в разделе Магазин → Настройки → Валюты нажмите «Добавить валюту» и выберите её из встроенного справочника ISO 4217. Битрикс сам подставит трёхбуквенный код, название, символ и корректный формат для большинства мировых валют — USD, EUR, CNY и другие.
Второй способ — создать валюту вручную, задав код, курс и правило форматирования самостоятельно. Он нужен для нестандартных случаев: бонусные баллы, условные единицы, внутренние расчётные валюты. Код валюты — это идентификатор, менять его после появления цен нельзя.
| Параметр | Что задаёт |
|---|---|
| Код (ID) | Уникальный идентификатор, например USD |
| Курс | Сколько единиц базовой валюты стоит 1 единица этой |
| Номинал | За какое количество указан курс (обычно 1) |
| Сортировка | Порядок в списках и переключателях |
Курсы валют и автообновление от ЦБ РФ
Для каждой валюты, кроме базовой, задаётся курс — сколько рублей (или единиц базовой валюты) стоит одна единица с учётом номинала. Курсы можно вести вручную на вкладке «Курс», но для рабочего магазина это неудобно и чревато ошибками.
Правильное решение — автообновление через агент. В комплекте Битрикс есть агент, который тянет официальные курсы Центробанка РФ. Настраивается это в Магазин → Настройки → Валюты → Загрузка курсов: включаете источник (ЦБ РФ), выбираете валюты и периодичность. Технически загрузку выполняет агент CurrencyAgent, поэтому убедитесь, что на сайте настроен реальный cron, а не запуск агентов «на хитах».
Формат вывода цены
Формат определяет, как цена выглядит на витрине. Он задаётся на вкладке «Формат» карточки валюты и настраивается отдельно для каждого языка сайта. Здесь вы управляете позицией символа, разделителями и знаками после запятой.
- Шаблон — строка вида
# руб., где#заменяется на число. Символ можно ставить до или после суммы. - Разделитель дробной части — запятая для русской локали.
- Разделитель разрядов — пробел или неразрывный пробел для тысяч:
1 299. - Число знаков после запятой — обычно 2; для рублёвых цен часто ставят 0, чтобы убрать копейки.
- Скрывать нулевые копейки — опция «Убрать .0», чтобы
1 299,00превращалось в1 299.
Формат влияет только на отображение — в базе цена по-прежнему хранится числом. Для программного вывода используется функция CurrencyFormat($value, $currency), которая как раз применяет эти правила.
Валюта и типы цен
В интернет-магазине цена товара привязана не к товару напрямую, а к типу цены (розница, опт, партнёр). Каждая цена в типе имеет собственную валюту. Это значит, что один товар может иметь рублёвую розничную цену и, скажем, долларовую оптовую — система сама пересчитает их при выводе, если для группы покупателей задана другая валюта показа.
Настраиваются типы цен в Магазин → Настройки → Типы цен, а валюта конкретной цены выбирается уже в карточке товара, в блоке «Цены». При обмене с 1С валюта цены приходит из выгрузки — поэтому справочник валют на сайте должен содержать все коды, которые использует ваша учётная система, иначе обмен упадёт с ошибкой «неизвестная валюта».
Проверка и типичные ошибки
После настройки прогоните базовый чек-лист, чтобы валюты не «поехали» на боевом магазине.
- Откройте товар на витрине — цена выводится в нужной валюте и с правильным форматом (разделители, копейки).
- Добавьте товар в корзину и дойдите до оформления — суммы, скидки и итог считаются корректно.
- Проверьте, что агент загрузки курсов отработал: в списке валют актуальная дата обновления.
- Запустите тестовый обмен с 1С — коды валют из выгрузки совпадают со справочником на сайте.
Частые проблемы: смена базовой валюты на живом каталоге (ломает все цены); отсутствие cron, из-за чего курсы не обновляются; несовпадение кодов валют между сайтом и 1С; забытый формат для второго языка, из-за чего цена выводится «сырым» числом.
Итог
Настройка валют в 1С-Битрикс сводится к нескольким решениям, которые лучше принять один раз и на старте: выбрать базовую валюту, добавить нужные валюты через классификатор, включить автозагрузку курсов ЦБ РФ по cron и аккуратно задать формат вывода для каждого языка. Дальше валюты работают в связке с типами цен, корзиной и обменом с 1С — и любая неточность в справочнике всплывает именно там.
Если магазин мультивалютный, тесно интегрирован с 1С или требует пересчёта цен под разные группы покупателей, мы в B2Bsite настраиваем эту логику под ключ — от справочника валют и обмена до формата витрины и производительности каталога.
Частые вопросы
В какой редакции 1С-Битрикс доступен модуль «Валюты»?
Во всех коммерческих редакциях с функциями магазина — «Малый бизнес», «Бизнес» и старше. В бесплатной редакции «Старт» модуля currency нет.
Можно ли поменять базовую валюту после запуска магазина?
Технически да, но на практике это опасно. Уже введённые цены и заказы хранятся числами в старой базовой валюте и после смены будут трактоваться неверно. Базовую валюту выбирают один раз на старте.
Как включить автообновление курсов от ЦБ РФ?
В разделе «Магазин → Настройки → Валюты → Загрузка курсов» выберите источник ЦБ РФ, нужные валюты и периодичность. Для стабильной работы обязательно настройте системный cron, а не запуск агентов на хитах.
Чем отличается создание валюты через классификатор от ручного?
Классификатор берёт код, название, символ и формат из встроенного справочника ISO 4217 — быстро и без ошибок. Ручной способ нужен для нестандартных валют: бонусов, условных единиц, внутренних расчётных единиц.
Почему цена выводится без символа валюты или сырым числом?
Скорее всего не задан формат валюты для текущего языка сайта. Формат настраивается отдельно для каждого языка на вкладке «Формат» в карточке валюты.
Как убрать копейки в рублёвых ценах?
В формате валюты поставьте число знаков после запятой равным 0 либо включите опцию скрытия нулевой дробной части, чтобы 1 299,00 выводилось как 1 299.
Что делать, если обмен с 1С падает с ошибкой по валюте?
Проверьте, что все коды валют из выгрузки 1С заведены в справочнике валют на сайте. Несовпадение кода (например, отсутствие USD) прерывает импорт цен.
Нужно ли добавлять наценку к курсу ЦБ?
Если витрина в валюте, а оплата в рублях — да. Курс ЦБ справочный, и без буфера на волатильность и комиссию эквайринга магазин теряет на курсовой разнице.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.