Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Событие_ЗаписьСобытияЖурналаРегистрации() (число прочтений - 4366 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Событие_ЗаписьСобытияЖурналаРегистрации()
02. Сентября 2008 :: 05:58
Печать  
Функция Событие_ЗаписьСобытияЖурналаРегистрации(EventCategory,Event, EvType, comment, object, ObjDescr)
Как получить из object реальную ссылку на объект?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #1 - 03. Сентября 2008 :: 10:17
Печать  
А что в итоге ты собираешься делать с этим объектом? Какая задача изначально?
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #2 - 03. Сентября 2008 :: 10:49
Печать  
я его собираюсь так вот:
                 Текст="
                 |SET NOCOUNT ON
                 |Insert Into log (DateTimePos,UserName,EventCategory,Event,EvType,comment,object,ObjDescr)
                 |Values (Event)+"','"+СокрЛП(EvType)+"'
                 |,'"+СокрЛП(comment)+"',:Объект~~,'"+СокрЛП(ObjDescr)+"')

закинуть в SQL журнал

глЖурналРегистрации.УстановитьТекстовыйПараметр("Объект",object);
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #3 - 03. Сентября 2008 :: 10:57
Печать  
Я делаю так:
Код
Выбрать все
ТекстЗапроса = "
	|INSERT INTO [IRP].[dbo].syslog (EVENT_TYPE, EVENT, CATEGORY, COMMENT, OBJECTID, OBJECT, NEWDATE, USERNAME, MODE)
	|VALUES (:EVENT_TYPE, :EVENT, :CATEGORY, NULLIF(:COMMENT, ''), NULLIF(:OBJECTID, ''), NULLIF(:OBJECT, ''), GETDATE(), :USERNAME, :MODE)";
RS.УстановитьТекстовыйПараметр("EVENT_TYPE", EVENT_TYPE);
RS.УстановитьТекстовыйПараметр("EVENT", EVENT);
RS.УстановитьТекстовыйПараметр("CATEGORY", CATEGORY);
RS.УстановитьТекстовыйПараметр("COMMENT", COMMENT);
RS.УстановитьТекстовыйПараметр("OBJECTID", OBJECTID);
RS.УстановитьТекстовыйПараметр("OBJECT", OBJECT);
RS.УстановитьТекстовыйПараметр("USERNAME", ИмяПользователя());
RS.УстановитьТекстовыйПараметр("MODE", ?(МонопольныйРежим() = 1, "M", "E"));
 


вот пример обратной конверсии
Код
Выбрать все
Meta = СоздатьОбъект("MetaDataWork");
Если ТипЗначенияСтр(Объект) = "Документ" Тогда
  Источник.УстановитьТекстовыйПараметр("OBJECTID", "O/" + Meta.ИДДокумента(Объект.Вид()) + "/" + _StrToId(СокрЛП(Meta.ЗначениеВСтрокуБД(Объект.ТекущийДокумент()))));
ИначеЕсли ТипЗначенияСтр(Объект) = "Справочник" Тогда
  Источник.УстановитьТекстовыйПараметр("OBJECTID", "B/" + Meta.ИДСправочника(Объект.Вид()) + "/" + _StrToId(СокрЛП(Meta.ЗначениеВСтрокуБД(Объект.ТекущийЭлемент()))));
КонецЕсли;
 



  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #4 - 03. Сентября 2008 :: 11:13
Печать  
Вот и решение Улыбка
Надо бы его в доку закинуть Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #5 - 03. Сентября 2008 :: 11:17
Печать  
Артур!
ты немного не прав.
потому как OBJECT это что-то типаУжас/6016/(001)109124
так что надо эту строку разбирать.
А вот у ПоставщикДанных::ЖурналРегистрации
есть свойство Объект
оно как раз и конвертит эту строку в реальную ссылку на объект.
может все таки добавить еще одно свойство в перехват используя уже существующий код 1С++?
Кто тама у вас писал этого поставщика?
Может с ним посоветоваться?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #6 - 03. Сентября 2008 :: 11:23
Печать  
Поиск объекта в самом событии займет кучу времени. А событие вызывается для каждого объекта неоднократно.
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #7 - 03. Сентября 2008 :: 11:28
Печать  
Arta писал(а) 03. Сентября 2008 :: 11:23:
Поиск объекта в самом событии займет кучу времени. А событие вызывается для каждого объекта неоднократно.

Причем тут поиск?
Обект ведь в Поставщике каким-то обработ преобразуется из:
O/6016/(001)109124?
Или я что-то не догоняю?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #8 - 03. Сентября 2008 :: 12:01
Печать  
Можно и написать этот код внутри 1С++, только пока что у меня времени на это нету Печаль
Пиши в багзиллу, как-нибудь сделаю.

ЗЫ без багзиллы шага не ступлю Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #9 - 04. Сентября 2008 :: 06:20
Печать  
Зарегил в багзиле.
4128.
Ждемс решения!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #10 - 25. Сентября 2008 :: 11:24
Печать  
Исправлено. Будет в очередной версии.

ЗЫ все оказалось очень просто - у 1С есть спец.системная функция для получения данных из такой строки Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #11 - 25. Сентября 2008 :: 14:08
Печать  
Здорово!
Будем считать что вопрос закрыт.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #12 - 27. Сентября 2008 :: 05:12
Печать  
Исправлено в версии 3.0.1.18
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Событие_ЗаписьСобытияЖурналаРегистрации()
Ответ #13 - 27. Сентября 2008 :: 22:29
Печать  
Это я уже заметил.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать