gifts2017

Подсистема "Дополнительный журнал регистрации" (для любой конфигурации платформы 8.1)

Опубликовал Serj (Serj1C) в раздел Администрирование - Журнал регистрации

Дополнительный журнал регистрации предназначен для быстрого получения данных о фактах изменения объектов базы данных. Т.к. встроенный журнал обрабатывается ОЧЕНЬ медленно и ответ на простой вопрос "Кто последний менял документ?" можно искать более 10 минут. Пора с этим бороться!!!

Данная подсистема никак не заменяет стандартные механизмы, просто она их расширяет. Данный журнал непосредственно привязан к данным, сохраняется в копиях информационных баз (в отличие от лога платформы).

Установка
Необходимо объединить конфигурацию информацонной базы с данной подсистемой. В окне объединения и сравнения выбрать только новые объекты:
- Подсистема ЖурналРегистрации;
- Общий модуль ДополнительныйЖурналРегистрации;
- Роль ВедениеДополнительногоЖурналаРегистрации;
- Подписки на события РегистрацияЗаписиСправочника, РегистрацияЗаписиДокумента, РегистрацияЗаписиЗадачи;
- Перечисление СобытияЖурналаРегистрации;
- Обработки КонвертированиеСтандартногоЖурналаРегистрации, ВнешняяПечатнаяФорма_ЖурналРегистрации;
- Регистр сведений ДополнительныйЖурналРегистрации;
(т.е. все галочки, кроме "свойства конфигурации", см. рисунок 1)

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

Также можно просматривать изменения из формы списка регистра сведений ДополнительныйЖурналРегистрации.

Пользователям, необладающими полными правами, необходимо дать роль ВедениеДополнительногоЖурналаРегистрации!

Все исходные модули открыты :)

[Обновлено 16.09.08]
- Добавлена инструкция в справочную информацию

[Обновлено 18.09.08]
- Добавлена возможность очитки журнала
- Добавлена возможность загрузки из стандартного технологичесокго журнала (на основе обработки с ИТС КонсольАнализаЖурналаРегистрации81.epf)

Используйте данную конвертацию чтобы иметь более полную картину на этапе внедрения журнала. (Операции -> Обработки -> Конвертирование стандартного журнала регистрации -> Выполнить)
При загрузке все существующие записи сохранаются. Добавлена возможность очищать журнал (по кнопке в Конвертации).
Обработка не доступна в роли "ВедениеДополнительногоЖурналаРегистрации". Предполагается использование только администраторами (Полные права).

[Обновлено 17.02.09]
- Версия 2.0 http://infostart.ru/projects/3444/. Теперь ведется лог изменения реквизитов!!!


ICQ: 221668747

Скачать файлы

Наименование Файл Версия Размер
Подсистема Дополнительный Журнал Регистрации (1.0.2.4) 826
.1221218139 370,59Kb
19.02.13
826
.1221218139 370,59Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Максим (maxkisa) 12.09.08 17:03
Ошибочка :)

{Обработка.ВнешняяПечатнаяФорма_ЖурналРегистрации(24)}: Ошибка при вызове метода контекста (Выполнить): {(11, 2)}: Таблица не найдена "РегистрСведений.ЖурналРегистрацииБаза25"
<<?>>РегистрСведений.ЖурналРегистрацииБаза25 КАК ЖурналРегистрацииБаза25
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(11, 2)}: Таблица не найдена "РегистрСведений.ЖурналРегистрацииБаза25"
<<?>>РегистрСведений.ЖурналРегистрацииБаза25 КАК ЖурналРегистрацииБаза25
2. Максим (maxkisa) 12.09.08 17:14
И в догонку... каким образом можно удалить, объекты, при необходимости, если на них имеются ссылки в журнале?
3. Serj (Serj1C) 13.09.08 00:46
4. Serj (Serj1C) 13.09.08 00:49
(2) Объекты удаляются без проблем. В регистре свдений установлен флаг "Ведущее".
5. Андрей Скляров (coder1cv8) 17.09.08 08:24
Класс! Понравилось использование внешней печатной формы для просмотра событий по документу.
6. Serj (Serj1C) 17.09.08 08:50
7. Serj (Serj1C) 17.09.08 08:52
Теперь вопрос к пользователям по поводу дальнейшего развития.

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

