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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Перехват методов Записть()
10. Февраля 2010 :: 05:53
Печать  
Народ, кто нить решал проблему перехватов Записать() тоесть как такие вещи ловить, чтобы записывать в журнал, у нас в конторе еще до меня сделали так что огромная масса документов проводится или еще чего делается по средствам глобальных процедур или обработок и этих данных нет о документе Печаль
Может есть реальная возможность ловить это все централизовано и писать хотя бы статус записано, везде проставить фиксацию в ЗаписатьВЖурналРегистрации не реально, да и снова набежит то, чего не будет не я один правлю базу.  Озадачен
  

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


Дорогу осиливает идущий

Сообщений: 137
Зарегистрирован: 07. Июля 2006
Re: Перехват методов Записть()
Ответ #1 - 10. Февраля 2010 :: 07:53
Печать  
(0) Триггер на журнал документов. Если SQL.
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #2 - 10. Февраля 2010 :: 11:12
Печать  
val писал(а) 10. Февраля 2010 :: 07:53:
(0) Триггер на журнал документов. Если SQL.

а что даст триггер, да еще на журнал документов если есть и справочники, да и потом нужно потом понять кто из пользователей сделал это Печаль
  

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



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Перехват методов Записть()
Ответ #3 - 10. Февраля 2010 :: 11:48
Печать  
Кхм.... смотрите шире, автор. Обратите внимание на ветку про авторизацию пользователей в SQL, также можно повесить триггеры и на таблицы справочников. А речь изначально у Вас шла о документах - вот вам и посоветовали повесит триггер на _1sjourn.
  
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #4 - 10. Февраля 2010 :: 12:05
Печать  
авторизация в скуле мне не нужна ибо там так права не разрулить, отсюда только проблем еще больше огребусь Печаль
на счет триггеров я лично вообще толком ничего не знаю, но вопрос как то летает в воздухе ну поймал он изменения и что делать с ними, когда скуль юзеров 1с не знает, а в купе с авторизацией юзать нарвусь на то, что толком прав все равно там не разрулить и какой смысл тогда их там создавать?
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #5 - 10. Февраля 2010 :: 12:18
Печать  
pavlo писал(а) 10. Февраля 2010 :: 12:05:
авторизация в скуле мне не нужна ибо там так права не разрулить, отсюда только проблем еще больше огребусь Печаль
на счет триггеров я лично вообще толком ничего не знаю, но вопрос как то летает в воздухе ну поймал он изменения и что делать с ними, когда скуль юзеров 1с не знает, а в купе с авторизацией юзать нарвусь на то, что толком прав все равно там не разрулить и какой смысл тогда их там создавать?

При входе в 1с Вы можете поместить в отдельную таблицу Вашу информацию о пользователе + spid sql процесса.
При срабатывании тригера у Вас есть spid а значит и вся информация о пользователе.
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #6 - 10. Февраля 2010 :: 15:01
Печать  
угу спасибо, однако а как выяснить из какой обработки или документа записывалось? Улыбка
  

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



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Перехват методов Записть()
Ответ #7 - 10. Февраля 2010 :: 15:27
Печать  
pavlo писал(а) 10. Февраля 2010 :: 15:01:
угу спасибо, однако а как выяснить из какой обработки или документа записывалось? Улыбка

Никак. Кроме разве что внедрять механизмы перехвата открытия обработок по времени, но в SQL присвоить идентификатор объекта который производит изменение в базе как-то нереально.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #8 - 10. Февраля 2010 :: 15:38
Печать  
pavlo писал(а) 10. Февраля 2010 :: 15:01:
угу спасибо, однако а как выяснить из какой обработки или документа записывалось? Улыбка

При старте обработки писать доп информацию в протокол.
у Вас также уже есть si_id и все информация о пользователе.

Но по моему все как то все не так.
Предположим обработка назначает менеджерам максималый размер скидки. Ну и  что мы узнаем что кто-то что-то записал.
На мой взгляд гораздо правильнее
каждый сотрудник имеет доступ не ко всем обработкам.
на каждой из обработок сотрудник может выставить не все параметры а только за какие он отвечает.
Т.е. идея если сотрудник открыл обработку и выбрал параметры
в ней значит он отвечает за все свои действия.
"Неадекватным" сотрудникам доступ к обработкам должен быть закрыт.

И тогда если уж нужно что либо протоколировать то остается итерактивный ввод документов и справочников а там
уже ПриЗАписи протоколируй что считаешь нужным.

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #9 - 11. Февраля 2010 :: 04:03
Печать  
Z1 писал(а) 10. Февраля 2010 :: 15:38:
pavlo писал(а) 10. Февраля 2010 :: 15:01:
угу спасибо, однако а как выяснить из какой обработки или документа записывалось? Улыбка

При старте обработки писать доп информацию в протокол.
у Вас также уже есть si_id и все информация о пользователе.

Но по моему все как то все не так.
Предположим обработка назначает менеджерам максималый размер скидки. Ну и  что мы узнаем что кто-то что-то записал.
На мой взгляд гораздо правильнее
каждый сотрудник имеет доступ не ко всем обработкам.
на каждой из обработок сотрудник может выставить не все параметры а только за какие он отвечает.
Т.е. идея если сотрудник открыл обработку и выбрал параметры
в ней значит он отвечает за все свои действия.
"Неадекватным" сотрудникам доступ к обработкам должен быть закрыт.


Если бы в жизни все так было просто, компания крупная, однако по системе оптимизации расходов одни и те же люди делают много чего и как правило мало за что отвечают в итоге, точнее если что им покажут пальчиком ай-ай-ай и скажут разберись как исправить или еще что, в итоге отдел разработки косые, в смысле доп роботы по исправлению за всеми и тут уж тема безсмысленна, так как уже вопрос сотни раз поднимался и все бестолку, народ меняется часто и права летают туда сюда. В итоге ка кне рули с правами (а они по части отчетности относительные есть) в любом случае столько ньансов и нет людей четко отвечающие за одно, толпа отвечающая за некоторые границы... и то отвечающая ли... в итоге даже когда что то произошло, излюбленное высказывание "это у нас база кривая и сама все делает" - вот как раз хотелось от учить от этого и четко тыкать лицом что вот ТЫ сделал там изменения и пока не важно четко определяющие какие, главное что делал!
  

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


Дорогу осиливает идущий

Сообщений: 137
Зарегистрирован: 07. Июля 2006
Re: Перехват методов Записть()
Ответ #10 - 11. Февраля 2010 :: 11:36
Печать  
(9) Так Вам все уже расписали.
1. При начале работы запоминаете sp_id и имя пользователя.
2. Триггер, имея sp_id, пишет имя пользователя, время, документ, который он корректировал, а также действие над документом (добавление, корректировка, удаление, отмена проведения, замена контрагента ....)
3. Во все обработки добавить запись в протокол, кто и когда (дата и время) запустил.
4. Имея лог от триггера и лог от обработок, по имени пользователя и времени находите, какая именно обработка была запущена.
5. Устриваете публичную экзекуцию.
  
Наверх
 
IP записан
 
Noy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Ноября 2009
Re: Перехват методов Записть()
Ответ #11 - 26. Февраля 2010 :: 11:10
Печать  
Предложу идею:
делаешь класс - наследник объекта "Справочник" и в метод записать() добавляешь ЗаписьЖурналаРегистрации
аналогично поступаешь с документами


вот тут: http://www.1cpp.ru/forum/YaBB.pl?num=1175586636 есть обсуждение
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Перехват методов Записть()
Ответ #12 - 27. Февраля 2010 :: 12:14
Печать  
спасибо, идея интересная попробую тоже....
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать