|
История изменения реквизитов | ☑ | ||
---|---|---|---|---|
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) Вероятно, чтобы можно было целиком восстановить прошлую версию, а не собирать её по кускам из всех изменений. Да и быстрее оно так. Настроить только нужно, чтобы не версировалось все-все. В идеале, проработать механизм очистки от лишних/ненужных версий.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |