gifts2017

Подсистема: История изменений реквизитов объекта, в том числе табличных частей. 1с 8.2.

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

Данная подсистема предназначена для хранения истории изменений реквизитов шапок и табличных частей документов и справочников. подсистема основана на записях изменений реквизитов в регистр сведений? с указанием автора и времени изменения.




В версию 2 в обработку очистки истории добавлена возможность очистки всей истиории за указанный период.

Для корректного обновления необходимо обновить обработку очистки истории, а также модули регистров сведений.


Добавлена Версия 2

файл hystory_2.cf

Внесено следующие изменение:

Пользователь выполневший изменение объекта пересен из ресурса регистра сведений в его измерение. такое изменение позволяет регистрировать изменения одного объекта различными пользователями в один момент времени.

Переход с версии 1 на версию 2. невозможен без потери накопленной информации об авторах ихменений(либо требуется предварительное переименованеи ресурса "автор" с последующей обработкой данных регистра по переносу информации из ресурса в измерение.)



//****************

Внесено изменение(исправление).

1. Исправлена ошибка связанная с записью истории изменения строк не верно происходила нумерация строк из за чего каждая строка считалась вновь введенной.
2. Также добавлены управляемые формы для встроенных обработок.

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


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

Для работы подсистемы используются регистры сведений и подписки на события.  Подсистема регистрирует только изменения реквизитов, в том числе только изменения конкретного реквизита конкретной строки табличной части. Все изменения записываются в соответствующие регистры сведений.

т.е. Никаких версий документа не сохраняется, вы будите видеть состояние реквизитов документа на текущий момент а также, все изменения которые произошли с каждым конкретным реквизитом.

Для хранения истории изменения строк используется дополнительный реквизит "НомерТЧ". т.е. если вы захотите вести историю изменений строк табличных частей, Вам придется для каждой табличной части историю, которой вы захотите увидеть добавить дополнительный реквизит "НомерТЧ".

 

красным выводятся строки удаленные из табличной части, серым отображаются ячейки реквизитов строки измененные в табличной части.

Все значения реквизитов как старые, так и новые хранятся в виде прямых ссылок, т.е. к объекту как старого так и нового значения реквизита можно перейти прямо из отчета. Это будет затруднять удаление помеченных на удаление объектов. Для решения данной проблемы присутствует обработка, которая очищает все записи регистра сведений в которых в качестве старого или нового значения реквизита присутствует помеченный на удаление объект, это значение будет заменено на Неопределенно.

Для установки подсистемы, нужно скачать файл конфигурации и выполнить сравнение и объединение конфигураций, все объекты подсистемы, принадлежат подсистеме "ag_ИсторияИзменений", также в конфигурации присутствуют. Справочник "Пользователи", Параметр сеанса "Пользователь", и модуль Сеанса с процедурой определения параметра "Пользователь". Их вы можете не заменять если в вашей конфигурации уже присутствуют подобные объекты.


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

Наименование Файл Версия Размер
hystory_2.cf (Автор изменения, является измерением регистра сведений. что позволяет регистрировать одновременно запись нескольких пользователей в один объект.) 148
.cf 62,01Kb
12.01.14
148
.cf 2 62,01Kb Скачать
hystory.cf (Автор изменения, является ресурсом регистра сведений. при частой записи данных несколькими пользователями в один момент времени сохраняется история только только последнего изменения произведенного в один момент) 118
.cf 59,52Kb
19.10.13
118
.cf 1 59,52Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. andrey dyak (dyak84) 12.01.13 22:53
Автор подскажите пожалуйста если просто сменю сортировку в табличной части ваша обработка покажет изменения. Предусмотрена ли выгрузка создаваемого регистра в другую базу(с практики размер етого регистра может может составлять 60 и более ГБ). Зарание спасибо за ответ.
2. Алексей Гордеев (allert73) 12.01.13 23:16
нет не покажет т.к. номер строки это поле табличной части.
Насчет 60 ГБ для того чтобы регистр достиг подобных размеров записывать изменения придется очень долго.

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

В данной выложенной подсистеме подход совершенно другой. Здесь при внесение изменений в объект в регистр сведений записывается только информация о том у какого документа, коркой именно реквизит был изменен, ну и естественно автора(виновника) изменения и время когда данной действие было произведено. Создается одна запись в регистре с неопределенными типами измерений, которая хранит в себе ссылки на объекты базы, т.е. 5 текстовых полей не более 50 ти символов. Это занимает очень мало места и легко обрабатывается в дальнейшем.
3. Александр Александров (qvvert) 04.04.13 17:15
А можно 8.1 приложить? заранее спасибо
4. Алексей Гордеев (allert73) 05.04.13 11:25
(3) qvvert, Извиняюсь что ввел в заблуждение заголовком статьи(заголовок я исправил). к сожалению подсистемы написанной под 8.1 нет. Но вы можете создать у себя аналогичные подписки на события и скопировать туда тексты модулей Важно!!!(копирование объектов копи псейтом целиком из дерева конфигурации, может привести к повреждению конфигурации, поэтому копируйте только текст модулей).
Также рекомендую вам перейти на 8.2. конвертация данных не займет много времени и в большенстве случаев проходит безболезненно. Кроме того(если ваш случай окажется болезненным), после конвертации можно включить режим совмещенности с кодом работающим только на 8.1, до того как куски будут скорректированы, что позволит не прерывать работу системы. А возможность проводить динамические обновления вас приятно обрадует
5. Роман Гаманец (_Ramzes) 18.05.13 22:14
Подскажите пожалуйста, чем ваше приложение лучше решения, которое предлагает Бизнес Плюс?
Я сейчас активно стараюсь ставить разработку от Бизнес плюс, которую сам адаптировал для управляемого приложения.
6. Алексей Гордеев (allert73) 19.05.13 18:36
(5)подозреваю что ни чем. к сожалению не могу провести полного анализа так как для этого мне придется купить их решение.
8. Neon Neon (neon57) 12.01.14 15:06
А как насчет очистки истории по периодам?
9. Алексей Гордеев (allert73) 13.01.14 10:50
(8) neon57, Добавил в версию 2.
10. Сергей Козий (sergey301) 17.01.14 00:43
А чем данная разработку лучше подсистемы версионирования в БСП?
Прикрепленные файлы:
11. Алексей Гордеев (allert73) 17.01.14 09:51
Тем что в моей подсистеме не полная сохраняется верися объета в виде XML файла переведенного в двоичные данные. А сохраняются только значения и только измененных реквизитов. А это в свою очередь облегчает анализ внесенных изменений и не приводит к неоправданному(из за обилия не нужной информации) разрастанию базы.
12. Сергей Бурыка (BurSer) 25.02.14 15:39
Сделайте, пожалуйста, чтобы можно было включать только новые, или только удалённые, или только изменённые строки. И краткую форму истории изменений (только кто , когда и % изменений).
13. Константин Лавров (Kott01) 23.04.15 16:30
Поправьте пожалуйста: вместо hystory_2.cf скачивается hystory_3.cf, а hystory_2.cf не нашел. Нужно было для УТ 10.3
14. Игорь Инютин (progaoff) 16.06.15 10:42
Подскажите, эту подсистему можно интегрировать, с конфигурацией Салон красоты???
15. Сергей Богайчук (bsa1968) 11.11.15 19:24
Не планируете добавить фиксацию изменений Констант, чтобы т.с. было "все в одном флаконе"?