artbear писал(а) 21. Января 2011 :: 08:38:Dmitry The Wing писал(а) 21. Января 2011 :: 02:38:Кроме того, есть еще один подводный камень:
Для правильного вызова оригинального события необходимо определить число параметров метода.
Если ты перехватил событие, ты уже знаешь контекст формы и можешь определить количество параметров, не обращаясь к Перехватчику вообще

- у каждого контекста свои обработчики и свои параметры.
Проблема в том, что иногда метод можно найти только перебором всего списка, т.к. функция НайтиЗначение у ТЗ чуствительна к регистру... ибо некоторые разработчики не следят за красотой кода, что дает методы в различных регистрах + комбинации русско- и англо-язычных вариантов именований...
P.S.: Скорее даже не за красотой, а читабельностью кода...
artbear писал(а) 21. Января 2011 :: 08:36:Dmitry The Wing писал(а) 21. Января 2011 :: 02:38:Словил неприятный эффект при перехвате Событие_ПриОткрытии при использовании в форме варианта OnOpen.
Событие срабатывает, но как вызвать оригинальное событие без явного использования этого варианта в коде?
Дело в том, что в этом случае функция информатора ПолучитьТаблицуМетодов не заполняет русский вариант имени метода...
Если возможно использование как русскоязычного, так и англоязычного наименования обработчика события, то можно использовать двойной вызов
сначала в коде пишем
Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы, "ПриОткрытии", ...)
и сразу за ним
Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы, "OnOpen", ...)
Это верно, но в некоторых случаях необходимо предусмотреть возможно разное число параметров, а метода кроме
Если ЧислоПараметров = 0 Тогда
Рез = Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтОбъекта, ИмяСобытия);
ИначеЕсли ЧислоПараметров = 1 Тогда
Рез = Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтОбъекта, ИмяСобытия, Парам1);
ИначеЕсли ЧислоПараметров = 2 Тогда
Рез = Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтОбъекта, ИмяСобытия, Парам1, Парам2);
КонецЕсли;
пока не вижу ... если еще и имена туда совать - как-то совсем громоздко выходит.
Необходимость проверки числа параметров вытекает из того, что в ВыполнитьОригинальноеСобытиеГК необходимо передавать ПРАВИЛЬНОЕ число параметров, ни больше, ни меньше...