Bitrix api работа с разделом инфоблока

Для работы над разделом иноблока используется класс CIBlockSection

Создание раздела инфоблока

Чтобы создать раздел в инфоблоке нужно воспользоваться методом Add

if (CModule::IncludeModule("iblock")) {
  $arFields = Array(
    "ACTIVE" => "Y",//раздел активен
    "IBLOCK_ID" => 4,//id инфоблока, в котором создаём раздел
    "NAME" => "Название раздела",//название раздела
    "SORT" => "100",//сортировка
    "PICTURE" => CFile::MakeFileArray("test-img.png"),//формируем массив, описывающий файл, который будет загружен в поле "Изображение"
    "DESCRIPTION" => "<p>Описание раздела</p>",//поле "Описание"
    "DESCRIPTION_TYPE" => "html"//тип поля "Описание"
  );
  $rsSection = new CIBlockSection;
  $sectionId = $rsSection->Add($arFields);	
}

В результате создастся раздел, а в переменную $sectionId запишется его ID

Изменение(обновление) раздела инфоблока

Для обновления данных раздела инфоблока используется метод Update

if (CModule::IncludeModule("iblock")) {
  $arFields = Array(
    "ACTIVE" => "N",//раздел не активен
    "NAME" => "Новое название раздела",
    "PICTURE" => CFile::MakeFileArray("test-img2.png"),
    "DESCRIPTION" => "<p>Новое описание раздела</p>",
  );
  $rsSection = new CIBlockSection;
  $updateSectionRes = $rsSection->Update(18, $arFields);
}

В результате успешного обвновления изменятся данные у раздела с ID равным 18, а в переменную $updateSectionRes вернётся true. В случае неудачи вернётся false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки ($rsSection->LAST_ERROR)

Получить информацию о разделе

Чтобы получить информацию о разделе можно воспользоваться методами GetByID или GetList

if (CModule::IncludeModule("iblock")) {
  //используя метод GetByID
  $rsSection = CIBlockSection::GetByID(18);
  if ($arSection = $rsSection->GetNext()) {
    echo "<pre>";var_dump($arSection);echo "</pre>";
  }
  //используя метод GetList
  $rsSection = CIBlockSection::GetList(
    ["ID" => "DESC"],//сортировка
    ["IBLOCK_ID" => 4],//фильтр
    false,//не возвращать количество элементов в разделе
    ["ID", "IBLOCK_ID", "NAME"]//получаемые поля и свойства
  );
  while ($arSection = $rsSection->GetNext()) {
    echo "<pre>";var_dump($arSection);echo "</pre>";
  }
}

Удаление раздела инфоблока

Для удаления раздела инфоблока используется метод Delete

if (CModule::IncludeModule("iblock")) {
  global $DB;
  $DB->StartTransaction();
  if (!CIBlockSection::Delete(18)){
    $DB->Rollback();
  } else {
    $DB->Commit();
  }
}

В результате удалится раздел с ID равным 18.