varelchik писал(а) 08. Ноября 2007 :: 07:00: ПерехватчикСобытий = СоздатьОбъект("Перехват"); //твой класс перехвата всех форм
ПерехватчикСобытий.Инициализация(Конт);
Лучше вместо этого кода использовать спец. фабричный метод или еще лучше фабричный класс типа ФабрикаСозданияПерехватчиков.Причины:
1) Наверняка для различных форм (отчеты, справочники, документы, журналы и т.д.) будут использоваться различные события, необходимо различать обработчики этих событий, т.е. плодить
различные классы
2) А также если для различных форм одного вида будут использоваться различные обработчики
И соответственно, в различных конфигурациях будут различные классы-перехватчики
Поэтому, чтобы не менять каждый раз класс ПерехватГМ для каждой конфигурации или конфы, лучше сделать так:1) Создаем базовый фабричный класс БазоваяФабрикаСозданияПерехватчиков
2) Определяем у него открытый метод ПерехватитьКонтекст(КонтФормы) Экспорт
Метод в классе ничего не делает или выдает исключение или создает пустой перехватчик. Типа этот класс является абстрактным, только для наследования

Основное действие будет происходить в конкретных классах-наследниках

3) для каждой различной конфы пишем код в ГМ
ФабрикаСозданияПерехватчиков = СоздатьОбъект("ФабрикаСозданияПерехватчиковДляДаннойКонфы"); //твой класс перехвата всех форм
НовыйПерехватчикГМ = ФабрикаСозданияПерехватчиков.ПерехватитьГМ(Конт);
[code]
4) а в наследнике ФабрикаСозданияПерехватчиковДляДаннойКонфы в методе ПерехватитьКонтекст пишем код по созданию точных обработчиков для нужных форм в данной конфе
Т.е. ООП в действии

Этот метод хорош тем, что происходит минимальное изменение существующего клиентского кода.