При изменении статуса заказа на C ставим флаг отмены заказа
$eventManager = \Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandler( 'sale', 'OnSaleStatusOrderChange', ['OrderAutomation', 'statusChange'] );
class OrderAutomation { static function statusChange(\Bitrix\Main\Event $event) { // буква статуса заказа может быть любая из стандартных статусов, либо ваших добавленных $order = $event->getParameter("ENTITY"); if(in_array($order->getField('STATUS_ID'),array('C'))) { $orderToChange = \Bitrix\Sale\Order::load($order->getId()); $orderToChange->setField("CANCELED","Y"); $orderToChange->save(); \Bitrix\Sale\Provider::resetTrustData($order->getSiteId()); } } }
Ещё статьи:
02.04.2026
Разговоры о фрилансе
Предыстория - автор вопроса хочет войти в IT сферу, я человеку начал подсказывать в комментариях на форуме. На примере вопросов и ответов в разговоре можно увидеть типовые ошибки и непонимание начинающего, и в будущем избежать повторения ошибок.
21.03.2026
PHP файловый менеджер
Попался мне такой PHP файловый менеджер, вполне функциональный, выкладываю в копилку скриптов
21.03.2026
Ошибка CUser::IsAuthorized() cannot be called statically
Такая ошибка старых весрий битрикс давно известна. Нужно заменить CUser::IsAuthorized() на $USER->IsAuthorized(), но в моём случае я сначала не смог найти место, где же находится проблема.

