Версионирование объектов. Удаление дублей версий (одинаковых версий) в регистре сведений "ВерсииОбъектов"

Внимание! Обработка работает только на платформе 8.3, так как используется объект ХешированиеДанных (конфигурация при этом может находиться в режиме совместимости хоть с версией 8.1).
Обработка позволяет найти и удалить дубли версий из регистра сведений "ВерсииОбъектов".

Дублем считаются две или более версий которые полностью идентичны. Поиск дублей выполняется на основе расчета хеш-суммы. Чтобы найти дубли версий выберите хеш-функцию и нажмите кнопку «Поиск дублей». Могут использоваться все доступные в 1С хеш-функции (MD5, CRC32, SHA1, SHA256). После поиска дублей в верхней таблице будет отображен список объектов по которым найдены дубли. При активации строки верхней таблицы в нижней будет отображены детализации по версиям выбранного объекта. Галочкой «Удалить версию» будут отмечены версии которые определены как дубли. Тем самым можно проверить работу обработки. 

Для удаления дублей нажмите кнопку «Удалить дубли версий». После удаления будет выполнена перенумерация версий.

Небольшой пример работы:

Некий Пупкин В.В. создал документ «Заказ покупателя» и провел его кнопкой «ОК», записав версию №1. Потом решил его проверить и открыл снова. Так как Пупкин В.В. глупый пользователь, он закрыл документ кнопочкой «ОК», опять же проведя его и создав версию №2. Далее документ был отредактирован другим пользователем и создана версия №3.

Итак в регистре три версии документа «Заказ покупателя». Вторая версия является дублем первой. Если запустить обработку и посмотреть результат, то в итоге будет две версии по документ «Заказ покупателя». Вторая версия будет удалена, а у третьей будет изменен номер на вторую.

 

Данную обработку легко переделать на другой алгоритм поиска дублей, например если все-таки нельзя перейти на 8.3, можно использовать внешнюю компоненту для расчета хеш-суммы. Также несложно сделать регламентное задание, которое будет автоматически чистить регистр.

5 Comments

  1. ef1

    не запустилась — любое значение хеш функции ошибка

    {ВнешняяОбработка.УдалениеДублейВерсийВРегистреСведенийВерсииОбъектов.МодульОбъекта(86)}: Ошибка при вызове метода контекста (Выполнить)

    Результат = Запрос.Выполнить();

    по причине:

    {(14, 2)}: Недопустимое поле для группировки «ОбъектНаименование»

    <<?>>ВерсииОбъектов.Объект.Наименование,

    использую

    1С:Предприятие 8.3 (8.3.5.1186)

    Управление торговлей, редакция 11.1 (11.1.9.44)

    Reply
  2. MishaHD

    (1) ef1, Добрый день! Видимо зря не указал что обработка работает только в БСП которая была на обычных формах. В новых версиях БСП поменяли структуру регистра ВерсииОбъектов, да и вообще сам принцип версионирования поменяли. Не было необходимости разбираться детально в версионировании в конфигурация на современной БСП (УТ 11, БП 3.0 и подобных). Планировал доработать обработку под новые версии БСП, но это будет тогда когда появиться немного свободного время.

    Reply
  3. vital1c

    Очень даже хорошо работает на УТ 11.1, очень выручила обработка

    Reply
  4. vital1c

    Правада версия ут 11.1.2.8

    Reply
  5. Arny83

    не работает Управление торговлей, редакция 11.2 (11.2.2.119)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *