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

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

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


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

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

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

$bs = new CIBlockSection();

$arFields = [
    "NAME" => "Новое название раздела"
];

if ($bs->Update(15, $arFields)) {
    echo "Раздел обновлен";
} else {
    echo $bs->LAST_ERROR;
}

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

Метод обновляет существующий раздел инфоблока по его идентификатору. Изменяются только поля, переданные в массиве $arFields. Остальные данные раздела остаются без изменений. CIBlockSection::Update позволяет изменять структуру разделов, обновлять SEO-информацию, изображения и пользовательские поля. В случае ошибки метод возвращает false, а подробное описание причины ошибки можно получить через свойство LAST_ERROR.

Синтаксис

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

Параметры

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

Наиболее используемые поля

Поле Описание
NAME Название раздела.
CODE Символьный код.
ACTIVE Активность раздела.
DESCRIPTION Описание раздела.
DESCRIPTION_TYPE Тип описания (text/html).
IBLOCK_SECTION_ID Родительский раздел.
PICTURE Изображение раздела.
DETAIL_PICTURE Детальное изображение.
SORT Сортировка.

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

Изменение названия раздела

<?php

$bs = new CIBlockSection();

$arFields = [
    "NAME" => "Игровые ноутбуки"
];

if (!$bs->Update(15, $arFields)) {
    echo $bs->LAST_ERROR;
}

Обновление описания раздела

<?php

$arFields = [
    "DESCRIPTION" => "Обновленное описание раздела",
    "DESCRIPTION_TYPE" => "html"
];

$bs = new CIBlockSection();
$bs->Update(15, $arFields);

Изменение символьного кода

<?php

$arFields = [
    "CODE" => "gaming-notebooks"
];

$bs = new CIBlockSection();
$bs->Update(15, $arFields);

Обновление изображения раздела

<?php

$arFields = [
    "PICTURE" => CFile::MakeFileArray(
        $_SERVER["DOCUMENT_ROOT"]."/upload/new-section.jpg"
    )
];

$bs = new CIBlockSection();
$bs->Update(15, $arFields);

Перемещение раздела в другой родительский раздел

<?php

$arFields = [
    "IBLOCK_SECTION_ID" => 3
];

$bs = new CIBlockSection();
$bs->Update(15, $arFields);

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

Указан неверный ID раздела

$bs->Update(999999, $arFields);
Если раздел не существует, обновление завершится ошибкой.

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

$bs->Update($ID, $arFields);
Всегда проверяйте результат выполнения и выводите ошибку через LAST_ERROR.
if (!$bs->Update($ID, $arFields)) {
    echo $bs->LAST_ERROR;
}

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

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

Попытка создать циклическую структуру разделов

Нельзя назначить раздел родителем самому себе или одному из своих дочерних разделов.

Дублирование символьного кода

"CODE" => "catalog"
При включенном контроле уникальности символьных кодов обновление завершится ошибкой.

Аналог на D7

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

use Bitrix\Iblock\SectionTable;

$result = SectionTable::update(
    15,
    [
        "NAME" => "Новое название",
        "CODE" => "new-code"
    ]
);

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

FAQ

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

Метод возвращает true при успешном обновлении и false при возникновении ошибки.

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

echo $bs->LAST_ERROR;

Можно ли изменить только одно поле?

Да. Метод обновляет только те поля, которые переданы в массиве $arFields.

Как изменить родительский раздел?

Необходимо передать новый ID родительского раздела в поле IBLOCK_SECTION_ID.
[
    "IBLOCK_SECTION_ID" => 3
]

Как обновить изображение раздела?

Используйте поля PICTURE или DETAIL_PICTURE вместе с функцией CFile::MakeFileArray().

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

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


База знаний