Спасибо.
Но часть функционала на сайте завязана на вкладку "Торговый каталог для товаров".
Нашел обработчик отдельный, который должен устанавливать эти значения.
Проблема в другом до конца он периодически не доходит, ограничения по времени и памяти. за счет этого расхождение у товаров и предложений.
в обработчике используется CIBlockElement::GetList для сбора общего массива.
while ($row = $res->GetNextElement()) {
$fields = $row->GetFields();
$items[$fields['ID']] = [...];
$props = $row->GetProperties();
$items[$fields['ID']]['PROPERTIES'] = $props;
такая конструкция выполняется в чистом виде почти 30 секунд, а есть еще оферсы подобным образом собирающиеся плюс потом обработка самих массивов... в общем много всего накручено.
вопрос есть ли возможность ускорить сбор массива?
использования параметра селект не выход, так как нужны все свойства их коды и все ид вплоть до VALUE_ENUM_ID
если использовать
while ($fields = $res->Fetch()) { для полей, в этом случае можно и селект задействовать для них
и затем
$db_props = CIBlockElement::GetProperties(26, $fields['ID'], array("sort" => "asc"), Array());
while ($ob = $db_props->Fetch())
то половина идентификаторов в частности VALUE_ENUM_ID будет отсутствовать и получается их нужно формировать ручками - но время сокращается в 2-2,5 раза
есть ли третий вариант? может я что-то упускаю из вида