bitrix: get id by code (получить id по символьному коду)
function getIdByCode($code,$iblock_id,$type){ if(CModule::IncludeModule("iblock")){ if($type=='IBLOCK_ELEMENT'){ $arFilter=array("IBLOCK_ID"=>$iblock_id,"CODE"=>$code); $res=CIBlockElement::GetList(array(),$arFilter,false,array("nPageSize"=>1),array('ID')); $element=$res->Fetch(); if($res->SelectedRowsCount()!=1) return '<p style="font-weight:bold;color:#ff0000">Элемент не найден</p>'; else return $element['ID']; } else if($type=='IBLOCK_SECTION'){ $res=CIBlockSection::GetList(array(),array('IBLOCK_ID'=>$iblock_id,'CODE'=>$code)); $section=$res->Fetch(); if($res->SelectedRowsCount()!=1) return '<p style="font-weight:bold;color:#ff0000">Раздел не найден</p>'; else return $section['ID']; } else{ return '<p style="font-weight:bold;color:#ff0000">Укажите тип</p>'; } } } $property_type_value=getIdByCode($_REQUEST['type'],42,'IBLOCK_SECTION');
В примере получаем ID раздела из инфоблока с ID 42, у которого символьные код — $_REQUEST[‘type’].
Источники:
http://kadomtsev.ru/bitriks-kak-poluchit-id-razdela-ili-elementa-infobloka-po-simvolnomu-kodu/
http://www.bxdev.ru/posts/iblocks/getIdByCode/