Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Перехватчик - События журнала регистрации. (число прочтений - 3483 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Перехватчик - События журнала регистрации.
22. Апреля 2015 :: 05:22
Печать  
Кто нибудь нарывался на такую проблему?
Есть перехватчик, ловит на ура все события журнала и пишет в скуль, НО в новой базе и с новой 3.2.4.1 1с++ вот такое увидел:
Ловит всё, но часть пишет в родной журнал тоже, СобытиеГМ_Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации конечно как функция и возвращает 0.
Но также, полбеды что пишет что то, хоть и не приятно. Если используется ЗаписьЖурналаРегистрации() в ПриНачалеРаботыСистемы() или там где критичен СтатусВовзрата() вот тут проблемы начинаются.
ДО входа в событие (а точнее в класс, проверено на других событиях тоже) СтатусВозврата() = 1, как только попало в класс, в частности в это событие оно имеет произвольное локальное значение, но как только выходит сразу становится СтатусВозврата() = 0, что отменяет для 1С те или иные действия, если при запуске системы вовсе перестает запускаться само собой. Для событий типа Событие_ПриОткрытии() это поведение очень даже нормальное, но не для записи журнала.

Если возврат 1 поставить конечно работает, но пишет в оба журнала, что в корне всю идею губит.
Явно раньше такого не было на старых версиях.
Потому как один в одни тот же класс работал на ура на другой базе ранее (на прошлой работе у меня) и писал в родной журнал только то, что НЕ из Предприятия и вход выход которое предприятие один черт пишет в родной журнал.
« Последняя редакция: 22. Апреля 2015 :: 07:28 - pavlo »  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #1 - 22. Апреля 2015 :: 08:58
Печать  
попробуй ловить оба события

Код
Выбрать все
//_____________________________________________________________________________
Функция Событие_ЗаписьСобытияЖурналаРегистрации(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) Экспорт
	Если оЖурналРегистрации.ЗарегистрироватьСобытие(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) <> 1 Тогда
		Возврат 1;
	КонецЕсли;

	Возврат 0;
КонецФункции

//_____________________________________________________________________________
Функция Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) Экспорт
	Если оЖурналРегистрации.ЗарегистрироватьСобытие(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) <> 1 Тогда
		Возврат 1;
	КонецЕсли;

	Возврат 0;
КонецФункции
 



у нас ничего лишнего в mlg нет
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #2 - 22. Апреля 2015 :: 09:06
Печать  
проверил в ПриНачале

Код
Выбрать все
	ЗаписьЖурналаРегистрации("проверка");
	сообщить(""+СтатусВозврата());
 

возвращает 1
1С++ 3.2.4.2
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #3 - 22. Апреля 2015 :: 09:19
Печать  
Всмысле оба? ловятся они без проблем, только с записью в оба журнала

ADirks писал(а) 22. Апреля 2015 :: 08:58:
попробуй ловить оба события

Код
Выбрать все
//_____________________________________________________________________________
Функция Событие_ЗаписьСобытияЖурналаРегистрации(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) Экспорт
	Если оЖурналРегистрации.ЗарегистрироватьСобытие(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) <> 1 Тогда
		Возврат 1;
	КонецЕсли;

	Возврат 0;
КонецФункции

//_____________________________________________________________________________
Функция Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) Экспорт
	Если оЖурналРегистрации.ЗарегистрироватьСобытие(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) <> 1 Тогда
		Возврат 1;
	КонецЕсли;

	Возврат 0;
КонецФункции
 



у нас ничего лишнего в mlg нет

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #4 - 22. Апреля 2015 :: 09:23
Печать  
У меня типа такого:

Код
Выбрать все
Функция , Event, EvType, comment, object, ObjDescr) Экспорт
	Если вклЗаписьВЖурнал = 1 Тогда
		ЗаписьВЖурнал.ЗаписатьВЖурналРИ(EventCategory, Event, EvType, comment, object, ObjDescr);
		Возврат 0;
	Иначе
		Возврат 1; //Если 1 то пишем в родной журнал
	КонецЕсли;

КонецФункции // Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации()
//****************************************************************************
Функция СобытиеГМ_Событие_ЗаписьСобытияЖурналаРегистрации(EventCategory, Event, EvType, comment, object, ObjDescr) Экспорт
	Если вклЗаписьВЖурнал = 1 Тогда
		ЗаписьВЖурнал.ЗаписатьВЖурналРИ(EventCategory, Event, EvType, comment, object, ObjDescr);
		Возврат 0;
	Иначе
		Возврат 1; //Если 1 то пишем в родной журнал
	КонецЕсли;

КонецФункции // Событие_ЗаписьСобытияЖурналаРегистрации() 

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #5 - 22. Апреля 2015 :: 09:28
Печать  
У тебя события без префикса "СобытиеГМ_" но без него у меня не пашет срабатывания события.
В чем разница? (жаль Артура нет, может он пролил свет бы на это  Нерешительный )
Кстати как у тебя нет ниодной записи в млг? там как минимум регистрация отличных от предприятия действий и что заметил вход/выход пользователя не ловится в предприятии перехватчиком.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #6 - 22. Апреля 2015 :: 09:41
Печать  
Без префикса, потому что они в ГМ, а не в классе.  Если память не изменяет, то это не просто так было сделано. Но подробностей уже не помню, за давностью.
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #7 - 22. Апреля 2015 :: 09:43
Печать  
В ГМ только что попробовал, оно вообще туда не попадает. Кстати СобытиеГМ_ это еще Артур мне подсказывал писать Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #8 - 22. Апреля 2015 :: 09:48
Печать  
Ага, по первой она смотрит в классах, нужно было там закомментировать все. Но все же странно. В том варианте писанном с Артуром тоже все ранее работало Улыбка
Кстати Подключение и Отключение из предприятие у тебя тоже не ловятся?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #9 - 22. Апреля 2015 :: 10:34
Печать  
pavlo писал(а) 22. Апреля 2015 :: 09:48:
Ага, по первой она смотрит в классах, нужно было там закомментировать все. Но все же странно. В том варианте писанном с Артуром тоже все ранее работало Улыбка
Кстати Подключение и Отключение из предприятие у тебя тоже не ловятся?

Не ловятся. Я их искуственно генерирую.
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #10 - 22. Апреля 2015 :: 11:05
Печать  
успокоил Улыбка спс, так работает что и нужно было
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
varelchik_f
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Местоположение: Киев
Зарегистрирован: 10. Апреля 2014
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #11 - 23. Апреля 2015 :: 04:02
Печать  
Добавлю от себя.
1с++ 3.2.4.3
FormEx 2.0.5.104
у меня эти события в глобальнике.
Все пашет на ура.
в стандартный журнал пишется только вход выход и работа конфигуратора.
все остальное в отдельный журнал.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик - События журнала регистрации.
Ответ #12 - 23. Апреля 2015 :: 12:51
Печать  
Всем привет!
Я мало что уже помню Улыбка
Главное - нужно разделять события и события ГМ по разным классам, тогда никаких проблем не возникало.
В глобальнике не нужны обработчики, в спец. зарегистрированном классе прекрасно ловятся события ГМ
ЗЫ могу и ошибаться
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать