Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11  ОтправитьПечать
Очень популярная тема (более 25 ответов) Перехватчик. Для каких событий необходим ручной вызов оригинального? (число прочтений - 71187 )
an2
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 23. Марта 2012
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #120 - 30. Мая 2012 :: 13:00
Печать  
Да
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #121 - 30. Мая 2012 :: 13:19
Печать  
alyuev писал(а) 30. Мая 2012 :: 12:11:
Еще какая-то ерунда происходит с обработкой событий.

У меня в одном классе обработка и Глобальных и Контекстных событий.

При включении перехвата события Событие_ПриВыбореСтроки() перестала работать обработка события СобытиеГМ_Событие_ЗаписьСобытияЖурналаРегистрации.
Заметил так. Открываю журнал документов. Даблклик в списке на документе - срабатывает Событие_ПриВыбореСтроки() и далее СобытиеГМ_ПриОткрытии(). А если Событие_ПриВыбореСтроки() отключить - тогда перед СобытиеГМ_ПриОткрытии() нормально отрабатывает событие записи в журнал.



Да, по максимуму параметров.
ЗЫ: событием ГМ_ПриОткрытии не пользуюсь и тебе не советую
Улыбка

На сколько я понял, у тебя все события в 1 классе - и глобальника и формы.
События формы перехватывай не в ГМ_ПриОткрытии а в
СобытиеГМ_СозданиеКонтекста(Конт)... и будет тебе счастье.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #122 - 30. Мая 2012 :: 13:22
Печать  
Заменял ПриОткрытии на СобытиеГМ_СозданиеКонтекста - та же фигня с записью в журнал. Так что не в этом дело. Видимо где-то глубже проблема.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
an2
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 23. Марта 2012
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #123 - 30. Мая 2012 :: 13:27
Печать  
Не верь ему. Он злой и тебя обманывает.

Привожу пример (с сокращениями) из своего класса - перехватчика событий глобального модуля

//**********************************
Функция СобытиеГМ_СозданиеКонтекста(Конт) Экспорт
     РасширитьКонтекст(Конт);
     Если НетПерехвата(ТипИлиПутьФормы)=1 Тогда
           // нет ни перехвата
           // ни регистрации открытия
           // Ни сканов ни всякого другого прочего
           Возврат 1;
     КонецЕсли;
     // НИКАКОЙ ПЕРЕХВАТ В ЭТОМ СОБЫТИИ ОБЪЯВЛЯТЬ НЕЛЬЗЯ
     //ПодключениеПерехватаГК(Конт,Путь,Файл);
     Возврат 1;
КонецФункции

//------------------------------------
Функция СобытиеГМ_ПриОткрытии(Конт, ФлагЧтенияНастройки) Экспорт
     Если НетПерехвата(ТипИлиПутьФормы)=1 Тогда
           // нет ни перехвата
           // ни регистрации открытия
           Возврат 1;
     КонецЕсли;
     ПодключениеПерехватаГК(Конт,Путь,Файл);
     Возврат 1;
КонецФункции
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #124 - 30. Мая 2012 :: 13:28
Печать  
не понял в чем проблема..
Событие

Событие_ЗаписьСобытияЖурналаРегистрации где описано у тебя ?
в глобальнике ?
И не работает ?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #125 - 30. Мая 2012 :: 13:32
Печать  
Еще раз:

СобытиеГМ_Событие_ЗаписьСобытияЖурналаРегистрации() в классе не срабатывает при использовании и вызове Событие_ПриВыбореСтроки(). В других случаях работает.

Если использовать событие Событие_ЗаписьСобытияЖурналаРегистрации в глобальнике (вместо аналогичной в классе) - то оно отрабатывает и с Событие_ПриВыбореСтроки()
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
an2
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 23. Марта 2012
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #126 - 30. Мая 2012 :: 13:34
Печать  
Что Eprst злой это я пошутил.

В событии СобытиеГМ_СозданиеКонтекста
Есть одна странная проблемма
Если в этом событии подключить перехват событий Группового контекста,
Тогда в форме нового элемента справочника.
Я ничего не путаю именно в форме нового элемента никакого перехвата событий не будет.
В остальных случаях все в порядке.
Наступал на эти грабли дважды, поэтому уже сам себе написал, чтоб не вестить на Документацию.

С событием же СобытиеГМ_ПриОткрытии никаких проблем нет.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #127 - 30. Мая 2012 :: 13:45
Печать  
alyuev писал(а) 30. Мая 2012 :: 13:32:
Еще раз:

СобытиеГМ_Событие_ЗаписьСобытияЖурналаРегистрации() в классе не срабатывает при использовании и вызове Событие_ПриВыбореСтроки(). В других случаях работает.

Если использовать событие Событие_ЗаписьСобытияЖурналаРегистрации в глобальнике (вместо аналогичной в классе) - то оно отрабатывает и с Событие_ПриВыбореСтроки()


Ё.. проверил - усё отрабатывает, могу скинуть пример класса


  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #128 - 30. Мая 2012 :: 13:46
Печать  
an2 писал(а) 30. Мая 2012 :: 13:34:
Что Eprst злой это я пошутил.

В событии СобытиеГМ_СозданиеКонтекста
Есть одна странная проблемма
Если в этом событии подключить перехват событий Группового контекста,
Тогда в форме нового элемента справочника.
Я ничего не путаю именно в форме нового элемента никакого перехвата событий не будет.
В остальных случаях все в порядке.
Наступал на эти грабли дважды, поэтому уже сам себе написал, чтоб не вестить на Документацию.

С событием же СобытиеГМ_ПриОткрытии никаких проблем нет.



Аналогично - всё работает, в любой форме.
И фиолетово на форму нового элемента. событие ГМ_ПриОткрытии не используется
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #129 - 30. Мая 2012 :: 13:47
Печать  
Проверил как я и описывал? Открытие документа из журнала? и отрабатывает в классе СобытиеГМ_Событие_ЗаписьСобытияЖурналаРегистрации() ?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #130 - 30. Мая 2012 :: 13:50
Печать  
Яя натюрлих!
Улыбка

ЗЫ: в глобальничке:

Код
Выбрать все
	ЗагрузитьВнешнююКомпоненту("1cpp.dll");
	Настройки=СоздатьОбъект("УправлениеНастройками");
	Настройки.Сбросить("Проверка типов");
	Настройки.Сбросить("Отладка");
	//Настройки.Сбросить("Оптимизация");
	Настройки.Включить("Оптимизация");
	Настройки.Включить("TurboBL");

	Настройки.Включить("ПерехватитьСобытияГК");
	Перехватчик = СоздатьОбъект("Перехватчик");
	ПерехватчикСобытийГМ = СоздатьОбъект("ПерехватСобытий");
	Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ПерехватчикСобытийГМ);
	ПерехватчикСобытийГМ.ПерехватитьПроведение();
	Перехватчик.ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации(); 

  

_____________003.rar ( 7 KB | Загрузки )
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #131 - 30. Мая 2012 :: 13:51
Печать  
Я, конечно, верю... Но где ж собака порылась? Улыбка
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
an2
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 23. Марта 2012
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #132 - 30. Мая 2012 :: 13:53
Печать  
У Eprst есть БОЛЬШОЙ бубен.
Он в него бъет и исполняется любое желание.
А мы с тобой до такого бубна еще не доросли  Улыбка
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #133 - 30. Мая 2012 :: 13:57
Печать  
Проверь на моем мини-классе.
Работает ?
  
Наверх
 
IP записан
 
an2
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 23. Марта 2012
Re: Перехватчик. Для каких событий необходим ручной вызов оригинального?
Ответ #134 - 30. Мая 2012 :: 14:04
Печать  
Отчасти вынужден согласиться.
На моей же тестовой мини базе пробелеммы с СобытиеГМ_СозданиеКонтекста нет.
На рабочей базе - есть.
Привидения.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11 
ОтправитьПечать