Здравствуйте! Пытаюсь добавить в расширение обработчик события "ПослеЗаписиНаСервере" модуля формы справочника. Платформа задаёт вопрос "Метод является обработчиком события. Добавить расширение обработчика?"
Если выбираю "Да", то у меня в списке вариантов не доступен вариант "Вызывать вместо (с контролем)". Если выбираю "Нет", то доступен. Кто объяснит, что это за прикол? Почему я не могу добавить контроль на обработчик события?
В этом случае не происходит регистрация как обработчик события и выполняется простое расширение процедуры. Что соответственно позволяет использовать Вместо с контролем, как обычный расширяемый метод.
(3) правильно. Это будет просто расширение метода.
Если программно вызвать основную процедуру, то сработает расширение метода.
Если сделать как обработчик события в расширении, то при программном вызове основной процедуры, процедура в расширении вызвана не будет.
PS. Но так как при срабатывании события, сработает основная процедура обработчика, а она расширена как метод, то соответственно будет работать как при обычном расширении метода.
(4) Я немного не понял. Если я делаю как расширение метода, то когда заканчивается запись объекта, то запустится обработчик события "ПослеЗаписиНаСервере" из основной конфигурации, а не процедура из расширения?
то запустится обработчик события "ПослеЗаписиНаСервере" из основной конфигурации, а не процедура из расширения?
Обработчик это не сама процедура. Процедура может быть привязана к обработчику события.
По событию вызывается обработчик. Если есть привязанная к обработчику процедура, то она вызывается.
Если в расширении процедура не привязанная к обработчику, то соответственно она не вызывается напрямую, но так как она расширяет основную процедуру, которая привязана, то выполняется ровно те же действия, как и при обычном выполнении расширяемой процедуры.
Итог: По события срабатывает обработчик. Вызывается процедура, которая привязана к этому обработчику. Далее срабатывает логика расширения этой процедуры. В итоге процедура в расширении то же вызывается, но не напрямую самим обработчиком.
Контроль нужен для того, чтобы при обновлении обновился типовой код. Иначе без него, может не обновиться и это приведет к проблемам, если ты сделал просто Вместо.
Если в основной конфе есть "ПослеЗаписиНаСервере", то добавь его в расширение как тебе нужно. До, после, вместо (с контролем или без него).
Если его нет, то создай в расширении свой обработчик. Единственное что тебе нужно предусмотреть, если сейчас в основной конфе этого обработчика нет, это не значит что вендор его не в корячит в будущем. Может возникнуть не приятная ситуация.