Почему возникают неизвестно...
Записал сюда в блог для сохранения... Фасетный индекс нужно пересчитать по завершении. либо использовать PropertyIndex\Manager::updateElementIndex($iblockId, $elementId); после установки раздела
Записал сюда в блог для сохранения... Фасетный индекс нужно пересчитать по завершении. либо использовать PropertyIndex\Manager::updateElementIndex($iblockId, $elementId); после установки раздела
\Bitrix\Main\Loader::includeModule('iblock');
$iblockId = 2;
$r = CIBlockElement::getList(array(),array('IBLOCK_ID'=>$iblockId),false,false,array('ID','IBLOCK_ID','IBLOCK_SECTION_ID'));
while($dt = $r->fetch()){
$ELEMENT_ID = $dt['ID'];
$db_old_groups = CIBlockElement::GetElementGroups($ELEMENT_ID, true);
$ar_new_groups = array();
while($ar_group = $db_old_groups->Fetch()){
$ar_new_groups[] = $ar_group["ID"];
}
if(!empty($ar_new_groups) && !in_array($dt['IBLOCK_SECTION_ID'],$ar_new_groups)){
CIBlockElement::SetElementSection($ELEMENT_ID, $ar_new_groups);
CIBlockElement::RecalcSections($ELEMENT_ID,$ar_new_groups[0]);
}
}
|