gifts2017

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

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

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

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

 

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

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

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

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Игорь М (ivm032) (1.00 $m)
Подписаться Добавить вознаграждение

Комментарии

1. 106112 (Chernyakovich) 17.08.12 11:29
Советую всем обратить внимания на эту разработку,
очень помогла
2. Евгений worker (worker1c) 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) 20.12.12 05:41
В Бухгалтерию 2.0 ставиться на УРА
Остается только включить константу "Использовать версионирование" в Истина
5. Алексей Патюков (apatyukov) 25.03.13 13:27
Конфа под 8.2, а в описании публикации написано что и под 8.1 тоже работает...
6. Константин Рыбаков (pyrkin_vanya) 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) 20.03.14 16:42
(8) Затерся модуль приложения. Скопируйте его из рабочей базы.
10. Руслан Ибрагимов (break) 23.05.14 15:36
не пошла (( Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); проблема в 64 битной версии версии Win, пока выставил выполнение модуля "Хеш" на клиенте
11. Adecvator (Adecvator) 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) 03.03.15 14:27
18. Дмитрий Иванов (ChessCat) 29.09.15 12:23
В доработке есть один интересный момент.

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

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


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