Делаю массовое добавление элементов в цикле, и если элемент уже есть, то нужно его обновить.
Есть код:
Код |
---|
<?
$el= new CIBlockElement;
$arFields = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => $IBLOCK_ID,
"NAME" => $NAME,
"CODE" => $CODE,
);
$ID = $el->Add($arFields);
echo $el->LAST_ERROR;
?>
|
Нужен ID элемента когда в LAST_ERROR ошибка "Элемент с таким символьным кодом уже существует"
Чтобы потом можно было обновить его функцией Update
Сделал так: функцией CIBlockElement::GetList выбрал элемент по названию и получил ID элемента
Код |
---|
if(strstr($el->LAST_ERROR,"Элемент с таким символьным кодом уже существует"))
{
$arSelect = Array("ID");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "NAME"=>$NAME, "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
$ob = $res->GetNextElement();
$ID = $ob->fields["ID"]; //получаем ID елемента который нужно обновить
$be = new CIBlockElement;
$res = $be->Update($ID, $arLoadProductArray);
} |
Думаю есть проще способ чтоб получить ID элемента, если такой уже есть.
Или я правильно делаю и так и должно быть?