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