В общем, решил проблему так:
получаем шаблон ссылки на элемент инфоблока
[CODE]$infoblock = CIBlock::GetByID($arParams["IBLOCK_ID"])->GetNext();
$url_tpl = $infoblock["DETAIL_PAGE_URL"];
$url_tpl = preg_r eplace("/#SITE_DIR#/i", "", $url_tpl);[/CODE]далее (уже в цикле) берем элемент каталога
[CODE]$arFilter = Array("SECTION_ID"=>IntVal($arChild["ID"]));
$res = CIBlockElement::GetList(Array("SORT"), $arFilter, false, Array("nPageSize"=>1), Array("CODE"));
$e = $res->GetNextElement();
[/CODE]и регулярками обрабатываем шаблон ссылки (по сути делаем, то что должен делать сам битрикс)
[CODE]$pattern = array();
$replacement = array();
$pattern[0] = "/#SECTION_CODE#/";
$pattern[1] = "/#ELEMENT_CODE#/";
$replacement[0] = $arChild["CODE"]; // символьный код раздела
$replacement[1] = $e->fields["CODE"]; // символьный код элемента
$url = "#";
if ($e->fields["CODE"] != NULL){
$url = preg_r eplace($pattern, $replacement, $url_tpl);
}
[/CODE]