Здравствуйте! Пытаюсь добавить в расширение обработчик события "ПослеЗаписиНаСервере" модуля формы справочника. Платформа задаёт вопрос "Метод является обработчиком события. Добавить расширение обработчика?"
Если выбираю "Да", то у меня в списке вариантов не доступен вариант "Вызывать вместо (с контролем)". Если выбираю "Нет", то доступен. Кто объяснит, что это за прикол? Почему я не могу добавить контроль на обработчик события?
Если выбираю "Да", то у меня в списке вариантов не доступен вариант "Вызывать вместо (с контролем)". Если выбираю "Нет", то доступен. Кто объяснит, что это за прикол? Почему я не могу добавить контроль на обработчик события?
По теме из базы знаний
- [ЕХТ] Фреймворк для Расширений 1С
- Эволюция расширения конфигурации
- Структурирование доработок обработчиков событий объектов и форм
- Система интерактивных ролей и обработчиков с возможностью интерактивной настройки и не только (платформа 8.3.17+, расширение) для УТ 11 (все), КА 2, ERP 2, Розница 2, УНФ 1.6/3.0, БП 3, ЗУП 3.1
- [ЕХТ] Фреймворк для Расширений 1С: Обработка событий: описание, примеры и демобаза.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
В этом случае он регистрируется как обработчик события. У обработчика события это в принципе не возможно.
(1)
В этом случае не происходит регистрация как обработчик события и выполняется простое расширение процедуры. Что соответственно позволяет использовать Вместо с контролем, как обычный расширяемый метод.
Если выбираю "Да", то у меня в списке вариантов не доступен вариант "Вызывать вместо (с контролем)".
В этом случае он регистрируется как обработчик события. У обработчика события это в принципе не возможно.
(1)
Если выбираю "Нет", то доступен.
В этом случае не происходит регистрация как обработчик события и выполняется простое расширение процедуры. Что соответственно позволяет использовать Вместо с контролем, как обычный расширяемый метод.
(3) правильно. Это будет просто расширение метода.
Если программно вызвать основную процедуру, то сработает расширение метода.
Если сделать как обработчик события в расширении, то при программном вызове основной процедуры, процедура в расширении вызвана не будет.
PS. Но так как при срабатывании события, сработает основная процедура обработчика, а она расширена как метод, то соответственно будет работать как при обычном расширении метода.
Если программно вызвать основную процедуру, то сработает расширение метода.
Если сделать как обработчик события в расширении, то при программном вызове основной процедуры, процедура в расширении вызвана не будет.
PS. Но так как при срабатывании события, сработает основная процедура обработчика, а она расширена как метод, то соответственно будет работать как при обычном расширении метода.
(5)
Обработчик это не сама процедура. Процедура может быть привязана к обработчику события.
По событию вызывается обработчик. Если есть привязанная к обработчику процедура, то она вызывается.
Если в расширении процедура не привязанная к обработчику, то соответственно она не вызывается напрямую, но так как она расширяет основную процедуру, которая привязана, то выполняется ровно те же действия, как и при обычном выполнении расширяемой процедуры.
Итог: По события срабатывает обработчик. Вызывается процедура, которая привязана к этому обработчику. Далее срабатывает логика расширения этой процедуры. В итоге процедура в расширении то же вызывается, но не напрямую самим обработчиком.
то запустится обработчик события "ПослеЗаписиНаСервере" из основной конфигурации, а не процедура из расширения?
Обработчик это не сама процедура. Процедура может быть привязана к обработчику события.
По событию вызывается обработчик. Если есть привязанная к обработчику процедура, то она вызывается.
Если в расширении процедура не привязанная к обработчику, то соответственно она не вызывается напрямую, но так как она расширяет основную процедуру, которая привязана, то выполняется ровно те же действия, как и при обычном выполнении расширяемой процедуры.
Итог: По события срабатывает обработчик. Вызывается процедура, которая привязана к этому обработчику. Далее срабатывает логика расширения этой процедуры. В итоге процедура в расширении то же вызывается, но не напрямую самим обработчиком.
Контроль нужен для того, чтобы при обновлении обновился типовой код. Иначе без него, может не обновиться и это приведет к проблемам, если ты сделал просто Вместо.
Если в основной конфе есть "ПослеЗаписиНаСервере", то добавь его в расширение как тебе нужно. До, после, вместо (с контролем или без него).
Если его нет, то создай в расширении свой обработчик. Единственное что тебе нужно предусмотреть, если сейчас в основной конфе этого обработчика нет, это не значит что вендор его не в корячит в будущем. Может возникнуть не приятная ситуация.
Поэтому тебе по факту контроль не нужен, он для платформы, а не для тебя.
вот первая же ссылка в гугле.
Если в основной конфе есть "ПослеЗаписиНаСервере", то добавь его в расширение как тебе нужно. До, после, вместо (с контролем или без него).
Если его нет, то создай в расширении свой обработчик. Единственное что тебе нужно предусмотреть, если сейчас в основной конфе этого обработчика нет, это не значит что вендор его не в корячит в будущем. Может возникнуть не приятная ситуация.
Поэтому тебе по факту контроль не нужен, он для платформы, а не для тебя.
вот первая же ссылка в гугле.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
