Версионирование объектов

Немного измененный механизм версионирования объектов. Может использоваться с любой конфигурацией (возможно с небольшими доработками). Тестировался на УТ 10.3.
Основное отличие — контроль уже записанных версий объектов.

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

 

Устанавливается либо переносом объектов, либо объединением конфигураций.

22 Comments

  1. Chernyakovich

    Советую всем обратить внимания на эту разработку,

    очень помогла

    Reply ↓
  2. worker1c

    А вы пробовали массовое перепроведение документов (например 10 000) с контролем уже записанных версий объектов и без контроля (как реализовано в типовом механизме)?

    Мне интересно падение производительности, есть или нет? Если есть то насколько это критично?

    Мы тоже «боремся» с версионированием, но мы пошли по другому пути: Сначала записываем всё без разбора (чтобы документы проводились быстрее), а потом во время простоя (ночью) запускаем обработку и удаляем дубли.

    http://infostart.ru/public/150314/

    Если нет потери производительности или она минимальна, то может и не стоит заморачиваться с обработкой и сделать вашу модификацию…

    Reply ↓
  3. unoDosTres

    попробовал внедрить в имеющуюся конфу, все отлично, но вот 64бит система не хочет воспринимать ком объект который использут общий модуль Хеш.. мучался мучался эту компоненту поставить , но она подттупливает.. а так вешь отличнейшая. работает шустро

    (2) worker1c, а вы качали конфу то, поглядите как там(javaScript) реализовано нет этой муторной проверки как в отчете по историиИЗмененияОбъектов от 1с

    Reply ↓
  4. sherbv

    В Бухгалтерию 2.0 ставиться на УРА

    Остается только включить константу «Использовать версионирование» в Истина

    Reply ↓
  5. apatyukov

    Конфа под 8.2, а в описании публикации написано что и под 8.1 тоже работает…

    Reply ↓
  6. pyrkin_vanya

    Только сегодня получил подобное задание. Самому лень писать. Решил здесь посмотреть. Прям в точку. То, что нужно. Спасибо огромное.

    Reply ↓
  7. yalo

    Поставили задачу на версионирование обеъектов в ЗУиПе. Попробую использовть вашу разработку

    Reply ↓
  8. yalo

    После объединения с cf файлом выходит ошибка:

    {ОбщийМодуль.ОбщегоНазначенияЗК.Модуль(1133,15)}: Процедура или функция с указанным именем не определена (глЗначениеПеременной)

    Обработка = <<?>>глЗначениеПеременной(«глОбработкаСообщений»);

    Reply ↓
  9. kanalya

    (8) Затерся модуль приложения. Скопируйте его из рабочей базы.

    Reply ↓
  10. break

    не пошла (( Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован Скрипт = Новый COMОбъект(«MSScriptControl.ScriptControl»); проблема в 64 битной версии версии Win, пока выставил выполнение модуля «Хеш» на клиенте

    Reply ↓
  11. Adecvator

    Кто-то поборол: {ОбщийМодуль.Хеш.Модуль(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

    Reply ↓
  12. GoKerze

    В Windows Server 2008R2 Standard 64bit «{ОбщийМодуль.Хеш.Модуль(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован : -2147221164(0x80040154): Класс не зарегистрирован »

    В Windows 7 Масимальная SP1 64bit такого не наблюдается. Явно беда не в 64bit. В чем затык? Версия платформы не та? Нужна Java? Ищу, чем отличаются два ПК помимо версии ОС.

    Reply ↓
  13. Maria1C

    Спасибо! Очень полезная вещь! Поставилась на УТ без проблем и доработок.

    Reply ↓
  14. GoKerze

    В файловом варианте на свежеустановленной Windows Server 2008R2 Standard 64bit. Косяк точно не в битах. (%

    Кто запустил — признавайтесь. Косяк в правах на исполнение скриптов? Косяк в сервере 1С?

    Reply ↓
  15. GoKerze

    Как-то проблема решилась, не понял. Шел по этим инструкциям:

    http://www.bulygin.su/2014/06/1-83-com-class-not-registered.html

    http://www.forum.mista.ru/topic.php?id=635553

    Reply ↓
  16. ivm032

    Спасибо! Нужная вещь.

    Reply ↓
  17. ChessCat

    В доработке есть один интересный момент.

    После установки в регистр ВерсииОбъектов добавляется ресурс Хеш.

    Но у всех объектов которые уже присутствуют в базе это измерение после добавления в конфигурацию будет пустое.

    В результате после установки при записи любого объекта создается новая запись с заполненным ресурсом Хэш.

    Все дело в Общем модуле Хэш в функции ПолучитьСтарыйХеш

    Функция ПолучитьСтарыйХеш(Ссылка, ЧислоВерсийОбъекта) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст = »
    | ВЫБРАТЬ Хеш КАК Хеш
    | ИЗ РегистрСведений.ВерсииОбъектов
    | ГДЕ Объект = &Ссылка И НомерВерсии = &НомерВерсии»;
    Запрос.УстановитьПараметр(«Ссылка», Ссылка);
    Запрос.УстановитьПараметр(«НомерВерсии», ЧислоВерсийОбъекта);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Хеш;
    Иначе
    Возврат «»;
    КонецЕсли;
    
    КонецФункции

    Показать

    У всех объектов которые присутствуют в базе до момента внесения доработок в систему версионирования Хэш пустой (поскольку этого ресурса в регистре сведений ранее не было).

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

    Reply ↓
  18. newtype

    Поставил на ЗУП 2.5. Работает. Можно ли как-нибудь сравнить хэши, для того, чтобы узнать, что изменилось в версии объекта ? Спасибо за разработку.

    Reply ↓
  19. jaroslav.h

    Работал проделанная очень бомбезная, автору спасибо, с соглашением автора добавил управляемые формы на ту же логику http://infostart.ru/public/548203/

    Reply ↓
  20. user665368_shakir.shirvanzade

    (4)

    «Использовать версионирование

    как?

    Reply ↓
  21. AlexeyK1

    Строки табличных документов фиксирует?

    Reply ↓
  22. mrlakec

    Никак не смог подключить на УТ 10.3, нигде не могу найти где надо включить его, может кто подскажет?

    Reply ↓

Leave a Comment

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