Bitrix Help
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Главная » API Битрикс » CIBlockSection » CIBlockSection::Add в Битрикс — создание раздела инфоблока

CIBlockSection::Add в Битрикс — создание раздела инфоблока

Обновлено: 2026 • Раздел: CIBlockSection


Метод CIBlockSection::Add() используется для программного создания разделов инфоблока в 1С-Битрикс. С его помощью можно добавлять категории каталога, разделы новостей, подразделы и любые другие разделы инфоблоков.

Краткий ответ

Для создания раздела необходимо создать объект класса CIBlockSection, подготовить массив полей и вызвать метод Add().
<?php

$bs = new CIBlockSection();

$arFields = [
    "IBLOCK_ID" => 5,
    "NAME" => "Новый раздел",
    "ACTIVE" => "Y"
];

$ID = $bs->Add($arFields);

if ($ID) {
    echo "Создан раздел: ".$ID;
} else {
    echo $bs->LAST_ERROR;
}

Описание функции

Метод создает новый раздел в указанном инфоблоке и возвращает его идентификатор. При возникновении ошибки возвращается false, а текст ошибки доступен через свойство LAST_ERROR. С помощью CIBlockSection::Add можно создавать как корневые разделы, так и вложенные подразделы любой глубины. Метод поддерживает установку изображений, SEO-настроек, символьных кодов и пользовательских полей раздела.

Синтаксис

int|false CIBlockSection::Add(
    array $arFields,
    bool $bResort = true,
    bool $bUpdateSearch = true,
    bool $bResizePictures = false
);

Параметры

Параметр Тип Описание
$arFields array Массив полей создаваемого раздела.
$bResort bool Перестроение дерева разделов после создания.
$bUpdateSearch bool Обновление поискового индекса.
$bResizePictures bool Автоматическое изменение размеров изображений.

Основные поля массива arFields

Поле Описание
IBLOCK_ID ID инфоблока.
NAME Название раздела.
ACTIVE Активность раздела.
CODE Символьный код.
IBLOCK_SECTION_ID ID родительского раздела.
DESCRIPTION Описание раздела.
PICTURE Изображение раздела.
DETAIL_PICTURE Детальное изображение.
SORT Порядок сортировки.

Пример использования

Создание корневого раздела

<?php

$bs = new CIBlockSection();

$arFields = [
    "IBLOCK_ID" => 5,
    "NAME" => "Ноутбуки",
    "ACTIVE" => "Y",
    "CODE" => "notebooks"
];

$ID = $bs->Add($arFields);

if (!$ID) {
    echo $bs->LAST_ERROR;
}

Создание подраздела

<?php

$arFields = [
    "IBLOCK_ID" => 5,
    "IBLOCK_SECTION_ID" => 10,
    "NAME" => "Игровые ноутбуки",
    "ACTIVE" => "Y"
];

$bs = new CIBlockSection();
$ID = $bs->Add($arFields);

Создание раздела с изображением

<?php

$arFields = [
    "IBLOCK_ID" => 5,
    "NAME" => "Смартфоны",
    "PICTURE" => CFile::MakeFileArray(
        $_SERVER["DOCUMENT_ROOT"]."/upload/section.jpg"
    )
];

$bs = new CIBlockSection();
$ID = $bs->Add($arFields);

Создание раздела с описанием

<?php

$arFields = [
    "IBLOCK_ID" => 5,
    "NAME" => "Планшеты",
    "DESCRIPTION" => "Каталог планшетов различных производителей.",
    "DESCRIPTION_TYPE" => "html"
];

$bs = new CIBlockSection();
$ID = $bs->Add($arFields);

Типичные ошибки

Не указан IBLOCK_ID

$arFields = [
    "NAME" => "Раздел"
];
Без ID инфоблока создать раздел невозможно.

Не заполнено обязательное поле NAME

$arFields = [
    "IBLOCK_ID" => 5
];
Название раздела является обязательным полем.

Неверный родительский раздел

"IBLOCK_SECTION_ID" => 999999
Если родительский раздел не существует, создание завершится ошибкой.

Неправильная загрузка изображения

"PICTURE" => "/upload/image.jpg"
Для загрузки изображений необходимо использовать CFile::MakeFileArray().

Отсутствие проверки результата

$ID = $bs->Add($arFields);
Всегда проверяйте результат выполнения и выводите LAST_ERROR при ошибке.

Аналог на D7

В ORM D7 для работы с разделами используется класс Bitrix\Iblock\SectionTable.
<?php

use Bitrix\Iblock\SectionTable;

$result = SectionTable::add([
    "IBLOCK_ID" => 5,
    "NAME" => "Новый раздел",
    "ACTIVE" => "Y"
]);

if ($result->isSuccess()) {
    echo $result->getId();
} else {
    print_r(
        $result->getErrorMessages()
    );
}
ORM D7 обеспечивает более удобную работу с данными и рекомендуется для новых проектов.

FAQ

Что возвращает CIBlockSection::Add?

При успешном создании возвращается ID нового раздела. В случае ошибки возвращается false.

Как получить текст ошибки?

echo $bs->LAST_ERROR;

Как создать подраздел?

Укажите ID родительского раздела в поле IBLOCK_SECTION_ID.

Можно ли загрузить изображение раздела?

Да. Для этого используются поля PICTURE и DETAIL_PICTURE.

Как задать символьный код?

"CODE" => "catalog"
Если код не указан, Битрикс может сгенерировать его автоматически при соответствующих настройках инфоблока.

Что использовать в новых проектах?

Для новых разработок рекомендуется использовать ORM D7 и класс Bitrix\Iblock\SectionTable. Метод CIBlockSection::Add остается актуальным для поддержки существующих проектов и готовых решений на 1С-Битрикс.
Услуги


База знаний