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

Как узнать какие именно поля были изменены при вызове события OnAfterIBlockSectionUpdate?

Стоит задача, совершать некоторые действия при изменении раздела инфоблока, только если было изменено его имя. Знаю, что можно сохранить состояние при вызове события OnBeforeIBlockSectionUpdate. Есть ли альтернативный вариант?
  • Вопрос задан
  • 287 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по информационной безопасности
    9 месяцев
    Далее
Решения вопроса 1
@jasper-blondin
Не надо ничего сохранять.
При срабатывании события OnBeforeIBlockSectionUpdate получите поля (из параметры функции-обработчика). Это новые значения. А как получить старые, Вы уже знаете: CIBlockSection::GetByID().

Получается, что Ваша задача сводится к банальному условию в обработчике:
$oldFields = \CIBlockSection::GetByID($fields["ID"])->GetNext();
if($fields["NAME"] != $oldFields["NAME"]) {...}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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