Обновление множествоенного св-ва секции UF_ тип "Привязка к элементам highload-блоков"
Так как св-во множественное и в него например добавляем или убираем одно или неск. значений, для начала нужно получить все уже установленные в этом св-ве значения.
Так как обновление всех множ. св-ств предполагает передачу всех значений, иначе ранее установленные затрутся.
Так как св-во множественное и в него например добавляем или убираем одно или неск. значений, для начала нужно получить все уже установленные в этом св-ве значения.
Так как обновление всех множ. св-ств предполагает передачу всех значений, иначе ранее установленные затрутся.
//Обновляем св-во UF_BRAND_HBL секций товара if(is_array($arFields['IBLOCK_SECTION'])) { $sec = new CIBlockSection; Bitrix\Main\Diag\Debug::writeToFile("Секции товара => ".implode("|", $arFields['IBLOCK_SECTION'])); foreach ($arFields['IBLOCK_SECTION'] as $key=>$sec_id){ $sec_UF_BRAND_HBL_select_vals = array(); $rsSect = \CIBlockSection::GetList( array('ID' => 'DESC'), array('IBLOCK_ID' => $iblock_id, 'ID' => $sec_id), false, array('UF_BRAND_HBL') ); while($arSect = $rsSect->Fetch()) { //Bitrix\Main\Diag\Debug::writeToFile('$rsSect '); //Bitrix\Main\Diag\Debug::writeToFile($arSect); $sec_UF_BRAND_HBL_select_vals = $arSect['UF_BRAND_HBL']; } $sec_UF_BRAND_HBL_select_vals[] = $HBL_element['ID']; //ID елемента HBL(бренда) привязанного к товару $sec_UF_BRAND_HBL_select_vals = array_unique($sec_UF_BRAND_HBL_select_vals); if (!$sec->Update($sec_id, array('UF_BRAND_HBL' => $sec_UF_BRAND_HBL_select_vals))) { Bitrix\Main\Diag\Debug::writeToFile('Error ' . $sec->LAST_ERROR); } else { Bitrix\Main\Diag\Debug::writeToFile('Установили секции ' . $sec_id . ' значения для UF_BRAND_HBL:'); Bitrix\Main\Diag\Debug::writeToFile($sec_UF_BRAND_HBL_select_vals); } } } |