Для массового изменения только одного свойства в инфоблоке "1C-Bitrix" можно воспользоваться следующим подходом.
1. Получить список элементов инфоблока:
CModule::IncludeModule("iblock"); $iblockId = 1; // ID инфоблока $arFilter = array("IBLOCK_ID" => $iblockId); $arSelect = array("ID"); $rsItems = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect); while ($arItem = $rsItems->Fetch()) { $itemId = $arItem["ID"]; // Ваш код изменения свойства для элемента с ID $itemId }
2. Внутри цикла можно использовать метод CIBlockElement::SetPropertyValuesEx для массового изменения свойства для каждого элемента:
$propertyId = 1; // ID свойства, которое нужно изменить $propertyValue = "New value"; // Значение, которое нужно установить CIBlockElement::SetPropertyValuesEx($itemId, $iblockId, array($propertyId => $propertyValue));
3. Помимо изменения значения свойства, можно также использовать метод CIBlockElement::Update для изменения других свойств элемента (если это требуется). Например:
CIBlockElement::Update($itemId, array("NAME" => "New name")); // Изменение названия элемента CIBlockElement::Update($itemId, array("ACTIVE" => "Y")); // Активация элемента
4. Если необходимо изменить разные значения свойства для разных элементов, можно внедрить дополнительную логику в цикл. Например, можно использовать условные операторы или получить значения свойства для каждого элемента из другого источника данных.
Обратите внимание, что код представлен для примера и может потребовать изменений в зависимости от вашей конкретной задачи и структуры инфоблока "1C-Bitrix".