отключение регистрации событий в журнале регистрации (пообъектно)

1. infostart user 20 07.10.14 13:28 Сейчас в теме
как исключить регистрацию событий выбранных объектов их журнала регистрации?
например, есть документ РТУ, как сделать так, чтобы события по этому документу в журнал не писались?
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. AllexSoft 10.10.14 11:41 Сейчас в теме
(1) infostart user, присоединяюсь к теме.. уже долго ищу как это сделать, похоже никак ( в 8.3 там журнал в SQLLite ) там можно сделать внешний источник - журнал и вычищать все записи ненужные из журнала по регламентному заданию .. только вот так через задницу.
ПС: почему в 1С не догадаются сделать в свойствах метаданных как вести журналирование этого объекта + какую нибудь процедурку типа ПриЗаписиВЖурналРегистрации в модуле объекта - для меня загадка ( помоему это на поверхности...
ojiojiowka; +1 Ответить
7. infostart user 20 10.10.14 12:21 Сейчас в теме
(6) AllexSoft, или просто свойство, вести журналирование или нет, если да, то опционально выбрать события для объекта, которые нужно журналировать
2. Dnki 4 08.10.14 00:02 Сейчас в теме
Я пытался разобраться в этой теме. Но у меня была чуть другая задача: не регистрировать изменения объектов программным способом.

Ответ: Похоже никак. Пока общественность дает такой ответ:
1)отключить в системе журналирование.
2)программно записывать в журнал при событиях записи.
3. infostart user 20 08.10.14 11:21 Сейчас в теме
(2) Dnki,
программно записывать в журнал при событиях записи.
- нафиг такое счастье.
4. platon_ 10 09.10.14 19:48 Сейчас в теме
(3) infostart user, делается всё очень просто) подписка на событие запись) для всех объектов)
5. infostart user 20 10.10.14 11:38 Сейчас в теме
(4) platon_, посмотрите вначале, что фиксируется в журнале, а потом говорите просто или нет.
ojiojiowka; +1 Ответить
8. infostart user 20 10.10.14 12:23 Сейчас в теме
добавлю вознаграждение, присоединяйтесь, кому интересно)
10. AllexSoft 10.10.14 12:27 Сейчас в теме
(8) infostart user, у меня есть регистр "История просмотра объектов", туда пишется все что пользовать просто просматривал.. представьте какой срач наводит это в ЖР ? а в типовой УТ11 есть регистры типа АналитикаУчетаНоменклатуры + такой же по партнерам.. там тоже еще тот срач когда туда пишутся объекты, коих оооочень много...
14. infostart user 20 10.10.14 12:45 Сейчас в теме
(10) AllexSoft, есть у тебя регистры и что дальше? у всех есть подобные регистры, а я про журнал регистрации спрашиваю.

(12) infostart user, ща я напишу реальный пример) мне как раз мега актуально..
ПС: хотя там в справке этот пример имеется..
давай, жду не дождусь)
15. AllexSoft 10.10.14 13:09 Сейчас в теме
(14) infostart user,
//Выполняется в привелигированном режиме при начале работы системы (в установка параметров сеанса БСП)
Процедура УстановитьПараметрыЖурналаРегистрацииДляОбъектов() Экспорт 
	УстановитьПривилегированныйРежим(Истина);
	
	// Событие Доступ
	ОписанияДоступ = Новый Массив;
	ПоляДоступа = Новый Массив;
	ПоляРегистрации = Новый Массив;
	
	Доступ = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации;
	Доступ.Объект = "РегистрСведений.ИсторияПросмотраОбъектов";
	Доступ.ПоляРегистрации = ПоляРегистрации;
	Доступ.ПоляДоступа = ПоляДоступа;
	ОписанияДоступ.Добавить(Доступ);	
	
	
	ИспользованиеСобытия = Новый ИспользованиеСобытияЖурналаРегистрации;
	ИспользованиеСобытия.Использование = Ложь;
	ИспользованиеСобытия.ОписаниеИспользования = ОписанияДоступ;
	
	УстановитьИспользованиеСобытияЖурналаРегистрации(
	"_$Data$_.New",
	ИспользованиеСобытия);
	
	УстановитьИспользованиеСобытияЖурналаРегистрации(
	"_$Data$_.Update",
	ИспользованиеСобытия);	
КонецПроцедуры
Показать

проверил) все работает как надо )

