В глобальнике имею:
ОбъектПерехватГлобальника=СоздатьОбъект("ПерехватГлобальника");
Перехватчик=СоздатьОбъект("Перехватчик");
Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ОбъектПерехватГлобальника);
Код класса "перехватГлобальника":
//============================================================
Функция СобытиеГМ_СозданиеКонтекста(КонтФормы) Экспорт
ТипКонтекстаСтр=_ГМ.контТип(КонтФормы);
Если (ТипКонтекстаСтр="Документ") или (ТипКонтекстаСтр="Справочник") Тогда
ВидДокумента=_ГМ.контВид(КонтФормы);
Перехватчик=СоздатьОбъект("Перехватчик");
пПроведениеДокументов=СоздатьОбъект("ПерехватПроведенияДокументов");
Перехватчик.ПерехватитьСобытияГК(КонтФормы, пПроведениеДокументов);
Если ТипКонтекстаСтр="Документ" Тогда
Перехватчик.ПерехватитьСобытияПроведенияДокумента(ВидДокумента, пПроведениеДокументов);
КонецЕсли;
пПроведениеДокументов.Инит(КонтФормы);
КонецЕсли;
КонецФункции
И код класса "ПерехватПроведенияДокументов":
Перем КонтФормы;
//======================================================
Процедура Инит(КонтекстФормы) Экспорт
КонтФормы=КонтекстФормы;
КонецПроцедуры // Инит
//==============================================================
Процедура Событие_ОбработкаПроведения(КонтекстДокумента, ПараметрПроведения) Экспорт
//Перехватчик=СоздатьОбъект("Перехватчик");
);
//Если Рез<>1 Тогда
// Возврат;
//КонецЕсли;
//ТекДок=КонтФормы.ТекущийДокумент();
//Сообщить("Проводим "+ТекДок+", Результат = "+Рез);
КонецПроцедуры // Событие_ОбработкаПроведения(КонтекстДокумента) Экспорт
//=============================================================
Функция Событие_ПриОткрытии() Экспорт
Перехватчик=СоздатьОбъект("Перехватчик");
Если Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии")=0 Тогда Возврат 0; КонецЕсли;
Возврат 1;
КонецФункции// Событие_ПриОткрытии
//======================================================================
Функция Событие_ПриЗаписи() Экспорт
Перехватчик=СоздатьОбъект("Перехватчик");
Если Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы, "ПриЗаписи")=0 Тогда
Возврат 0;
КонецЕсли;
Сообщить("Записали "+КонтФормы.ТекущийДокумент());
Возврат 1;
КонецФункции // Событие_ПриЗаписи
Открываем предприятие, проводим любой документ, закрываем предприятие - вылет.
Если не включать перехват проведения, т.е. удалить строку:
Перехватчик.ПерехватитьСобытияПроведенияДокумента(ВидДокумента, пПроведениеДокументов);
то всё нормально.
Что я делаю не так и как надо делать правильно?
1С++ вер 3, 2, 1, 20 bf1