Код |
---|
if(CModule::IncludeModule("iblock")){ $id_catalog = 8; $prop = []; $order = ['ID' => 'ASC']; $filter = ['IBLOCK_ID' => $id_catalog]; $rows = CIBlockElement::GetList($order, $filter); while ($row = $rows->fetch()) { $row['PROPERTIES'] = []; $prop[$row['ID']] =& $row; unset($row); } //Получаю массив со всеми свойствами всех элементов CIBlockElement::GetPropertyValuesArray($prop, $filter['IBLOCK_ID'], $filter); unset($rows, $filter, $order); //перезаписываю в массив $arCodeValue нужное свойство $arCodeValue = []; foreach ($prop as $key => $value) { if(!empty($value)){ while(strstr($value['PROPERTIES']['VOLUME']['VALUE'], ',')){ $value['PROPERTIES']['VOLUME']['VALUE'] = str_replace(',','.',$value['PROPERTIES']['VOLUME']['VALUE']); $arCodeValue[$key] = [$value['PROPERTIES']['VOLUME']['ID'] => $value['PROPERTIES']['VOLUME']['VALUE']]; } }else echo 'empty'; } //До этого всё выполняется быстро, а последний цикл как раз даёт много запросов бд //Записываю массив $arCodeValue при помощи SetPropertyValuesEx //Сохраняю при помощи Update foreach ($prop as $key => $value) { if(!empty($value) && strstr($value['PROPERTIES']['VOLUME']['VALUE'], ',')){ CIBlockElement::SetPropertyValuesEx($key, $id_catalog, $arCodeValue[$key]); $elthis = new CIBlockElement; $elthis->Update( $key, [ 'WF_STATUS_ID' => 1, 'ACTIVE' => 'Y' ], true ); echo $key; echo ' '; unset($elthis); } } } |
Массовая перезапись свойства элемента в каталоге
18.11.2022 22:16:44
Не сильно вчитался в скрипт, но не очень понял зачем:
CIBlockElement::SetPropertyValuesEx и без этого должно сохранить значение. Если совсем много, сделайте скрипт пошаговым. Пример тут, там не очень феншуйно и немного говнокодства, но если единоразово нужен, вполне сгодится. https://bazarow.ru/forum/forum11/641-poshagovaya-obrabotka-bolshogo-kolichestva-elementov-infobloka_-bystro-skript |
|||
|
20.11.2022 15:44:58
|
||||
|
||||
Блог-note: заметки разработчика
Если пользователь авторизован то... API Битрикс
Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, некую информацию, доступную только...
Вывести все товары, с постраничной навигацией, из всех разделов инфоблока
По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары вс...
Установка поиска Sphinx на Ubuntu 22.04 для 1С-Битрикс
Задача: установить и сконфигурировать поиск Sphinx под управлением Ubuntu 22.04 и панели управления HestiaCP для использ...
Умный фильтр во всплывающей панели на мобильных.
Шаблон умного фильтра в Битриксе достаточно сложный, с точки зрения верстки и не очень красиво отображается на мобильных...
Вывести товары в каталоге перебрав их по свойству и разделив на секции.
Задача: В каталоге, у товаров, есть свойство типа список с названием "Тип изделия" и кодом "TIP_IZDELIYA&...
Почтовое событие на создание нового элемента инфоблока, через API
Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблока простыми пользователям.Будет...
Вывести минимальную и максимальную цену в разделе каталога Битрикс.
Что бы вывести минимальную и максимальную стоимость товаров, из каталога 1С-Битрикс, достаточно получить все товары мето...
Работа с пользователями через API D7 1С-Битрикс
Заметка написана на основе старого черновика, и все описанное было проверено на чистой установке 1С-Битрикс. Примеры раб...
Memcached на сайте под управлением битрикс, при использовании Веб Окружения Битрикс
Если вам важна скорость отдачи сайта, а у вашего сервера медленный диск для использования кеша на файлах. Можно кеширова...