Документация для разработчиков
Темная тема

delete

\Bitrix\Main\ORM\Data\DeleteResult public static
\Bitrix\Iblock\IblockTable::delete(
	mixed $primary
);

Удаляет запись инфоблока из таблицы b_iblock по первичному ключу. Статический метод. Унаследован от \Bitrix\Main\ORM\Data\DataManager.

Для удаления действующего инфоблока используйте \CIBlock::Delete. ORM-метод удаляет только запись из b_iblock и может оставить элементы, свойства, разделы, привязки и другие связанные данные.

Параметры

Параметр Описание
$primary Идентификатор инфоблока либо массив ['ID' => идентификатор]. Параметр обязателен

Возвращаемое значение

Объект \Bitrix\Main\ORM\Data\DeleteResult. Метод isSuccess() сообщает об успехе операции, getErrorMessages() возвращает сообщения об ошибках обработчиков ORM.

Метод не проверяет наличие инфоблока перед SQL-запросом и не возвращает число удаленных строк. Отсутствие записи само по себе не означает ошибку результата.

Особенности

Метод вызывает события ORM OnBeforeDelete, OnDelete и OnAfterDelete. Ошибки обработчиков OnBeforeDelete отменяют удаление. После SQL-запроса метод очищает кеш ORM, а IblockTable::onAfterDelete вызывает \CIBlock::CleanCache.

ORM-метод не удаляет элементы, разделы, свойства, привязки к сайтам, права и файлы. Для полного удаления инфоблока используйте \CIBlock::Delete.

Исключения

Ошибки настройки ORM, формата данных и выполнения SQL могут привести к исключению. Отмена операции обработчиком ORM возвращается в объекте результата. Проверяйте isSuccess() и обрабатывайте исключения отдельно.

Некорректный первичный ключ, например пустой массив или неизвестное имя ключа, вызывает \Bitrix\Main\ArgumentException.

Пример

Пример показывает \CIBlock::Delete: создает тестовый инфоблок через классический API и затем удаляет его вместе со связанными настройками. При ошибке выводит идентификатор созданного инфоблока.

<?php

use Bitrix\Iblock\TypeTable;
use Bitrix\Main\Loader;
use Bitrix\Main\SiteTable;

$iblockId = null;

try
{
	if (!Loader::includeModule('iblock'))
	{
		echo 'Не удалось подключить модуль iblock';
		return;
	}

	$type = TypeTable::getRow(['select' => ['ID'], 'order' => ['ID' => 'ASC']]);
	$site = SiteTable::getRow(['select' => ['LID'], 'order' => ['LID' => 'ASC']]);
	if ($type === null || $site === null)
	{
		echo 'Для примера нужны существующий тип инфоблоков и сайт';
		return;
	}

	$iblock = new \CIBlock();
	$apiCode = uniqid('DocsExample', false);
	$newId = $iblock->Add([
		'IBLOCK_TYPE_ID' => $type['ID'],
		'SITE_ID' => [$site['LID']],
		'NAME' => 'Тестовый инфоблок',
		'API_CODE' => $apiCode,
		'ACTIVE' => 'N',
	]);
	if (!$newId)
	{
		echo htmlspecialchars($iblock->LAST_ERROR, ENT_QUOTES, 'UTF-8');
		return;
	}

	$iblockId = (int)$newId;

	if (!\CIBlock::Delete($iblockId))
	{
		echo 'Не удалось удалить тестовый инфоблок: ' . $iblockId;
		return;
	}

	echo 'Удален тестовый инфоблок: ' . $iblockId;
}
catch (\Throwable $exception)
{
	echo 'Ошибка: ' . htmlspecialchars($exception->getMessage(), ENT_QUOTES, 'UTF-8');
}

Продолжить изучение



© «Битрикс», 2001-2026, «1С-Битрикс», 2026