Вот код, который решает вопрос обновления разделов, когда их несколько привязано к элементу
$el = new CIblockElement();
$type = 'del'; //тип работы - del/add удалить и добавить раздел соответственно
$main_section = 100; //главный раздел, хранится в поле IBLOCK_SECTION_ID элемента
$newestSectionID = 250; //раздел, который нужно добавить/исключить
$arGroups = getAllGroupsOfElement($elID); //описание функции см. в посте под примером
if ($type == 'del') {
for ($i =0; $i <= count($arGroups); $i++) {
if ($arGroups[$i] == $newestSectionID)
unset ($arGroups[$i]);
}
}
if ($type == 'add') {
$arGroups[] = $newestSectionID;
}
$arUpd = [
'IBLOCK_SECTION_ID' => $main_section;
'IBLOCK_SECTION' => $arGroups,
];
$el->Update($ob['ID'], $arUpd, false, false, false, false);
Описание функции getAllGroupsOfElement из примера тут: https://bfdev.ru/53-kak-poluchit-vse-razdely-jelementa-v-bitrikse.html
Пользуйтесь!
Больше полезных материалов в нашем Telegram канале. Вступайте и будем на связи! https://t.me/bf_conversion