• Модуль: currency
  • Путь к файлу: ~/bitrix/modules/currency/lib/currencymanager.php
  • Класс: BitrixCurrencyCurrencyManager
  • Вызов: CurrencyManager::updateBaseRates
static function updateBaseRates($updateCurrency = '')
{
	$currency = static::getBaseCurrency();
	if ($currency === '')
		return;

	$currencyIterator = CurrencyTable::getList([
		'select' => [
			'CURRENCY',
			'CURRENT_BASE_RATE',
		],
		'filter' => ($updateCurrency == '' ? [] : ['=CURRENCY' => $updateCurrency])
	]);
	while ($existCurrency = $currencyIterator->fetch())
	{
		$baseRate = ($existCurrency['CURRENCY'] != $currency
			? CCurrencyRates::getConvertFactorEx($existCurrency['CURRENCY'], $currency)
			: 1
		);
		$updateResult = CurrencyTable::update($existCurrency['CURRENCY'], array('CURRENT_BASE_RATE' => $baseRate));
		if ($updateResult->isSuccess())
		{
			$event = new MainEvent(
				'currency',
				self::EVENT_ON_AFTER_UPDATE_BASE_RATE,
				[
					'OLD_BASE_RATE' => (float)$existCurrency['CURRENT_BASE_RATE'],
					'CURRENT_BASE_RATE' => $baseRate,
					'BASE_CURRENCY' => $currency,
					'CURRENCY' => $existCurrency['CURRENCY'],
				]
			);
			$event->send();
		}
		unset($updateResult);
		unset($baseRate);
	}
	unset($existCurrency, $currencyIterator);
}