Получение переменных комплексного компонента, вне комплексного компонента - sidigi/bitrix-info GitHub Wiki
<?php
use \Bitrix\Main\Loader;
$arVariables = [];
$engine = new CComponentEngine(new \CBitrixComponent());
if (Loader::includeModule('iblock'))
{
$engine->addGreedyPart("#SECTION_CODE_PATH#");
$engine->addGreedyPart("#SMART_FILTER_PATH#");
$engine->setResolveCallback(array("CIBlockFindTools", "resolveComponentEngine"));
}
$sefFolder = '/catalog/';
/*keys is a pages name*/
$arUrlTemplates = ['section' => "#SECTION_CODE#/", 'element' => '#SECTION_CODE#/#ELEMENT_CODE#/'];
$componentPage = $engine->guessComponentPath(
$sefFolder,
$arUrlTemplates,
$arVariables // here result of guessComponentPath method
);
//$this->IncludeComponentTemplate($componentPage); - $componentPage is page, that includes in complex component