• Модуль: currency
  • Путь к файлу: ~/bitrix/modules/currency/lib/currencymanager.php
  • Класс: BitrixCurrencyCurrencyManager
  • Вызов: CurrencyManager::getBaseCurrency
static function getBaseCurrency(): ?string
{
	if (self::$baseCurrency === null)
	{
		/** @var BitrixMainDataManagedCache $managedCache */
		$skipCache = (defined('CURRENCY_SKIP_CACHE') && CURRENCY_SKIP_CACHE);
		$currencyFound = false;
		$currencyFromCache = false;
		if (!$skipCache)
		{
			$cacheTime = (int)(defined('CURRENCY_CACHE_TIME') ? CURRENCY_CACHE_TIME : CURRENCY_CACHE_DEFAULT_TIME);
			$managedCache = Application::getInstance()->getManagedCache();
			$currencyFromCache = $managedCache->read($cacheTime, self::CACHE_BASE_CURRENCY_ID, CurrencyTable::getTableName());
			if ($currencyFromCache)
			{
				$currencyFound = true;
				self::$baseCurrency = (string)$managedCache->get(self::CACHE_BASE_CURRENCY_ID);
			}
		}
		if ($skipCache || !$currencyFound)
		{
			$currencyIterator = CurrencyTable::getList([
				'select' => [
					'CURRENCY',
				],
				'filter' => [
					'=BASE' => 'Y',
					'=AMOUNT' => 1,
				],
			]);
			if ($currency = $currencyIterator->fetch())
			{
				$currencyFound = true;
				self::$baseCurrency = $currency['CURRENCY'];
			}
			unset($currency, $currencyIterator);
		}
		if (!$skipCache && $currencyFound && !$currencyFromCache)
		{
			$managedCache->set(self::CACHE_BASE_CURRENCY_ID, self::$baseCurrency);
		}
	}

	return self::$baseCurrency;
}