|
История изменения реквизитов |
☑ |
0
kydassov
16.10.15
✎
15:58
|
Доброго дня, форумчане!
Появилась необходимость отслеживать историю изменения реквизитов документа. С шапкой документа проблем не возникло, а вот т табличными частями есть.
В качестве исходных данных сравниваю ТЧ Объекта и ТЧ Ссылки (новые и не сохраненные объекты контролировать ненужно). При сравнении построчно через метаданные определяю расхождение в строке и пишу в регистр сведений. Пример:
Для Каждого стрСсылка Из табСсылка Цикл
стрОбъект = табОбъект[стрСсылка - 1];
Для Каждого Реквизит Из докОбъект.Метаданные().Реквизиты Цикл
Если Не Объект[Реквизит.Имя] = докСсылка[Реквизит.Имя] Тогда
новСтрока = табДвижение.Добавить();
новСтрока.Период = ТекущаяДата();
новСтрока.СсылкаНаОбъект = Объект.Ссылка;
новСтрока.ИмяТабличнойЧасти = ТЧ.Имя;
новСтрока.НомерСтрокиТЧ = стрСсылка.НомерСтроки;
новСтрока.РеквизитИзменения = Реквизит.Синоним;
новСтрока.ЗначениеДоИзменения = стрСсылка[Реквизит.Имя];
новСтрока.ТипИзменения = Перечисления.БКД_ТипыИзмененийПродаж.Изменение;
новСтрока.ЗначениеПослеИзменения = стрОбъект[Реквизит.Имя];
новСтрока.Пользователь = ПараметрыСеанса.ТекущийПользователь;
Продолжить;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Где: табСсылка – ТЧ из ссылки на объект
табОбъект – ТЧ из объекта
Но как проконтролировать ситуации, когда добавлялись или удалялись строки ума не приложу.
ГЛАВНОЕ: В документы нельзя добавлять новые реквизиты!
|
|
1
Господин ПЖ
16.10.15
✎
15:59
|
в типовых уже все изобрели
|
|
2
zak555
16.10.15
✎
15:59
|
версионирование
|
|
3
pessok
16.10.15
✎
16:28
|
как же от типовго версионирования распухает база... Зачем она хранит ЦЕЛИКОМ каждую версию? Почему не разностно?
|
|
4
pessok
16.10.15
✎
16:28
|
+ (3) это я не примере УПП ругаюсь
|
|
5
ДенисЧ
16.10.15
✎
16:35
|
(3) Чтобы запись не тормозил
|
|
6
Mirnin
16.10.15
✎
16:35
|
(3) Вероятно, чтобы можно было целиком восстановить прошлую версию, а не собирать её по кускам из всех изменений. Да и быстрее оно так. Настроить только нужно, чтобы не версировалось все-все. В идеале, проработать механизм очистки от лишних/ненужных версий.
|
|