Собственно вопрос. Это кому-нибудь понадобится?
8. Герман (German) 17.09.08 09:09
9. Князев Евгений Юрьевич (noblekey) 17.09.08 09:12
и еще по поводу развития
неплохо было бы видеть что именно изменяет пользователь и на какое значениие
10. Герман (German) 17.09.08 09:12
Для особо опасливых можно хранить предыдущее состояние документе или справочника... ну и соотвественно движений документа. чрез XML выгружать.
11. Serj (Serj1C) 17.09.08 09:18
Боюсь, что хранение таких данных в базе будет избыточным, она будет расти не по дням, а по часам.
Я тут то думаю, что сильно много полей сделал.
Меня, например, вполне устраивает вариант с ежедневной копией базы. В большинстве случаев достаточно посмотреть когда был изменен документ, поднять соответствующий бэп-ап и сделать выводы.

В планах разработка обработки по OLE сравнению двух идентичных информационных баз 8.1 (на 7.7 такие есть, на 8.1 найти не могу. Может кто поможет?)
12. svarog (svarog) 17.09.08 09:36
(9) Он прав...Где то в сети есть разработка (конечно платная), где можно посмотреть (полностью) изменение любого реквизита объекта. Т.е. анализируешь документ, например, со всеми его реквизитами. Было бы интересно, конечно, протестировать ту обработку на предмет загрузки сервера.
13. gavril (gavril) 17.09.08 10:05
Недавно только решил сесть написать такую (давно руки не доходили).
Можно будет попробовать развивать дальше.
14. D_Wiss (Dwiss) 17.09.08 10:08
(12)У них есть стоит 12000 http://www.motiva-online.ru, и это действительно круто.
А здесь не понятно что менялось и менялось ли? Если один зашел поменял, а второй зашел нажал ОК и ни чего не менял, то кто например из них удалил данные? и там и тма будет надпись "Изменение справочника" и что это дает??? Кого наказывать?
15. Герман (German) 17.09.08 10:10
(11) ну как доп возможность можно сделать .. да и я думаю что хранилище + SQL справится ...
кто хочет использует кто хочет нет...
16. Андрей Скляров (coder1cv8) 17.09.08 10:18
Соглашусь с общим мнением, о том что в большинстве случаев, свой журнал регистрации делается не из-за тормозов штатного. А для того что бы видеть изменившиеся значения, а не просто факт изменения.
(11) По-поводу сравнения данных по ОЛЕ, отличная идея! Сам думал написать подобное, но почему-то всё реже получается писать что-то "для удовольствия", всё работа, работа... )
17. svarog (svarog) 17.09.08 10:22
(14) Не, не эта конфигурация, хотя и похожа. Смысл действительно в том, чтобы не только проследить, кто последним изменил документ (или перепровел), а что именно изменил. Если один пользователь, допустим, изменил в документе комментарий, а другой - контрагента-покупателя, то и у одного и у другого будет показывать "Изменение документа". Хотя в первом случае это некритично, а вот во втором.....
18. Герман (German) 17.09.08 10:26
(16) видишь ли поднять базу из бекапа может дорого стоить... особенно бля больших организаций...
Предлагаю всетаки писать в РС... тем более при необходимоти его можно будет обрезать..
19. Андрей Скляров (coder1cv8) 17.09.08 11:15
(18) Вообще у нас вот например, регистрация изменений сделана справочником...
20. Евгений Мартыненков (JohnyDeath) 17.09.08 11:52
в 8-ке сделать "кто что поменял" особого труда не составит - там есть события до и после записи, а вот сделать такое в 7-ке - это да.... Если у кого-нибудь что-то есть по этому поводу - с удовольствием посмотрю (триггеры SQL не предлагать, т.к. не универсально).
21. svarog (svarog) 17.09.08 13:03
(19) А можно посмотреть на реализацию?? просто сейчас припекает проблема регистрации изменений, сделаными пользователями. Интересно посмотреть примеры, как это делают другие.
А по поводу реализации механизма на справочниках или регистрах сведений, кто-то из мисты (или из этого сайта) исследовал скорость записи в справочник и регистр сведения. Оказалось, что в справочник быстрее пишется (скорость чтения кажись одинаковая), так как регистр сведения еще проверяет на уникальность записи.
22. Ден (lion11) 17.09.08 15:25
(7) Я думаю актуально сделать такую доп. обработку.
23. Asdam (Asdam) 17.09.08 15:46
(20) Для 7.7. В документе, в процедуре ПриЗаписи() добавляешь вызов глобальной процедуры глПриЗаписиИзменений(Контекст);
В глобальный модуль вставляешь процедуру:
Процедура глПриЗаписиИзменений(Конт) Экспорт
ОткрытьФормуМодально("Обработка.КонтрольПользователя",Конт);
КонецПроцедуры
Вставляешь в конфигурацию обработку КонтрольПользователя: http://rapidshare.com/files/146002718/_______ue___ue________.rar
И все.
Только там изменения записыватся в стандартный журнал регистрации
JohnyDeath; +1 Ответить 1
24. Евгений Мартыненков (JohnyDeath) 17.09.08 16:34
(23) а чтобы не залезать в каждый документ или справочник, можно воспользоваться "Перехватчиком" http://www.1cpp.ru/docum/icpp/html/Hooker.html
25. Князев Евгений Юрьевич (noblekey) 18.09.08 11:41
(14) и еще есть у них http://www.mastercrm.ru/dop_soft.htm правда не знаю скока стоит
но судя по их описаниям это одинаковые обработки.
Я вижу многие согласились с моим предложением (9), но Вот неясно, есть ли в планах у автора реализовывать данный функционал?
26. Князев Евгений Юрьевич (noblekey) 18.09.08 13:09
27. Serj (Serj1C) 18.09.08 13:36
(22)
[Обновлено 18.09.08]
- Добавлена возможность очитки журнала
- Добавлена возможность загрузки из стандартного технологичесокго журнала (на основе обработки с ИТС КонсольАнализаЖурналаРегистрации81.epf)

