Разработка сайтов

Переставляем значение свойства типа список Битрикс

// Переставляем значение свойства типа список на добавленное из 1с (при выгрузке продублировалось значение Да и Y)
// товары 1с
$arSelect = Array("ID", "IBLOCK_ID", "NAME");
$arFilter = Array("IBLOCK_ID"=>13);
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
// В свойствах типа список нужно у свойств со значение Y или Да, поменять значение на такое же, только с длинным VALUE_XML_ID
foreach ($arProps as $propKey => $arProp) {
if($arProp['PROPERTY_TYPE'] == "L" && !empty($arProp['VALUE']) && $arProp['VALUE'] == 'Y' && strlen($arProp['VALUE_XML_ID']) < 10) {
// pre($propKey . ' - ' . $arProp['VALUE'] . ' - ' . $arProp['VALUE_XML_ID']);
$property_enums = CIBlockPropertyEnum::GetList(Array("DEF" => "DESC", "SORT" => "ASC"), Array("IBLOCK_ID" => $arFields["IBLOCK_ID"], "CODE" => $propKey));
while($enum_fields = $property_enums->GetNext()) {
if(strlen($enum_fields['XML_ID']) > 6)
{
$arPropertyArchive = Array(
$propKey => $enum_fields["ID"],
);
CIBlockElement::SetPropertyValuesEx($arFields['ID'], false, $arPropertyArchive);
}

}
}
elseif(strlen($arProp['VALUE_XML_ID']) > 10 && $arProp['VALUE'] == 'Да') {
//Для проверки после отработки скрипта
//pre($arFields['NAME']);
//pre($propKey . ' - ' . $arProp['VALUE'] . ' - ' . $arProp['VALUE_XML_ID']);
}
}
}
?>
Подписка на блог Подпишись на новые материалы от US STUDIO и вы не пропустите интересные статьи от нашей компании