История изменения полей

Anatoly

Lotus team
30.03.2007
223
0
#1
Требуется вести историю изменения полей: кто, когда, что на что поменял.
В определенных формах определенные поля. Пока фиксировано, но в дальнейшем думаю сделать это настраиваемым.
Если кто уже занимался этим, может есть какие наработки или уже определившиеся проблемы...
С одной стороны логично было-бы сделать эти логи наследниками к соответственным формам, но с другой информация будет размазана по нескольким базам и не увидишь изменения, сделанные определенным пользователем, а одном просмотре. Придется создавать доп. базу и поддерживать ее в актуальном состоянии. Причем в отдельную базу придется, помимо имени реквизита, тащить еще наименования базы и формы отредактированного документа, плюс какие реквизиты идентифицирующие этот документ для пользователя.

И в какой момент фиксировать изменения? В свойствах/событиях не совсем корректно. Логичнее всего, вроде-бы, в PostSave формы.
Как правильнее организовать хранение предыдущих значений нужных полей при входе в редактирования документа?
Короче, пока я в состоянии раздумий как приступить :)
 

MMN

Well-known member
11.12.2008
97
0
#2
я делаю это в кверисейв, сравниваю что записываю с тем что было, если есть изменения то пишу в дочений документ кто и когда менял поле
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#3
Требуется вести историю изменения полей: кто, когда, что на что поменял.
В определенных формах определенные поля. Пока фиксировано, но в дальнейшем думаю сделать это настраиваемым.
Если кто уже занимался этим, может есть какие наработки или уже определившиеся проблемы...
С одной стороны логично было-бы сделать эти логи наследниками к соответственным формам, но с другой информация будет размазана по нескольким базам и не увидишь изменения, сделанные определенным пользователем, а одном просмотре. Придется создавать доп. базу и поддерживать ее в актуальном состоянии. Причем в отдельную базу придется, помимо имени реквизита, тащить еще наименования базы и формы отредактированного документа, плюс какие реквизиты идентифицирующие этот документ для пользователя.

И в какой момент фиксировать изменения? В свойствах/событиях не совсем корректно. Логичнее всего, вроде-бы, в PostSave формы.
Как правильнее организовать хранение предыдущих значений нужных полей при входе в редактирования документа?
Короче, пока я в состоянии раздумий как приступить :)
1-й вариант (у меня так работает).
В постопене сохраняю данные из нужных мне полей, а в постсейве сравниваю. Везультат записываю в документ-респонс. В документе-респонсе четрые видимых мультивельюз поля. В первое поле пишу название измененного поля, второе - старое значение, третье - новое значение, четвертое - кто менял

2-й вариант
в постопене копируется текущий документ, в кверисейве сравниваются поля и при изменении копированый док. делается респонсом, заносится имя того кто редактировал и документ лочится
 

Anatoly

Lotus team
30.03.2007
223
0
#5

Anatoly

Lotus team
30.03.2007
223
0
#6
Если, скажем, сохраниять старые значения в входе в документ, то я так думаю: либо в какой-нибудь временный док, либо (с перспективой на будущую настраиваемость режима) создавать LIST по именам контролируемых полей. Наверное остановлюсь на втором.
 

medin84

Well-known member
27.06.2007
106
0
#8
тоже было дело по логированию изменения значения полей.
создавал профильный документ где уазывал какие поля логировать, можно сделать профили для каждой формы.
при сохранении делать проверку