- Модуль: 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;
}