v7: Неожиданно перестал работать перехватчик
☑
0
Zhuravlik
28.11.12
✎
09:47
Здравствуйте. Внезапно перестал работать механизм перехвата событий. Причем точно не знаю когда именно, обнаружил только сейчас.
Версия 1С++ - 3.2.3.20
Настройки:
EnableHookEventsGroupContext: 1
EnableCheckType: 0
EnableDebugging: 0
EnableOptimization: 1
EnableTableSourceTable: 1
EnableTurboBL: 1
Код в глобальном модуле В "ПриНачалеРаботыСистемы()":
Настройки=СоздатьОбъект("УправлениеНастройками");
Настройки.Включить("ПерехватитьСобытияГК");
Перехватчик = СоздатьОбъект("Перехватчик");
ПерехватчикСобытийГМ = СоздатьОбъект("УправлениеСобытиями");
Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ПерехватчикСобытийГМ);
Код в классе "УправлениеСобытиями":
Перем Перехватчик;
Перем КонтФормы ;
Перем ТипОбъекта;
Перем флТолькоПросмотр;
Перем Расшф;
//======================================================================
Процедура Конструктор()
Перехватчик = СоздатьОбъект("Перехватчик");
КонецПроцедуры // Конструктор
//======================================================================
Процедура Инит(Конт = "") Экспорт
Если ТипЗначенияСтр(Конт) = "ГрупповойКонтекст" Тогда
КонтФормы = Конт;
КонецЕсли;
Перехватчик.ПерехватитьСобытияГК(КонтФормы,вирт());
Расшф = СоздатьОбъект("РасширениеФормы");
Расшф.УстановитьФорму(КонтФормы.Форма);
ТипОбъекта = РасшФ.ТипОбъекта();
КонецПроцедуры
//======================================================================
Процедура СобытиеГМ_СозданиеКонтекста(Конт) Экспорт
ПерехватчикСобытийФормы = СоздатьОбъект("УправлениеСобытиями");
ПерехватчикСобытийФормы.Инит(Конт);
КонецПроцедуры
//======================================================================
Функция Событие_ПриОткрытии(ФлагЧтенияНастройки) Экспорт
флТолькоПросмотр = КонтФормы.Форма.ТолькоПросмотр();
Если (ТипОбъекта="Отчет")или (ТипОбъекта="Обработка")Или(ТипОбъекта = "ВнешнийОтчет") Тогда
Возврат Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии",ФлагЧтенияНастройки);
КонецЕсли;
Возврат Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии");
КонецФункции
Порядок загрузки ВК:
спВК.ДобавитьЗначение("1cpp.dll");
спВК.ДобавитьЗначение("1sqlite.dll");
спВК.ДобавитьЗначение("FormEx.dll");
спВК.ДобавитьЗначение("SpreadSheet.dll");
спВК.ДобавитьЗначение("RiK_Inet.dll");
Классы загружены, ошибок никаких не выдает. Только анализатор 1С++ ругается на вирт(), но я так понимаю проблема не в этом.
Подскажите пожалуйста, что не так?
1
Zhuravlik
28.11.12
✎
09:50
Поспешил я с этой темой, все решилось...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн