Делаю массовое добавление элементов в цикле, и если элемент уже есть, то нужно его обновить.
Есть код:
Нужен ID элемента когда в LAST_ERROR ошибка "Элемент с таким символьным кодом уже существует"
Чтобы потом можно было обновить его функцией Update
Сделал так: функцией CIBlockElement::GetList выбрал элемент по названию и получил ID элемента
Думаю есть проще способ чтоб получить ID элемента, если такой уже есть.
Или я правильно делаю и так и должно быть?
Есть код:
| Код |
|---|
<? $el= new CIBlockElement; $arFields = Array( "ACTIVE" => "Y", "IBLOCK_ID" => $IBLOCK_ID, "NAME" => $NAME, "CODE" => $CODE, ); $ID = $el->Add($arFields); echo $el->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 элемента, если такой уже есть.
Или я правильно делаю и так и должно быть?