Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Обнулить все свойства.

00 голосов
1
Можно ли обнулить все свойства (сделать из них 0, свойства типа число) инфоблока, не удаляя их?
спросил 29 Окт, 13 от Aleonora (140 баллов)

1 Ответ

00 голосов
примерно так:

Код

if(CModule::IncludeModule("iblock"))
{
    $nn = 0;
    
    // делаем выборку Элементов
    $arOrder = Array("ID"=>"ASC");                    // сортируем по возрастанию
    $arFilter = Array(">=ID" => $START_ID, "<=ID" => $END_ID, "IBLOCK_ID" => $IBLOCK_ID);    // указываем из какого Инфоблока брать данные и диапазон Элементов по ID
    $arSelectFields = Array();        // указываем что нам нужно
    $res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelectFields);

    while($ob = $res->GetNextElement())
    {
        $arPropsE = $ob->GetFields();
    
        $nn++;
    
        $ELEMENT_ID = $arPropsE["ID"];  // код элемента
        $PROPERTY_CODE = "CODE_PROP";  // код свойства
        $PROPERTY_VALUE = 0;  // значение свойства

    // Установим новое значение для данного свойства данного элемента
    $dbr = CIBlockElement::GetList(array(), array("=ID"=>$ELEMENT_ID), false, false, array("ID", "IBLOCK_ID"));
    if ($dbr_arr = $dbr->Fetch())
        {
        $IBLOCK_ID = $dbr_arr["IBLOCK_ID"];
        CIBlockElement::SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUE, $PROPERTY_CODE);
            echo " ".$nn.". Установили для элемента с ID: ".$ELEMENT_ID." - ЗНАЧЕНИЕ свойства CODE_PROP: ".$PROPERTY_VALUE."<br>";
        }
    
    }    
    
        echo "<br><br>";
    
}    // закрывающая скобка if(CModule::IncludeModule("iblock"))
ответил 28 Ноя, 13 от EDKA (980 баллов)