• Модуль: currency
  • Путь к файлу: ~/bitrix/modules/currency/lib/currencymanager.php
  • Класс: BitrixCurrencyCurrencyManager
  • Вызов: CurrencyManager::getInstalledCurrencies
static function getInstalledCurrencies(): array
{
	$installedCurrencies = Option::get('currency', 'installed_currencies');
	if ($installedCurrencies === '')
	{
		$bitrix24 = MainModuleManager::isModuleInstalled('bitrix24');

		$languageID = '';
		$siteIterator = MainSiteTable::getList([
			'select' => [
				'LID',
				'LANGUAGE_ID',
			],
			'filter' => [
				'=DEF' => 'Y',
				'=ACTIVE' => 'Y',
			],
		]);
		$site = $siteIterator->fetch();
		if (!empty($site))
		{
			$languageID = (string)$site['LANGUAGE_ID'];
		}
		unset($site, $siteIterator);

		if ($languageID === '')
		{
			$languageID = 'en';
		}

		if (!$bitrix24 && $languageID === 'ru')
		{
			$languageList = [];
			$languageIterator = LanguageTable::getList([
				'select' => [
					'ID',
				],
				'filter' => [
					'@ID' => [
						'kz',
						'by',
						'ua'
					],
					'=ACTIVE' => 'Y',
				],
			]);
			while ($language = $languageIterator->fetch())
			{
				$languageList[$language['ID']] = $language['ID'];
			}
			unset($language, $languageIterator);
			if (isset($languageList['kz']))
			{
				$languageID = 'kz';
			}
			elseif (isset($languageList['by']))
			{
				$languageID = 'by';
			}
			elseif (isset($languageList['ua']))
			{
				$languageID = 'ua';
			}
			unset($languageList);
		}
		unset($bitrix24);

		switch ($languageID)
		{
			case 'br':
				$currencyList = [
					'BYN',
					'RUB',
					'USD',
					'EUR',
				];
				break;
			case 'ua':
				$currencyList = [
					'UAH',
					'RUB',
					'USD',
					'EUR',
				];
				break;
			case 'kz':
				$currencyList = [
					'KZT',
					'RUB',
					'USD',
					'EUR',
				];
				break;
			case 'ru':
				$currencyList = [
					'RUB',
					'USD',
					'EUR',
					'UAH',
					'BYN',
				];
				break;
			case 'de':
			case 'en':
			case 'tc':
			case 'sc':
			case 'la':
			default:
				$currencyList = [
					'USD',
					'EUR',
					'CNY',
					'BRL',
					'INR',
				];
				break;
		}

		Option::set('currency', 'installed_currencies', implode(',', $currencyList), '');

		return $currencyList;
	}
	else
	{
		return explode(',', $installedCurrencies);
	}
}