ПС: вам надо будет добавить в конец процедурки еще
	УстановитьИспользованиеСобытияЖурналаРегистрации(
	"_$Data$_.Delete",
	ИспользованиеСобытия);
	УстановитьИспользованиеСобытияЖурналаРегистрации(
	"_$Data$_.Post",
	ИспользованиеСобытия);
	УстановитьИспользованиеСобытияЖурналаРегистрации(
	"_$Data$_.Unpost",
	ИспользованиеСобытия);
Показать
16. infostart user 20 10.10.14 13:34 Сейчас в теме
(15) AllexSoft, отлично, проверю - отпишусь
17. infostart user 20 10.10.14 15:14 Сейчас в теме
(15) AllexSoft,
//Выполняется в привелигированном режиме при начале работы системы (в установка параметров сеанса БСП)

это должно делаться каждый раз при запуске 1с? а нельзя просто 1 раз заблочить и все?
18. AllexSoft 10.10.14 15:30 Сейчас в теме
(17) infostart user, ну я каждый раз поставил.. в СП не написано что эти параметры как то сохраняются.. поэтому .. хотя сейчас проверю )
ПС: проверил, да, каждый раз надо устанавливать эти настройки. они как параметры сеанса не сохраняются..
19. infostart user 20 10.10.14 16:00 Сейчас в теме
(18) AllexSoft,
1. походу можно только один раз устанавливать.
2. сделал так и блокировка регистрации сработала для всех документов
 УстановитьПривилегированныйРежим(Истина);
    
    // Событие Доступ
    ОписанияДоступ = Новый Массив;
    ПоляДоступа = Новый Массив;
    ПоляРегистрации = Новый Массив;
    
    Доступ = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации;
    Доступ.Объект = "Документ.ИмяДокумента";
    Доступ.ПоляРегистрации = ПоляРегистрации;
    Доступ.ПоляДоступа = ПоляДоступа;
    ОписанияДоступ.Добавить(Доступ);    
    
    ИспользованиеСобытия = Новый ИспользованиеСобытияЖурналаРегистрации;
    ИспользованиеСобытия.Использование = Истина;
    ИспользованиеСобытия.ОписаниеИспользования = ОписанияДоступ;
    
    УстановитьИспользованиеСобытияЖурналаРегистрации(
    "_$Data$_.New",
    ИспользованиеСобытия);
    
    УстановитьИспользованиеСобытияЖурналаРегистрации(
    "_$Data$_.Update",
    ИспользованиеСобытия);
	
	УстановитьИспользованиеСобытияЖурналаРегистрации(
    "_$Data$_.Delete",
    ИспользованиеСобытия);
	
	УстановитьИспользованиеСобытияЖурналаРегистрации(
    "_$Data$_.Post",
    ИспользованиеСобытия);
	
	УстановитьИспользованиеСобытияЖурналаРегистрации(
    "_$Data$_.Unpost",
    ИспользованиеСобытия);
Показать


3. я же говорю, что не получится, т.к. я уже пытался так делать.
все дело в том, что (особое внимание на послед. строчку) доп. описание можно делать только для событий доступа)
ОписаниеИспользованияСобытияДоступЖурналаРегистрации (EventLogAccessEventUseDescription)
ОписаниеИспользованияСобытияДоступЖурналаРегистрации (EventLogAccessEventUseDescription)
Свойства:

Объект (Object)
ПоляДоступа (AccessFields)
ПоляРегистрации (RegistrationFields)

Конструкторы:

Основной

Описание:

Используется при описании использования события _$Access$_.Access.
Показать

и в примере в 1сном, просто блокируют доступ, а не данные. это немного разные вещи.
Sheriff1987; +1 Ответить
20. AllexSoft 10.10.14 16:54 Сейчас в теме
(19) infostart user,
1. походу можно только один раз устанавливать.

нельзя.. я проверил, каждый раз надо устанавливать где нибудь в событиях при запуске системы.. ну я устанавливаю в при установке параметров сеанса...
2. сделал так и блокировка регистрации сработала для всех документов

да.. а вам что надо было? вам надо что, скажем РТУ только по определенному контрагенту на записывались в журнал ? или что.. опишите реальный пример..
3. я же говорю, что не получится, т.к. я уже пытался так делать.
и в примере в 1сном, просто блокируют доступ, а не данные. это немного разные вещи.