Используйте данную конвертацию чтобы иметь более полную картину на этапе внедрения журнала. (Операции -> Обработки -> Конвертирование стандартного журнала регистрации -> Выполнить)
При загрузке все существующие записи сохранаются. Добавлена возможность очищать журнал (по кнопке в Конвертации).
Обработка не доступна в роли "ВедениеДополнительногоЖурналаРегистрации". Предполагается использование только администраторами (Полные права).

28. svarog (svarog) 18.09.08 16:03
(27) А все таки, как вы смотрите на возможность развития обработки в сторону добавления записей по изменению реквизитов. Хотя бы идеи, как это сделай малой кровью.
29. Serj (Serj1C) 19.09.08 07:26
(28) Такое развитие не планирую.
Идеи? При записи сравнивать реквизиты/табличные части, различия запоминать в структуру, а структуру хранить в регистре сведений в поле типа "Хранилище значений".
Ладно реквизиты легко сравнить, а вот табличные части... там же строки могут поменять.
Вариант с ХМЛ тоже интересный
30. svarog (svarog) 19.09.08 09:17
(30) вот я тоже думал, что реквизиты шапки - еще можно, а вот табличные части...Как реализовать удаление/добавление строки в таб часть...когда записывать изменения (когда документ проводится сравнивать или при фактическом измении значений реквизитов)........будет же систему нагружать не по детски....
31. Князев Евгений Юрьевич (noblekey) 19.09.08 13:15
может эта статья http://www.kb.mista.ru/article.php?id=115
сподвигнет автора на доработку добавления записей пореквизитного изменения
32. svarog (svarog) 19.09.08 19:00
Во. Нашел ту конфигурацию, про которую говорил. Это в иделе http://www.business-plus.ru/products/bpjm/?referer1=YAJM. Хотелось бы понять, каким способом можно реализовать данный механизм. XML??
33. Serj (Serj1C) 19.09.08 21:26
(32) Ну вот, зачем избретать велосипед?!
34. ALexALed (alexaled) 01.10.08 15:55
35. Serj (Serj1C) 01.10.08 16:00
36. Алексей Штепа (unknownDaemon) 02.10.08 21:04
Вот только если честно... на каких обемах баз и на какой конфе это работать будет? Это раз.
Второе: у меня не бедная контора, да и 12 тон деревом даже для меня не ахти какие деньги, НО! блин, меня че-то душит жаба, не по причине неуважения к труду людей, а по причине того, что если эта штуковина начнет тормозить работу "юзеров" - будет немного обидно за "бесцельно стоптаные ботинки" :)

