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

Перенос значений множественного свойства типа файл при копировании инфоблока Битрикс

// Получаем товары из 2 разных инфоблоков
$arProducts = array();
$ar1cProducts = array();
// товары 1с
$parameters = array(
'select' => array ('*'),
'filter' => array ('IBLOCK_ID' => 15, "ACTIVE"=>"Y", '!IBLOCK_SECTION_ID' => array('183','184','203')),
);
$products = Bitrix\Iblock\ElementTable::getList($parameters);
while ($product = $products->fetch())
{
$ar1cProducts[$product['XML_ID']] = $product['ID'];
}
//pre(count($ar1cProducts));
//pre($ar1cProducts);


$arSelect = Array("ID", "IBLOCK_ID", "NAME", "PROPERTY_MORE_PHOTO", "XML_ID");
$arFilter = Array("IBLOCK_ID"=>2, "ACTIVE"=>"Y", '!IBLOCK_SECTION_ID' => array('34','35'));
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
// pre($arProps['MORE_PHOTO']);
if(!empty($arProps['MORE_PHOTO']['VALUE'])) {
$arProducts[$arFields['XML_ID']] = array('ID'=>$arFields['ID'], "PHOTO" => $arProps['MORE_PHOTO']['VALUE']);
}
}

//pre(count($arProducts));
//pre($arProducts);


// Сравниваем несовпадение по xml_id
foreach ($ar1cProducts as $key => $c1Product)
{
if(array_key_exists($key, $arProducts))
{
$arFile = array();
foreach ($arProducts[$key]['PHOTO'] as $phototID) {
$arFile[] = array("VALUE" => CFile::MakeFileArray($phototID),"DESCRIPTION"=>"");
}
CIBlockElement::SetPropertyValueCode($c1Product, 'MORE_PHOTO', $arFile);
}
}
Подписка на блог Подпишись на новые материалы от US STUDIO и вы не пропустите интересные статьи от нашей компании