Чтобы заполнить это поле для ваших тысяч товаров сохраните код ниже в файл, поменяйте в нем номер инфоблока и код поля для поиска по ID на ваши, загрузите файл на ваш сайт и откройте в браузере.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<? 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 на код вашего поля.
|
1 2 3 4 5 6 7 8 9 10 11 |
/* добавляем в поисковый индекс 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"]) ); } } |