Подсистема "Дополнительный журнал регистрации" (для любой конфигурации платформы 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)
.1221218139 370,59Kb
19.02.13
826
.1221218139 370,59Kb 826 Скачать

См. также

Добавить вознаграждение
Комментарии
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) 458 13.09.08 00:46 Сейчас в теме
4. Serj (Serj1C) 458 13.09.08 00:49 Сейчас в теме
(2) Объекты удаляются без проблем. В регистре свдений установлен флаг "Ведущее".
5. Андрей Скляров (coder1cv8) 3262 17.09.08 08:24 Сейчас в теме
Класс! Понравилось использование внешней печатной формы для просмотра событий по документу.
6. Serj (Serj1C) 458 17.09.08 08:50 Сейчас в теме
7. Serj (Serj1C) 458 17.09.08 08:52 Сейчас в теме
Теперь вопрос к пользователям по поводу дальнейшего развития.

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

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

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

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

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

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

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

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

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


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

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

удаляются из регистра, если уже нет самого объекта, но чтобы его не стало нужно его удалить непосредственно, а штатное удаление в начале проверяет наличие ссылкок, находит их и далее сам документ не удаляет. У меня так, приходится предварительно чистить журнал от помеченных на удаление объектов.
49. Serj (Serj1C) 458 11.12.08 21:27 Сейчас в теме
(48) Уважаемый dvv01
Для чего по-Вашему придумали свойство "Ведущее" реквизита регистра сведений???
50. dvv01 (dvv01) 115 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) 458 16.02.09 20:05 Сейчас в теме
(52) Они тоже молодцы.Если купишь - код не скрывают.
Одно только подробное описание чего стоит. Но и денег конечно стоит....
Megabayt; +1 Ответить
54. Serj (Serj1C) 458 16.02.09 20:06 Сейчас в теме
55. Maniac (Eugeneer) 17.02.09 11:57 Сейчас в теме
Деньги как правило за описания не платят. Любого покупателя интересует результат. А за те деньги что они хотят выгода неочевидна.
56. Виталий Пивоуфа (N_Rain2) 29.07.09 11:22 Сейчас в теме
НеОПРеативное проведение

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