Загружаю товары и торговые предложения(а так же категории + провожу у нужных обновление, активацию, деактивацию как у категорий так и у элементов) через API
Перед запуском этим методов есть код на getList который получает в частности символьные коды, чтобы предварительно для новых товаров сгенерировать их причем уникальные. При очередной загрузке - ошибка: товар с таким символьным кодом уже существует.
Стал разбираться, оказалось что getList не вернул элементов. Попробовал создать в админке новый товар - getList только его и вернул, хотя в инфоблоке более 2000 элементов.
В коде ошибиться не мог, так как именно его я копировал многократно и он точно рабочий. Код упрощенно такой:
$arSelect = array("*");
$arFilter = Array("IBLOCK_ID"=>1);// ID можно не указывать тогда получим все элементы
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);// В первом массиве передаются сортировки
while (($ob = $res->GetNextElement()) !== false) {
$fields = $ob->GetFields();
echo "<p>";
var_dump($fields);// выводим нужные поля
echo "</p>\n";
}
echo "скрипт выполнился";
скопировал на другой интернет магазин, где товары тоже находятся в инфоблоке=1 - код рабочий.
Получается что после каких то методов(обновление, добавление элементов или секций по API Bitrix)возможно нужно выполнить какие то действия для обновления информации в инфоблоке.
Хотелось бы узнать какие именно? И вообще после каких методов такое может происходить?
Перед запуском этим методов есть код на getList который получает в частности символьные коды, чтобы предварительно для новых товаров сгенерировать их причем уникальные. При очередной загрузке - ошибка: товар с таким символьным кодом уже существует.
Стал разбираться, оказалось что getList не вернул элементов. Попробовал создать в админке новый товар - getList только его и вернул, хотя в инфоблоке более 2000 элементов.
В коде ошибиться не мог, так как именно его я копировал многократно и он точно рабочий. Код упрощенно такой:
$arSelect = array("*");
$arFilter = Array("IBLOCK_ID"=>1);// ID можно не указывать тогда получим все элементы
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);// В первом массиве передаются сортировки
while (($ob = $res->GetNextElement()) !== false) {
$fields = $ob->GetFields();
echo "<p>";
var_dump($fields);// выводим нужные поля
echo "</p>\n";
}
echo "скрипт выполнился";
скопировал на другой интернет магазин, где товары тоже находятся в инфоблоке=1 - код рабочий.
Получается что после каких то методов(обновление, добавление элементов или секций по API Bitrix)возможно нужно выполнить какие то действия для обновления информации в инфоблоке.
Хотелось бы узнать какие именно? И вообще после каких методов такое может происходить?