Задать вопрос
@adun3

В каких случаях OnBeforeIBlockElementUpdate не срабатывает при изменении элемента?

Здравствуйте!
На сайте меняется активность элементов, пока не могу понять почему.
Поставил в init.php запись в файл изменения активности(вывод print_r(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), true)), но все что он словил, это то, что меняли через админку и через php консоль(я сам делал), т.е.
modules/main/admin/php_command_line.php
modules/iblock/admin/iblock_element_edit.php
Вопрос: как еще можно отследить причину замены активности элементов(почему OnBeforeIBlockElementUpdate не сработал).
Импорта через 1с на сайте нет.
  • Вопрос задан
  • 1990 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@kudis
Bitrix developer
События срабатывают, только при вызове API методов (Например: Add, Update)
т.е. если разработчик сделал изменение активности в обход и забыл вызвать ExecuteModuleEventEx() для Вашего OnBeforeIBlockElementUpdate, то изменение не вызовет события.
Но так делают редко, но делают. Например:
Используют UpdateList() - он обновляет элементы, но не вызывает Event (битрикс так и говорит об этом методе Update list of elements w/o any events)
или хардкорный
UPDATE `имя базы`.`b_iblock_element` t SET t.`ACTIVE` = 'Y' WHERE t.`ID` = id_элемента

событие не сработает.
Поищите аномалии в коде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы