Иногда возникает необходимость чтобы цены товаров в интернет-магазине в панели администратора указывались не в родной валюте, а в иностранной, но вывод на сайте и расчет происходил в национальной валюте (например: товар закупается за рубежом в евро, а продается на территории страны в рублях и для удобства в панели администратора цена указывается в той валюте, за которую он был закуплен).
Перед кастомизацией компонента необходимо создать курсы валют по которым будет происходить конвертация валют. Заходим: Панель Администратора -> Настройки -> Валюты -> Курсы валют и истанавливаем необходимый нам курс (см. ниже).

После остановки курса приступим к дописыванию кода. Для этого открываем логику нашего компонента (к примеру catalog.section), предварительно скопировав его в пользовательскую директория «имя сайта»/bitrix/components/«ваша директория»/«имя компонента» и дописываем туда необходимый код после строчки
наш код:
Сохраняем и любуемся в пользовательской части сайта отображением валюты в удобном для посетителей виде.
Перед кастомизацией компонента необходимо создать курсы валют по которым будет происходить конвертация валют. Заходим: Панель Администратора -> Настройки -> Валюты -> Курсы валют и истанавливаем необходимый нам курс (см. ниже).

После остановки курса приступим к дописыванию кода. Для этого открываем логику нашего компонента (к примеру catalog.section), предварительно скопировав его в пользовательскую директория «имя сайта»/bitrix/components/«ваша директория»/«имя компонента» и дописываем туда необходимый код после строчки
$arItem["PRICES"] = CIBlockPriceTools::GetItemPrices
наш код:
foreach($arItem["PRICES"] as $key1=>$PRICE)
{
foreach($PRICE as $key2=>$value)
{
if (!in_array($key2,Array('CAN_ACCESS','CAN_BUY','CURRENCY','ID','VALUE_NOVAT','VALUE_VAT',
'VATRATE_VALUE','DISCOUNT_VALUE_NOVAT','DISCOUNT_VALUE_VAT','DISCOUNT_VATRATE_VALUE',
'VALUE','DISCOUNT_VALUE')))
$ModPRICE[$key1][$key2]=CurrencyFormat(CCurrencyRates::ConvertCurrency(doubleval($value), $PRICE['CURRENCY'], "RUB"),"RUB");
elseif (in_array($key2,Array('VALUE_NOVAT','VALUE_VAT','VATRATE_VALUE','DISCOUNT_VALUE_NOVAT',
'DISCOUNT_VALUE_VAT','DISCOUNT_VATRATE_VALUE','VALUE','DISCOUNT_VALUE')))
$ModPRICE[$key1][$key2]=round(CCurrencyRates::ConvertCurrency(doubleval($value), $PRICE['CURRENCY'], "RUB"),-1);
elseif ($key2=='CURRENCY') $ModPRICE[$key1][$key2]="RUB";
else $ModPRICE[$key1][$key2]=$value;
}
$ModPRICE[$key1]["PRINT_VALUE"]=CurrencyFormat($ModPRICE[$key1]["VALUE"],"RUB");
$ModPRICE[$key1]["PRINT_DISCOUNT_VALUE"]=CurrencyFormat($ModPRICE[$key1]["DISCOUNT_VALUE"],"RUB");
}
$arItem["PRICES"]=$ModPRICE;
Сохраняем и любуемся в пользовательской части сайта отображением валюты в удобном для посетителей виде.