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

22.01.25

База данных - Журнал регистрации

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
конфигурация для объединения
.cf 69,37Kb
428
428 Скачать (10 SM) Купить за 4 550 руб.

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

 

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

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 10.3, релизы 10.3.12.3

См. также

Журнал регистрации Системный администратор Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

История изменений реквизитов и табличных частей справочников, документов, независимых регистров сведений, возможность отката изменения, восстановление удаленных объектов, сбор статистики использования базы 1С. Альтернативный журнал регистрации.

22800 руб.

22.02.2018    35935    59    54    

57

Журнал регистрации Системный администратор Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.

6000 руб.

28.11.2018    21300    18    7    

44

Журнал регистрации Программист Россия Бесплатно (free)

В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.

20.11.2024    1877    user1913000    13    

20

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    3930    leemuar    8    

24

Инструменты администратора БД Журнал регистрации Системный администратор Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    2612    42    dima_gsv    3    

14

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    1812    6    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    5589    11    AlexSTAL    0    

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

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

Если нет потери производительности или она минимальна, то может и не стоит заморачиваться с обработкой и сделать вашу модификацию...
3. unoDosTres 07.12.12 17:18 Сейчас в теме
попробовал внедрить в имеющуюся конфу, все отлично, но вот 64бит система не хочет воспринимать ком объект который использут общий модуль Хеш.. мучался мучался эту компоненту поставить , но она подттупливает.. а так вешь отличнейшая. работает шустро
(2) worker1c, а вы качали конфу то, поглядите как там(javaScript) реализовано нет этой муторной проверки как в отчете по историиИЗмененияОбъектов от 1с
24. пользователь 19.05.21 21:46
Сообщение было скрыто модератором.
...
28. simuljakr 204 25.09.24 16:07 Сейчас в теме
(2) (0)
Замерил скорость проведения документов с включенным версионированием и без него.
Разница в скорости примерно в 3 раза.
Если без версионирования документ "Реализация товаров и услуг" проводится в среднем за 0,07 секунды, то с включенным версионированием в среднем за 0,2 секунды.

скорость проведения тестировал вот этой обработкой https://infostart.ru/1c/tools/367060/

Причем, у документов, у которых в регистре "Настройка версионирования" не заполнено версионирование, скорость проведения также падает примерно в 3 раза !!! Почему ??
29. simuljakr 204 25.09.24 16:19 Сейчас в теме
(28) (2) (0)

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

У необходимых объектов ставим "версионировать" - тут уж никуда не денешься - скорость проведения по ним упадет от 2.5 до 5 раз.
30. simuljakr 204 25.09.24 18:20 Сейчас в теме
(2) , (0), (28)
Дольше всего вычисляется хэш-сумма и пишутся/удаляются временные файлы на диск.
Я немного изменил код - теперь временные файлы не используеются, а хэш считается встроенной в 1С функцией.
Теперь - ваще летает !!!
А главное - костыли со скриптом и 64-х битным сервером теперь не нужны !!!

(если автор не будет против - могу выложить отдельной публикацией)
31. kolos 71 26.09.24 14:46 Сейчас в теме
(30) Во времена, когда все это писалось, еще не было встроенных функций для хэша, поэтому и костыли со скриптами.

Выкладывайте, конечно. Разработка фактически не актуальная, во всех современных решениях уже есть версионирование, правда без контроля изменения.
4. sherbv 516 20.12.12 05:41 Сейчас в теме
В Бухгалтерию 2.0 ставиться на УРА
Остается только включить константу "Использовать версионирование" в Истина
21. user665368_shakir.shirvanzade 1 25.01.18 15:04 Сейчас в теме
(4)
"Использовать версионирование


как?
26. пользователь 20.05.21 20:51
Сообщение было скрыто модератором.
...
5. apatyukov 910 25.03.13 13:27 Сейчас в теме
Конфа под 8.2, а в описании публикации написано что и под 8.1 тоже работает...
11. DenMaxwell 17 31.07.14 11:46 Сейчас в теме
Кто-то поборол: {ОбщийМодуль.Хеш.Модуль(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован
12. GoKerze 02.10.14 18:53 Сейчас в теме
В Windows Server 2008R2 Standard 64bit "{ОбщийМодуль.Хеш.Модуль(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован : -2147221164(0x80040154): Класс не зарегистрирован "

В Windows 7 Масимальная SP1 64bit такого не наблюдается. Явно беда не в 64bit. В чем затык? Версия платформы не та? Нужна Java? Ищу, чем отличаются два ПК помимо версии ОС.
6. pyrkin_vanya 497 27.08.13 14:43 Сейчас в теме
Только сегодня получил подобное задание. Самому лень писать. Решил здесь посмотреть. Прям в точку. То, что нужно. Спасибо огромное.
7. yalo 20.03.14 16:29 Сейчас в теме
Поставили задачу на версионирование обеъектов в ЗУиПе. Попробую использовть вашу разработку
8. yalo 20.03.14 16:38 Сейчас в теме
После объединения с cf файлом выходит ошибка:
{ОбщийМодуль.ОбщегоНазначенияЗК.Модуль(1133,15)}: Процедура или функция с указанным именем не определена (глЗначениеПеременной)
Обработка = <<?>>глЗначениеПеременной("глОбработкаСообщений");
9. kanalya 109 20.03.14 16:42 Сейчас в теме
(8) Затерся модуль приложения. Скопируйте его из рабочей базы.
10. break 33 23.05.14 15:36 Сейчас в теме
не пошла (( Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); проблема в 64 битной версии версии Win, пока выставил выполнение модуля "Хеш" на клиенте
13. Maria1C 02.10.14 20:22 Сейчас в теме
Спасибо! Очень полезная вещь! Поставилась на УТ без проблем и доработок.
14. GoKerze 02.10.14 22:28 Сейчас в теме
В файловом варианте на свежеустановленной Windows Server 2008R2 Standard 64bit. Косяк точно не в битах. (%

Кто запустил - признавайтесь. Косяк в правах на исполнение скриптов? Косяк в сервере 1С?
15. GoKerze 03.10.14 12:20 Сейчас в теме
16. пользователь 15.10.14 04:11
Сообщение было скрыто модератором.
...
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. jaroslav.h 181 12.09.16 08:12 Сейчас в теме
Работал проделанная очень бомбезная, автору спасибо, с соглашением автора добавил управляемые формы на ту же логику http://infostart.ru/public/548203/
22. AlexeyK1 14 24.04.18 14:11 Сейчас в теме
Строки табличных документов фиксирует?
23. mrlakec 25.09.18 15:12 Сейчас в теме
Никак не смог подключить на УТ 10.3, нигде не могу найти где надо включить его, может кто подскажет?
25. пользователь 19.05.21 21:49
Сообщение было скрыто модератором.
...
27. aarty 21.05.21 18:05 Сейчас в теме
Добрый день данное обновление еще актуально? Хочу узнать подробности.
Оставьте свое сообщение