• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblock.php
  • Класс: CAllIBlock
  • Вызов: CAllIBlock::getProductIblockData
static function getProductIblockData(int $iblockId): ?array
{
	if ($iblockId <= 0)
	{
		return null;
	}
	if (self::$catalogIncluded === null)
	{
		self::$catalogIncluded = Loader::includeModule('catalog');
	}
	if (!self::$catalogIncluded)
	{
		return null;
	}

	if (!isset(self::$productIblockDataCache[$iblockId]))
	{
		$iblock = CCatalogSku::GetInfoByOfferIBlock($iblockId);
		if (is_array($iblock))
		{
			$productIblock = CIBlock::GetArrayByID($iblock['PRODUCT_IBLOCK_ID']);
			if (is_array($productIblock))
			{
				$iblock['PRODUCT_IBLOCK'] = [
					'ID' => (int)$productIblock['ID'],
					'IBLOCK_TYPE_ID' => $productIblock['IBLOCK_TYPE_ID'],
					'CODE' => (string)$productIblock['CODE'],
					'XML_ID' => (string)$productIblock['XML_ID'],
					'DETAIL_PAGE_URL' => (string)$productIblock['DETAIL_PAGE_URL'],
				];
			}
			else
			{
				$iblock = false;
			}
		}
		self::$productIblockDataCache[$iblockId] = $iblock;
	}

	return (
		!empty(self::$productIblockDataCache[$iblockId])
			? self::$productIblockDataCache[$iblockId]
			: null
	);
}