pavlo писал(а) 03. Июня 2009 :: 09:18:Артур, я так понимаю этот код все равно постоянно делать?
УпрНастр = СоздатьОбъект("УправлениеНастройками");
УпрНастр.Сбросить("Отладчик");
УпрНастр.Включить("ПерехватитьСобытияГК");
Ты мой ответ читал или все-таки нет??
УправлениеНастройками отвечает за работу ВСЕЙ 1С++ в течение сеанса 1С !!
Конкретный перехват на конкретную форму здесь совершенно ни при чем !
Приведенный тобой код нужно включать при загрузке 1С++, чтобы исключить глюки с реестром на клиентских машинах, и самое главное, включить возможность любого перехвата с помощью Перехватчика !
pavlo писал(а) 03. Июня 2009 :: 09:18:и ниже я так понял что то вроде этого? только не понятно что ставить вместо "ГК" всмысле откуда получить этот ГК в моем случае, просто или я чего-то путаю или не понимаю малость
Перехватчик=СоздатьОбъект("Перехватчик");
Перехватчик.ПерехватитьСобытияГК(ГК); !! НЕВЕРНО - читай доку
Перехватчик.ВыполнитьОригинальноеСобытиеГК(ГК,"ВводНового",);
Перехватчик.СнятьПерехватСобытийГК(ГК);
Как правило, код установки перехвата используется в 2-х вариантах:
1. внешний код устанавливает перехват на объект-класса перехватчика.
Перехватчик.ПерехватитьСобытияГК(ГК, ОбъектПерехватчик);
2. или сам перехват вызывается внутри объекта-перехватчика, а внешний код вызывает спец.метод этого объекта.
внешний код - Типа ОбъектПерехватчик.УстановитьПерехват(ГК);
а внутри метода УстановитьПерехват(парамКонтФормы) в классе написано
Перехватчик.ПерехватитьСобытияГК(ппарамКонтФормы, вирт());
Для обоих случаев ты просто добавляешь переменную _КонтФормы (или _ГК) в модуль класса как приватный атрибут класса.
Перем _КонтФормы;
Далее для случая 2 - перед/после установкой перехвата ты сохраняешь переданный тебе ГК в нужную переменную _КонтФормы.
_КонтФормы = ГК;
Для случая 1 аналогичный код должен выполнить внешний код, что сложнее

Поэтому, как правило, методически правильно реализовывать именно метод/вариант 2 !
Далее внутри своего класса-перехватчика уже можно юзать
Перехватчик.ВыполнитьОригинальноеСобытиеГК(_КонтФормы,"ВводНового",);
или
Перехватчик.СнятьПерехватСобытийГК(_КонтФормы);
ЗЫ если нужно снимать перехват событий конкретного контекста из внешнего кода, то, как правило, лучше в классе реализовать спец.метод типа СнятьПерехват(), внутри которого написано все тот же код
Перехватчик.СнятьПерехватСобытийГК(_КонтФормы);