Часто при создании сайта интернет-магазина автозапчастей или других товаров, требуется сделать поиск по какому либо свойству инфоблока. Вот собственно небольшой код который после переиндексации элементов инфоблока (товаров) позволяет искать по свойству инфоблока.
// регистрируем обработчик в /bitrix/php_interface/init.php AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler"); // создаем обработчик события "BeforeIndex" function BeforeIndexHandler($arFields) { if(!CModule::IncludeModule("iblock")) // подключаем модуль return $arFields; if($arFields["MODULE_ID"] == "iblock") { $db_props = CIBlockElement::GetProperty( // Запросим свойства индексируемого элемента $arFields["PARAM2"], // IBLOCK_ID индексируемого свойства $arFields["ITEM_ID"], // ID индексируемого свойства array("sort" => "asc"), // Сортировка (можно упустить) Array("CODE"=>"ВАШЕ СВОЙСТВО")); // CODE свойства, по которому нужно осуществлять поиск if($ar_props = $db_props->Fetch()) $arFields["TITLE"] .= " ".$ar_props["VALUE"]; // Добавим свойство в конец заголовка индексируемого элемента } return $arFields; // вернём изменения }