В этом месяце поставлен своеобразный рекорд: 38 аннулированных сертификатов. Как и в прошлый раз, похоже это одна компания начала массово сдавать на сертификаты, но по шпорам. Кстати, созрело понимание как дополнительно можно создать сложности для сдающих по шпорам или за деньги. В январе, скорее всего, аргументируем и введём новые меры. Теперь о том что сделано: [spoiler]
Судя по названию OnBeforeIBlockElementAdd - перед добавлением (изменением), OnAfterIBlockElementAdd - после добавления (изменения). А новые - в сам момент добавления (изменения).
Посмотрел исходники. События вызываются непосредственно перед процедурами записи в базу данных. Но к тому моменту уже обработаны и созданы файлы картинки анонса и детальной.
Верно ли я понимаю, что одним из сценариев применения этих событий может являться выключение активности элемента ИБ, если у него нет картинки для анонса или детальной?
Нет. Эти события вызываются в момент, когда отработали все обработчики, модифицирующие данные, произошла их (данных) валидация и идет запись в базу. Менять данные эти события НЕ позволяют. Основной сценарий использования - выполнить некий код перед работой с базой, будучи увереным, что данные в базе будут изменены.
Для Вашего примера нужно использовать события OnBefore
Т.е. по сути в этом событии мы просто будем знать, что запись сейчас будет произведена, ошибок нет и значения полей которые будут обновлены/заполнены. Далее можно выполнять какой-то свой скрипт не связанный с изменением данных элемента(к примеру отправить письмо) - своеобразный OnBefore, который не позволяет переопределить поля? Или мы не будем знать, что ошибок нет и запись не будет произведена?
Т.е. по сути в этом событии мы просто будем знать, что запись сейчас будет произведена, ошибок нет и значения полей которые будут обновлены/заполнены. Далее можно выполнять какой-то свой скрипт не связанный с изменением данных элемента(к примеру отправить письмо)
Да.
своеобразный OnBefore, который не позволяет переопределить поля?
Нет. Это аналог событий on<Action> из orm d7.
Или мы не будем знать, что ошибок нет и запись не будет произведена?
Если вызывается это событие - ошибок нет, запись будет выполнена.
Документация - это замечательно. Только документация не нужна когда отсутствуют описанные в ней свойства. Когда например в коробочной версии Битрикс24 появятся сообщения в живую ленту из шаблонов бизнес-процессов?
В какой момент они срабатывают?
А новые - в сам момент добавления (изменения).
События вызываются непосредственно перед процедурами записи в базу данных. Но к тому моменту уже обработаны и созданы файлы картинки анонса и детальной.
Верно ли я понимаю, что одним из сценариев применения этих событий может являться выключение активности элемента ИБ, если у него нет картинки для анонса или детальной?
Для Вашего примера нужно использовать события OnBefore
Или мы не будем знать, что ошибок нет и запись не будет произведена?