Берем код из первого поста и модернизируем код
вместо этого:
добавим это
Работает если создано свойство, тип "список" и выгружаемые значения тоже уже созданно.
Для меня этого достаточно.
вместо этого:
Код |
---|
//если свойство с таким названием уже было, то заполняем его значением из CML2_ATTRIBUTES else { CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, array($ar_props['CODE'] => $VALUE)); } |
добавим это
Код |
---|
//если свойство с таким названием уже было, то заполняем его значением из CML2_ATTRIBUTES else { if ($ar_props["PROPERTY_TYPE"] == "L") { $property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>$IBLOCK_ID, "VALUE"=>$VALUE)); $enum_fields = $property_enums->GetNext(); if($enum_fields) { CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, array($ar_props['CODE'] => $enum_fields["ID"])); } } else CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, array($ar_props['CODE'] => $VALUE)); } |
Работает если создано свойство, тип "список" и выгружаемые значения тоже уже созданно.
Для меня этого достаточно.