Обновить
10
0
Евгений Жуков@evzhukov

Пользователь

Отправить сообщение

Как избавиться от зацикливания обработчиков событий в Битриксе

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели1K

Привет, Хабр! Меня зовут Евгений Жуков, я работаю в Битриксе и отвечаю за правильную работу торгового каталога, а также инфоблоков — именно они являются базой для товаров. 

Разбирая запросы партнеров, вижу, что часто описываемые ими проблемы — это не ошибки в коде наших модулей, а неправильное использование возможностей. Так, например, мы регулярно получаем пожелание — внедрить возможность отключения механизма событий.

Как оказалось, это связано с одной распространенной задачей: при изменении одного элемента инфоблока нужно модифицировать другой.  Она встречается в разных кейсах — логирование, деактивация основного товара, когда нет активных предложений, изменение даты активности связанного элемента.

Никаких проблем, скажете вы. За 10 минут пишется обработчик, использующий метод CIBlockElement::Update, вешается на событие OnBeforeIBlockElementUpdate / OnAfterIBlockElementUpdate, вызывается тестовый пример, сервер падает... Epic fail в чистом виде...

Читать далее

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Веб-разработчик
Старший
PHP
CMS «1С-Битрикс»
MySQL
PostgreSQL
ООП
Java Spring Framework
Oracle