Берем код из первого поста и модернизируем код
вместо этого:
| Код |
|---|
//если свойство с таким названием уже было, то заполняем его значением из 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));
}
|
Работает если создано свойство, тип "список" и выгружаемые значения тоже уже созданно.
Для меня этого достаточно.