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

deleteByDeliveryIdClassName

void public static
\Bitrix\Sale\Delivery\Restrictions\Manager::deleteByDeliveryIdClassName(
	$deliveryId,
	$className
);

Метод удаляет все ограничения заданного класса для службы доставки. Статический метод.

Параметры

Параметр Описание
$deliveryId Идентификатор службы доставки
$className Полное имя класса ограничения с пространством имен, например \Bitrix\Sale\Delivery\Restrictions\BySite

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

Метод не возвращает значения.

Исключения

Метод может передать исключение \Bitrix\Main\DB\SqlQueryException, если запрос к базе данных завершился с ошибкой.

Особенности

Метод удаляет все записи с указанными идентификатором службы, классом ограничения и типом службы доставки. Операцию нельзя отменить. Метод не очищает кеш ограничений текущего запроса.

Имя класса должно точно совпадать со значением CLASS_NAME в записи ограничения, включая начальный обратный слеш.

Пример

<?php
use Bitrix\Main\Loader;
use Bitrix\Sale\Delivery\Restrictions\BySite;
use Bitrix\Sale\Delivery\Restrictions\Manager;
use Bitrix\Sale\Internals\ServiceRestrictionTable;

if (!Loader::includeModule('sale'))
{
	throw new RuntimeException('Не удалось подключить модуль sale');
}

// Идентификатор отдельной тестовой службы без рабочих ограничений BySite
$testDeliveryServiceId = 2;
$restrictionClass = '\\' . BySite::class;

$addResult = ServiceRestrictionTable::add([
	'SERVICE_ID' => $testDeliveryServiceId,
	'SERVICE_TYPE' => Manager::SERVICE_TYPE_SHIPMENT,
	'CLASS_NAME' => $restrictionClass,
	'PARAMS' => ['SITE_ID' => ['s1']],
]);

if (!$addResult->isSuccess())
{
	throw new RuntimeException(implode('; ', $addResult->getErrorMessages()));
}

$restrictionId = $addResult->getId();

try
{
	Manager::deleteByDeliveryIdClassName($testDeliveryServiceId, $restrictionClass);

	$restriction = ServiceRestrictionTable::getById($restrictionId)->fetch();
	echo $restriction === false
		? 'Тестовые ограничения удалены' . PHP_EOL
		: 'Ограничение не удалено' . PHP_EOL;
}
finally
{
	// Удаляем тестовую запись, если основной вызов завершился исключением
	ServiceRestrictionTable::delete($restrictionId);
}


Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх