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

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

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

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

 

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

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

Наименование Файл Версия Размер
конфигурация для объединения
.cf 69,37Kb
25.05.12
357
.cf 69,37Kb 357 Скачать

См. также

Вознаграждение за ответ
Показать полностью
Комментарии
1. 106112 (Chernyakovich) 17.08.12 11:29 Сейчас в теме
Советую всем обратить внимания на эту разработку,
очень помогла
2. Евгений worker (worker1c) 108 04.09.12 07:20 Сейчас в теме
А вы пробовали массовое перепроведение документов (например 10 000) с контролем уже записанных версий объектов и без контроля (как реализовано в типовом механизме)?
Мне интересно падение производительности, есть или нет? Если есть то насколько это критично?
Мы тоже "боремся" с версионированием, но мы пошли по другому пути: Сначала записываем всё без разбора (чтобы документы проводились быстрее), а потом во время простоя (ночью) запускаем обработку и удаляем дубли.

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

Если нет потери производительности или она минимальна, то может и не стоит заморачиваться с обработкой и сделать вашу модификацию...
3. uno dos (unoDosTres) 07.12.12 17:18 Сейчас в теме
попробовал внедрить в имеющуюся конфу, все отлично, но вот 64бит система не хочет воспринимать ком объект который использут общий модуль Хеш.. мучался мучался эту компоненту поставить , но она подттупливает.. а так вешь отличнейшая. работает шустро
(2) worker1c, а вы качали конфу то, поглядите как там(javaScript) реализовано нет этой муторной проверки как в отчете по историиИЗмененияОбъектов от 1с
4. Владимир Щербаков (sherbv) 180 20.12.12 05:41 Сейчас в теме
В Бухгалтерию 2.0 ставиться на УРА
Остается только включить константу "Использовать версионирование" в Истина
5. Алексей Патюков (apatyukov) 829 25.03.13 13:27 Сейчас в теме
Конфа под 8.2, а в описании публикации написано что и под 8.1 тоже работает...
6. Константин Рыбаков (pyrkin_vanya) 264 27.08.13 14:43 Сейчас в теме
Только сегодня получил подобное задание. Самому лень писать. Решил здесь посмотреть. Прям в точку. То, что нужно. Спасибо огромное.
7. Yalo (yalo) 20.03.14 16:29 Сейчас в теме
Поставили задачу на версионирование обеъектов в ЗУиПе. Попробую использовть вашу разработку
8. Yalo (yalo) 20.03.14 16:38 Сейчас в теме
После объединения с cf файлом выходит ошибка:
{ОбщийМодуль.ОбщегоНазначенияЗК.Модуль(1133,15)}: Процедура или функция с указанным именем не определена (глЗначениеПеременной)
Обработка = <<?>>глЗначениеПеременной("глОбработкаСообщений");
9. Алексей (kanalya) 109 20.03.14 16:42 Сейчас в теме
(8) Затерся модуль приложения. Скопируйте его из рабочей базы.
10. Руслан Ибрагимов (break) 27 23.05.14 15:36 Сейчас в теме
не пошла (( Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); проблема в 64 битной версии версии Win, пока выставил выполнение модуля "Хеш" на клиенте
11. Adecvator (Adecvator) 7 31.07.14 11:46 Сейчас в теме
Кто-то поборол: {ОбщийМодуль.Хеш.Модуль(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован
12. Go Kerze (GoKerze) 02.10.14 18:53 Сейчас в теме
В Windows Server 2008R2 Standard 64bit "{ОбщийМодуль.Хеш.Модуль(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован : -2147221164(0x80040154): Класс не зарегистрирован "

В Windows 7 Масимальная SP1 64bit такого не наблюдается. Явно беда не в 64bit. В чем затык? Версия платформы не та? Нужна Java? Ищу, чем отличаются два ПК помимо версии ОС.
13. Мария В (VictorySoft) 02.10.14 20:22 Сейчас в теме
Спасибо! Очень полезная вещь! Поставилась на УТ без проблем и доработок.
14. Go Kerze (GoKerze) 02.10.14 22:28 Сейчас в теме
В файловом варианте на свежеустановленной Windows Server 2008R2 Standard 64bit. Косяк точно не в битах. (%

Кто запустил - признавайтесь. Косяк в правах на исполнение скриптов? Косяк в сервере 1С?
15. Go Kerze (GoKerze) 03.10.14 12:20 Сейчас в теме
17. Игорь М (ivm032) 8 03.03.15 14:27 Сейчас в теме
18. Дмитрий Иванов (ChessCat) 29.09.15 12:23 Сейчас в теме
В доработке есть один интересный момент.

После установки в регистр ВерсииОбъектов добавляется ресурс Хеш.
Но у всех объектов которые уже присутствуют в базе это измерение после добавления в конфигурацию будет пустое.
В результате после установки при записи любого объекта создается новая запись с заполненным ресурсом Хэш.
Все дело в Общем модуле Хэш в функции ПолучитьСтарыйХеш

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


У всех объектов которые присутствуют в базе до момента внесения доработок в систему версионирования Хэш пустой (поскольку этого ресурса в регистре сведений ранее не было).
Поэтому функция вернет пустое значение и в результате при записи объекта будет создана версия объекта с заполненным хэшем (даже если в реквизитах объекта ничего не поменялось).
19. Юрий Машков (newtype) 15.03.16 16:25 Сейчас в теме
Поставил на ЗУП 2.5. Работает. Можно ли как-нибудь сравнить хэши, для того, чтобы узнать, что изменилось в версии объекта ? Спасибо за разработку.
20. Ярослав Володимирович (myr4ik07) 97 12.09.16 08:12 Сейчас в теме
Работал проделанная очень бомбезная, автору спасибо, с соглашением автора добавил управляемые формы на ту же логику http://infostart.ru/public/548203/