Добавление элементов в инфоблок Bitrix

143
26 октября 2018, 12:30

Никак не могу понять как указывать элемент списка у элемента.
Есть такой код добавления нового элемента.
Св-во City - список. Имеет 3 позиции (Москва, Томск, Курск)
При отработке скрипта, все записывается кроме City (в админке пишет "Не установленно")

$el = new CIBlockElement;
        $PROP = array();
        $PROP['ID'] = 7;  
        $PROP['NAME'] = 'ALEXa';        
        $PROP['DateBirthDay']='12.21.1111';
        $PROP['Phone'] = '1234';
        //$PROP['City'] = 1;
        $PROP['City'] = Array("VALUE" => 2 );
        global $USER;
        $arLoadProductArray = Array(
            "MODIFIED_BY"    => $USER->GetID(), 
            "IBLOCK_SECTION_ID" => false,          
            "IBLOCK_ID"      => intval($cc_name),
            "PROPERTY_VALUES"=> $PROP,
            "NAME"           => "Элемент",
            "ACTIVE"         => "Y"           // активен

        );
        if($PRODUCT_ID = $el->Add($arLoadProductArray))
            echo "New ID: ".$PRODUCT_ID;
        else
            echo "Error: ".$el->LAST_ERROR;
Answer 1

Для модификации пользовательских свойств элемента необходимо использовать функцию CIBlockElement::SetPropertyValuesEx(). В вашем случае ее нужно вызвать после успешного добавления элемента инфоблока, оставив в коде который добавляет элемент только поля инфоблока, т.е. убрать из добавления параметр "PROPERTY_VALUES".

READ ALSO
Что такое дискриптор $this-> в php?

Что такое дискриптор $this-> в php?

Что такое дискриптор $this-> в php? Объясните пожалуйста что он делает, где применяеться и какова его суть?

168
C++ error: ambiguous symbol. Compiler replacing '*' with '^' to continue parsing

C++ error: ambiguous symbol. Compiler replacing '*' with '^' to continue parsing

На решения данных ошибок ушло больше целого рабочего дняКак узнал из разных ресурсов, не можно миксовать managed и not-managed классы

183