Имя: Пароль:
1C
1C 7.7
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ют. Альберт Эйнштейн