обратите на событие _$Data$_ ..это как раз данные...
21. infostart user 20 10.10.14 16:58 Сейчас в теме
(20) AllexSoft,
да.. а вам что надо было? вам надо что, скажем РТУ только по определенному контрагенту на записывались в журнал ? или что.. опишите реальный пример..

нужно чтобы все события по РТУ не писались в журнал, а все остальное, чтобы писалось.
просто исключить регистрацию записи событий для одного объекта.
обратите на событие _$Data$_ ..это как раз данные...

я обратил, я все понимаю.
вы обратите внимание на справку метода ОписаниеИспользованияСобытияДоступЖурналаРегистрации.
там написано "Используется при описании использования события _$Access$_.Access.".

т.е. эти строки вообще роли не играют:
  Доступ = Новый ОписаниеИспользованияСобытияДоступЖурналаРегистрации;
    Доступ.Объект = "Документ.ИмяДокумента";
    Доступ.ПоляРегистрации = ПоляРегистрации;
    Доступ.ПоляДоступа = ПоляДоступа;
    ОписанияДоступ.Добавить(Доступ);    


нельзя.. я проверил, каждый раз надо устанавливать где нибудь в событиях при запуске системы.. ну я устанавливаю в при установке параметров сеанса...

так может из-за того, что устанавливает в параметрах сеанса оно и работает у вас только в контексте сенаса.
я установил блок обработкой, зашел под другим пользователем, перезаписал документ и записей не было.
потом снял блок обработкой, опять зашел под другим юзером, перезаписал документ, и записи были.
22. AllexSoft 10.10.14 17:04 Сейчас в теме
(21) infostart user, я понял в чем засада.. там все от версии платформы зависит похоже.. у вас какая ?
23. infostart user 20 10.10.14 17:07 Сейчас в теме
(22) AllexSoft, 8.2.18.82 и еще есть 8.3.4.482 (там точно так же)
24. AllexSoft 10.10.14 17:11 Сейчас в теме
(23) infostart user, похоже только вариант сделать так: в перед записью выключать ЖР через УстановитьИспользованиеСобытияЖурналаРегистрации, а в событии ПослеЗаписи его включать снова.. (
ПС: я изначально не заметил что у меня события которые я выключил выключились на все объекты (( эхх!
25. infostart user 20 10.10.14 17:14 Сейчас в теме
(24) AllexSoft, омг, нет, дело в том, что документы которым нужно запретить журналирование, каждую секунду записываются и перезаписываются, это делается фоновым задание.
если каждую секунду отключать и включать журналирование - потеряем много данных по событиям остальных документов.

так а что с платформой не то?
26. infostart user 20 10.10.14 17:15 Сейчас в теме
(24) AllexSoft,
ПС: я изначально не заметил что у меня события которые я выключил выключились на все объекты (( эхх!

во-во, нужно внимательно читать справку и тестировать хорошенько такие дела)
27. AllexSoft 10.10.14 17:50 Сейчас в теме
(26) infostart user, ну я с радости ) эхх еще раз.. 1с она такая ( недоработала
9. ufedor 58 10.10.14 12:25 Сейчас в теме
Вообще-то средства языка позволяют провести тонкую настройку ЖР
УстановитьИспользованиеСобытияЖурналаРегистрации()
в справке пример как включить отдельное событие для отдельного объекта
EugeneMIPT; гыук320; Allexe8.1; AllexSoft; +4 Ответить
11. AllexSoft 10.10.14 12:28 Сейчас в теме
(9) ufedor, спасип тебе большое! кажется то что надо...!
12. infostart user 20 10.10.14 12:43 Сейчас в теме
(9) ufedor, у меня не получилось настроить так, чтобы события нужного мне документа не регистрировались.
пожалуйста, покажите пример.

в справке пример как включить отдельное событие для отдельного объекта
в справке пример как включить или выключить доступ, это максимум, что можно "тонко" настроить.

если кто-то знает точно как исключить регистрацию событий объекта в журнале - приведите реальный пример.
не пишите разную чушь, типа, что вот есть метод и им пользуйся.
я шуршал инет перед тем как создать тему и все это видел, пробовал сам написать код, который бы решил мою задачу, но не получилось, поэтому обратился сюда.

если знаете как и чем - жду реальный пример, все остальное неинтересно.
Ustasu1; Alexx48; COMPER; +3 Ответить
13. AllexSoft 10.10.14 12:45 Сейчас в теме
(12) infostart user, ща я напишу реальный пример) мне как раз мега актуально..
ПС: хотя там в справке этот пример имеется..
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот