
В Битрикс каждая товарная позиция хранит информацию о валюте в свойствах элемента инфоблока или в настройках торгового каталога. Для стандартного модуля «Каталог» используется поле CURRENCY, где указывается трехбуквенный код валюты, например, RUB, USD или EUR.
Если подключен модуль Интернет-магазин, валюта привязывается к цене товара через объект CCatalogProduct. Методы GetList и GetByID возвращают массив с ключом CURRENCY, что позволяет программно определить, в какой валюте выставлена цена.
Для визуальной проверки валюты можно использовать административную панель: откройте карточку товара, перейдите в раздел «Цены» и убедитесь, что поле «Валюта» заполнено корректно. Если используются торговые предложения, валюта наследуется от основного товара, но может быть переопределена на уровне SKU.
При интеграции с внешними API важно учитывать, что Битрикс хранит валюту в виде кода, а не символа. Для конвертации цен необходимо использовать модуль Currency и метод CCurrencyRates::ConvertCurrency, указывая исходную и целевую валюту.
Проверка валюты через карточку товара
В Битрикс валюта товара определяется непосредственно в карточке товара. Для проверки откройте раздел Каталог → Товары и выберите интересующий элемент.
В карточке товара перейдите на вкладку Цены. Здесь отображается список всех типов цен и соответствующих валют. Валюта указывается в колонке Валюта рядом с суммой.
Если используются несколько типов цен, убедитесь, что проверяете именно активный тип, который применяется при продаже. В настройках каждой цены можно увидеть флажок Использовать по умолчанию, который определяет, какая валюта будет использоваться при оформлении заказа.
Для товаров с торговыми предложениями откройте вкладку Торговые предложения, выберите конкретное предложение и проверьте колонку Валюта в таблице цен. Валюта может отличаться от основной карточки товара.
Если валюта не указана или отображается неверно, проверьте настройки валют в Настройки → Валюты и сопоставление типов цен с валютами. Любые изменения сохраняются через кнопку Сохранить в карточке товара.
Использование этой процедуры позволяет точно определить, какая валюта применяется для конкретного товара или предложения и избежать ошибок при оформлении заказов и формировании отчетности.
Использование списка товаров для массовой проверки валют

Для проверки валюты нескольких товаров одновременно в Битрикс рекомендуется использовать экспорт списка товаров через модуль Каталог или Инфоблоки. Сначала сформируйте выборку с помощью фильтров: категория, активность и наличие на складе.
Экспорт производится в формате CSV или Excel. В выгрузке обязательно включите поля ID товара, Название, Цена и Валюта. Это позволит быстро определить несоответствия и автоматически обновить данные через массовое редактирование.
Для массовой проверки валют используйте инструмент «Изменить значения» в разделе Список товаров. Отметьте нужные позиции, выберите поле Валюта и задайте корректное значение. Система поддерживает фильтрацию по текущей валюте, что ускоряет проверку только тех товаров, где она отличается от основной.
Если необходимо контролировать валюту в реальном времени, создайте отчет через BI или CRM с группировкой по валюте и суммированием по категориям. Это позволит выявлять ошибки до внесения изменений в базу и формировать рекомендации для бухгалтерии или отдела закупок.
Регулярная проверка списка товаров и корректировка валют через массовые операции уменьшает риск некорректного отображения цен на сайте и обеспечивает точность отчетности по валютам.
Определение валюты через API Битрикс

Для получения валюты товара через API Битрикс используется метод crm.product.get или catalog.product.get в зависимости от структуры проекта. В ответе API поле PRICE содержит массив с ценами, где ключ CURRENCY указывает код валюты.
Пример запроса через REST API:
GET /rest/crm.product.get.json?ID=123
В ответе можно найти структуру:
| Поле | Описание |
|---|---|
| ID | Идентификатор товара |
| NAME | Название товара |
| PRICE | Массив с ценами, включающий поля: PRICE и CURRENCY |
Для получения валюты конкретной цены используется следующий пример обработки ответа на PHP:
$response = CRest::call('crm.product.get', ['ID' => 123]);
$currency = $response['result']['PRICE']['CURRENCY'];
Если товар имеет несколько цен, API возвращает массив PRICES. Для определения валюты каждой цены требуется перебрать массив и извлечь значение CURRENCY для каждой позиции.
Важно учитывать настройки каталога: если включен мультивалютный режим, валюты могут быть заданы на уровне ценовых типов, а не только товара. В этом случае рекомендуется использовать метод catalog.product.get с параметром PRICE_TYPE для точного определения валюты для конкретной цены.
Настройка отображения валюты в каталоге
Для корректного отображения валюты в каталоге Битрикс необходимо убедиться, что модуль «Валюты» установлен и активирован. Проверка производится через раздел «Настройки → Настройки продукта → Валюты».
Основные шаги настройки отображения валюты:
-
Перейдите в «Каталог → Настройки → Настройки цен». В блоке «Типы цен» укажите, для каких типов товаров требуется отображение конкретной валюты.
-
Для каждого типа цены выберите валюту из выпадающего списка. В Битрикс поддерживаются стандартные ISO-коды (USD, EUR, RUB, UAH и др.).
-
Установите формат отображения: знак валюты до или после суммы, разделители тысяч и десятичных знаков. Настройка доступна в «Настройки → Настройки продукта → Валюты → Формат валюты».
-
Включите автоматическое отображение цены с учетом валютного коэффициента, если в каталоге присутствуют товары в разных валютах. Это делается через «Настройки → Настройки продукта → Валюты → Курс валют».
-
Используйте параметр
PRICE_CODEпри подключении компонентаbitrix:catalog.sectionилиbitrix:catalog.elementдля указания типа цены. -
В шаблоне компонента применяйте функцию
CurrencyFormatдля форматирования числового значения с нужным символом валюты и разделителями.
Дополнительно рекомендуется проверять отображение цен на страницах фильтров и корзины, чтобы символ валюты и формат совпадали с настройками каталога. Это обеспечит единообразие на всех страницах сайта.
После внесения изменений очистите кеш через «Настройки → Управление кешированием» или вызовом функции BXClearCache(true), чтобы корректно обновились все элементы каталога.
Использование фильтров и сортировки по валюте

Сортировка товаров по валюте осуществляется через параметр ORDER компонента: $arSort = ["CURRENCY" => "ASC"];. Использование ASC или DESC изменяет порядок от минимальной к максимальной валюте и обратно, что удобно для анализа цен в разных валютах.
Для комбинированного применения фильтра и сортировки рекомендуется формировать единый массив: $arParams["FILTER"] = ["CURRENCY" => "EUR"]; и $arParams["SORT"] = ["CURRENCY" => "DESC"];. Это ускоряет выборку и уменьшает нагрузку на базу данных.
При работе с инфоблоками важно учитывать, что валюта может храниться как в свойстве типа «Список» или «Строка». В случае свойства «Список» используйте код значения валюты, а не текст. Для свойства «Строка» фильтрация выполняется по точному совпадению.
Для визуального представления фильтров используйте компонент bitrix:catalog.smart.filter с параметром FILTER_NAME, который ссылается на массив фильтра: $arFilter. Можно задать тип отображения «список» или «радио», чтобы пользователю было удобно выбирать валюту.
Если требуется динамическая сортировка, передавайте параметр валюты через GET-запрос, например: ?CURRENCY=USD&SORT=CURRENCY_DESC. Компонент автоматически применит фильтр и сортировку к выборке товаров без дополнительных изменений кода.
Для массового обновления валюты и корректного отображения сортировки рекомендуется использовать агент или cron-задачу, которая синхронизирует значения свойства CURRENCY с актуальными курсами, что предотвращает ошибки при фильтрации и сравнении цен.
Проверка валюты при создании торгового предложения

В Битрикс каждая торговая единица привязана к валюте, установленной в модуле «Настройки валют». При создании торгового предложения необходимо убедиться, что поле CURRENCY заполнено корректно. Ошибки в этом поле приводят к некорректному отображению цены и сбоям при расчете скидок и налогов.
Для проверки валюты используйте метод CIBlockElement::GetByID() с последующей проверкой значения PROPERTY_CURRENCY или PRICE_CURRENCY в массиве данных. Например, если цена должна быть в рублях, значение должно строго соответствовать RUB.
При массовом создании торговых предложений через CSV или API, добавляйте проверку соответствия валюты перед сохранением. Если валюта не совпадает с валютой основного товара, скрипт должен выдавать ошибку и не сохранять предложение. Это предотвращает несоответствие цен и некорректный учет в 1С.
Для автоматической проверки можно подключить событие OnBeforeIBlockElementAdd, где производится валидация валюты. В случае несоответствия необходимо прерывать добавление и возвращать текст ошибки, указывающий допустимые валюты.
При создании предложений через интерфейс администратора убедитесь, что поле Валюта соответствует валюте основного товара. В настройках торгового каталога можно ограничить выбор валюты только активными значениями из справочника, чтобы исключить ручные ошибки.
Вопрос-ответ:
Как узнать валюту конкретного товара в Битрикс?
Чтобы определить валюту товара, откройте карточку товара в административной панели. В блоке «Цены» отображается список цен, каждая из которых сопровождается обозначением валюты. Если у товара несколько типов цен, проверьте все записи, чтобы точно узнать, в какой валюте выставлена цена для нужного типа.
Можно ли изменить валюту товара в Битрикс после его добавления?
Да, изменить валюту возможно через административную панель. Для этого откройте карточку товара, перейдите в раздел «Цены», выберите нужный тип цены и укажите другую валюту из списка доступных. После сохранения изменений цена автоматически пересчитается в соответствии с выбранной валютой, если подключена система конвертации.
Как проверить, в какой валюте отображаются цены на сайте для посетителей?
На публичной части сайта валюту можно проверить визуально в карточке товара или в каталоге. Обычно рядом с суммой указывается символ валюты (₽, $, € и т.д.). Если используется модуль мультивалютности, отображаемая валюта может зависеть от выбранного пользователем региона или настроек магазина, поэтому важно убедиться, что сайт корректно выводит текущую валюту для конкретного посетителя.
Что делать, если в Битрикс не отображается валюта у товара?
Если валюта не видна, проверьте настройки модуля «Цены» и убедитесь, что у товара есть хотя бы одна активная цена с указанной валютой. Также стоит проверить права доступа пользователя: иногда администратору видна валюта, а обычному менеджеру или посетителю — нет. Если проблема сохраняется, проверьте корректность подключения модуля валют и актуальность курса, если используется автоматический пересчет цен.