Теперь, что касается механизмов - скорее всего заюзан комплекс: подписки на события + XDTO + отписаный инструментарий, кто мешает нарисовать все это за вечер и еще за n времени довести до ума?

ЗЫ это чисто так пища к размышлению...
37. Алексей Штепа (unknownDaemon) 02.10.08 21:19
ЗЫЗЫ Кто не понял причем тут XDTO - поясняю: есть схема влегкую экспортируется из конфы и также заливается в конфу, далее: делается дамп базы по схеме, можно всех можно не всех объектов(для этого продумывается место хранения этих настроек), в последствие этот дамп будет обновлятся при каждой записи, и пишется инструментарий сравнения элементов и атрибутов с сохранением результата в файлег XML либо в рег сведений, что не есть грамотно, так как при документообороте скажем в 2000 и более документов в день ваша базейка будет немеренно пухнуть...
Вот такие вот мысли...

ЗЫЗЫЗЫ - если база тусит в клиент-серверном варианте есть мысли по продуктивней, но об этом долго рассказывать ;-)
38. Алексей Штепа (unknownDaemon) 02.10.08 21:26
ЗЫ^2 Но проще имхо намутить план обмена с выгрузкой изменений в файлег и дальнейшей обработкой выгруженных данных :) , там уже будут все сделанные изменения сериализованы, собсно останется только сравнить с "предыдущей версией выгрузки" и отменить обработанные изменения :)

КОроче идей туева хуча.. ну вы меня и сподвигли на размышления... сидел себе мирно копался в юниксе :(
39. svarog (svarog) 03.10.08 09:26
(38) С выгрузкой через план обмена - плохо. Ты ж каждую сек не будешь грузить, не получится. А если через каждую минуту (допустим), то один и тот же реквизит документа может изменить два пользователя. А запишется только последнее изменение, что есть неправильно.
По поводу XML. У меня распределенка на десяток подразделений. Что, с каждого тащить дополн. файл XML и сливать потом в один?? То же самое относится и к дампу. Это хорошо для БД одной, но не для распределенки.
40. Алексей Штепа (unknownDaemon) 04.10.08 18:44
(39) Вот тут я не во всем с тобой согласен... Короче, мне чтобы быть объективным - надо попробовать, а сейчас нет на это времени... Короче как попробую - выложу потестировать и поковырять: один чайник хорошо - а много чайников - лишь бы заварки хватало ;-) План обмена можно и не выгружать, а обрабатывать "ПриОтправке..." Тогда вся та же инфа будет считаться и готовая укладываться в лог... Честно сказать я начал было это писать, но появилась срочная текучка и я забросил эту идею на неопределенный срок...
41. Алексей Штепа (unknownDaemon) 04.10.08 18:52
(39) ЗЫ Даже нафиг ПриОтправке, когда можно ПриЗаписи... гы тогда не будет трогаться сам объект практически... То есть: Изменения записаны, тут же ПО это регистрирует, а его обработчик ПриЗаписи, сериализует объект, выполняет сравнении е пишет в лог что изменилось, и в место, где хранится предыдущее состояние объекта(а это может быть в любом рег. свед. любым текстовым безразмерным полем полем, куда пишется ссылка на обект , его XML сериализация, и юзер, который был виновником изменений)... А собсна сам алгоритм сравнения можно намутить достаточно производительным если обрабатывать XML - вот тебе и весь механизьм :)
42. Алексей Штепа (unknownDaemon) 04.10.08 18:53
ЗЫЗЫ Да. забыл ПО должен сраже после обработки удалить это изменеие, либо ваще его не писать - чтоб не захламлять свои таблицы :)
43. Алексей Штепа (unknownDaemon) 04.10.08 18:58
По поводу "Сразу два пользователя" - вряд ли, кто первый хапнул объект на редактирование - "тот и папа", система блокировок не позволит в одну секунду более одному мэну именить обект :) Так-что это ноу трабл
44. Денис (amyd) 31.10.08 12:54
только и плюс, что работает немного быстрее обычного журнала.
ну измененм объект, и что??
а вот какой реквизит метаданных изменен и какой он был раньше этого нет.
45. Serj (Serj1C) 31.10.08 12:59
(44)
1. Работает не немного быстрее, а в сотни раз!
2. Какой реквизит был изменен хочешь видить - бери и покупай (32)
46. dvv01 (dvv01) 19.11.08 18:53
В регистре хранятся ссылки на документы. Если документ помечен на удаление, то штатными средствами "Удалить помеченные" не получается без чистки самого регистра. Избирательно чистить вручную удовольствия ниже среднего, а если очищать все не гляди, то смысла в подсистеме уже нет.
Решение:
Хранить не ссылки, а текст, при желании можно повесить кнопку "открыть документ"


