Поиск по ID элемента из публичной части сайта

Поиск товара по ID
Поиск в публичной части сайта под управлением Битрикс не заложен в самой CMS. Поэтому, если клиент очень хочет получить такой поиск, то нужно немного покодить.
Для начала проведем подготовительные работы. Надо создать в инфоблоке нужного каталога пользовательское свойство, в котором мы будем хранить дубль ID товара.
[spoiler] Назовем это поле, например, SEARCH_ID. Теперь в настройках поля отмечаем, что оно участвует в поиске и сохраняем изменения.
Подготовка закончена, теперь надо заполнить поле для поиска по ID у уже созданных товаров, и автоматизировать его заполнение у вновь создаваемых.
Чтобы заполнить это поле для ваших тысяч товаров сохраните код ниже в файл, поменяйте в нем номер инфоблока и код поля для поиска по ID на ваши, загрузите файл на ваш сайт и откройте в браузере.
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
 
set_time_limit(0); //убираем ограничение на время выполнения скрипта
 
CModule::IncludeModule("iblock");
CModule::IncludeModule("sale");
CModule::IncludeModule("catalog");
 
//введите сюда ID вашего инфоблока каталога
$IBLOCK_ID = 5;
//а сюда символьный код вашего поля для поиска по ID 
$SEARCH_FIELD_NAME = 'SEARCH_ID';
$els = CIBlockElement::GetList(
    array("SORT"=>"ASC"),
    array("IBLOCK_ID" => $IBLOCK_ID),
    false,
    false,
    array('ID','IBLOCK_ID')
);
 
$cnt=0;
 
while ($s = $els->Fetch()) {
     
    $ok = CIBlockElement::SetPropertyValuesEx(
        $s["ID"], 
        $s['IBLOCK_ID'], 
        array('SEARCH_ID' => $s["ID"])
    );
    if ($ok) {
        $cnt++;
    }
}
echo $cnt;
 
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");

?>
Теперь в файл /bitrix/php_interface/init.php добавьте следующий код. При необходимости замените SEARCH_ID на код вашего поля.
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "searchid";
function searchid(&$arFields){
    if($arFields["ID"]>0){
        $upd = CIBlockElement::SetPropertyValuesEx(
            $arFields["ID"], 
            $arFields['IBLOCK_ID'], 
            array('SEARCH_ID' => $arFields["ID"])
        );
    }
}
 
Теперь вам надо в админке битрикса сделать полную переиндексацию, и поиск по ID должен начать работать у вас на сайте.