47. Serj (Serj1C) 04.12.08 10:58
(46) Об этом уже волновались в первых постах. И это естественно было учтено, см. (4)

Объекты удаляются без проблем. В регистре свдений установлен флаг "Ведущее".
48. dvv01 (dvv01) 11.12.08 17:06
> Об этом уже волновались в первых постах. И это естественно было учтено, см. (4)
> Объекты удаляются без проблем. В регистре свдений установлен флаг "Ведущее".

удаляются из регистра, если уже нет самого объекта, но чтобы его не стало нужно его удалить непосредственно, а штатное удаление в начале проверяет наличие ссылкок, находит их и далее сам документ не удаляет. У меня так, приходится предварительно чистить журнал от помеченных на удаление объектов.
49. Serj (Serj1C) 11.12.08 21:27
(48) Уважаемый dvv01
Для чего по-Вашему придумали свойство "Ведущее" реквизита регистра сведений???
50. dvv01 (dvv01) 12.12.08 11:27
>Для чего по-Вашему придумали свойство "Ведущее" реквизита регистра сведений???
моя ошибка - разобрался - были установлены лишние ограничения в правах.
51. KirchukV (KVS) 05.02.09 14:25
сдох регистр, начались блокировки....
52. Maniac (Eugeneer) 16.02.09 17:42
ничто вечным не бывает. Кстати благодаря этой разработке засуетились конкуренты
http://infostart.ru/projects/3112/.
Кстати по ихнему описанию можно получить многие ответы на вопросы. Так что автору по любому респект за опенсорс :)) А у конкурентов можно подсмотреть что и как делается. Щаз кризис в стране, так что опенсорс рулит)
53. Serj (Serj1C) 16.02.09 20:05
(52) Они тоже молодцы.Если купишь - код не скрывают.
Одно только подробное описание чего стоит. Но и денег конечно стоит....
Megabayt; +1 Ответить
54. Serj (Serj1C) 16.02.09 20:06
55. Maniac (Eugeneer) 17.02.09 11:57
Деньги как правило за описания не платят. Любого покупателя интересует результат. А за те деньги что они хотят выгода неочевидна.
56. Виталий Пивоуфа (N_Rain2) 29.07.09 11:22
НеОПРеативное проведение

ну это фигня.. а так хорошо
57. Serj (Serj1C) 29.07.09 14:43
(56) Рекомендую http://infostart.ru/projects/3444/, возможно, там я это исправил
58. Андрей Довбня (dovbnya) 25.07.10 21:12
Ребята, у кого есть обработка для 1C v8.0 которая очищает журнал регистрации за выбранный период?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа