Версионность объектов 1с #704263


#0 by Janna26
Доброе время суток ребята. Я решила сделать версионность объектов в 1с, хотела бы у вас спросить совета как это лучше сделать. В данный момент мне нужны только документы. Я примерно представляю это так: 1) регистр сведений в котором мы будем хранить изменения. С ресурсом пользователь, объект, вид методанных (реквизит или табличная часть), тим записи (добавление, изменение) . Регистр периодический в пределах записи. Так же два ресурса как было и как стало.   2) Все изменения заносить подпиской на событие перед записью. Заносить в регистр только измененные реквизиты. 3) И отчет по этому регистру какие изменения были. Я понимаю что регистр вырастит до невероятных объемов. Документов в системе много. Средний пул документов в день примерно 1000-2000 документов. Я думаю что это довольно нужная и интересная тема для обсуждения. Жду ваших комментариев. P.S. Хотелось бы услышать от вас как упростить данную схему и сократить регистр.
#1 by ДенисЧ
Тема совершенно не интересна. Всё давно решено и раскрыто. Начиная с типовых (где есть версионирование) до статей на нимфосрате, в которых раскрывается вся сущность.
#2 by fisher
Открой для себя БСП
#3 by Janna26
Что то я не нашла не одной статьи, может я не правильно поиском пользуюсь?
#4 by ДенисЧ
Судя по всему - неправильно.
#5 by fisher
Ну а если изменений много - то версионирование будет ресурсоемким. Обидно, но неизбежно.
#6 by Janna26
Если не трудно, скиньте пожалуйста ссылку.
#7 by Janna26
Еще небольшая пометка, 1с стоит на платформе 8.1.
#8 by fisher
? Хранение и просмотр истории изменений справочников и документов (пользователь, внесший изменения, время изменения и характер изменения с точностью до реквизитов объекта и реквизитов его табличных частей). ? Сравнение произвольных версий объектов. ? Просмотр и откат к ранее сохраненной версии объекта.
#9 by fisher
Это описание подсистемы версионирования из БСП.
#10 by ilkoder
В УПП сделано очень хорошо
#11 by fisher
Хм... БСП - для 8.2 Будет повод перейти.
#12 by fisher
Хотя, если переходить - то можно уже и на 8.3
#13 by Janna26
Перейти вряд ли получится. у нас полностью самописная конфигшурация. И она написана полностью на связях с внешними данными. Боюсь плохо будет при переходе.
#14 by vde69
главный недостаток типовой версионности - это получение не работающей версии (например из конфигурации удалили реквизит, или удалили элемент а ссылка осталась) по этому я сейчас иду другим путем 1. для обьектов ввел понятие "черновик" в нем хранится новая версия обьекта. 2. создал БП приняте версии, по этому БП все черновики записываются по нормальному и удаляются 3. создал регистр "история" в него помещается исключительно хмл в котором есть как ссылки в виде гуида так и представление на момент создания. тем самым мы во первых избавляемся от тупизма когда жлемент переименовали и он изменился везде, во вторых мы не нарушаем ссылочную целостность. недостатком является невозможность возврата к старой версии...
#15 by fisher
А ты не бойся и попробуй. Страшных сложностей не предвижу.
#16 by fisher
Это да. Хранение представлений - это гуд.
#17 by Janna26
Эврика! как я и забыла что можно писать xml в хранилище значений. Мне не нужно откатываться на старые версии. достаточно лишь следить за пользователями.
#18 by Janna26
получается что в хмл я могу записать реквизит ссылки и Значения ссылки а так же реквзит объекта и значение объекта.
#19 by fisher
+ Но в рабочей базе - еще более ресурсоемко. Да и вообще я к версионированию в чистом виде отношусь с прохладцей. Очень редко оно нужно. Чаще нужно просто знать, кто чего где когда поменял. И не всегда с максимальной детализацией. А для этого достаточно продуманных записей в ЖР.
#20 by vde69
типовой БСП и пишет хмл в регистр, тут все дело в формате этого самого хмл...
#21 by vde69
у меня задача прикольная, я сделал что все материальные документы подписываются МОЛ и после подписи никто ничего не может поменять. Народ взвыл, теперь приходится делать механизм при котором менять можно, но через подписи :)
#22 by Janna26
Я не разу не сталкивалась с БСП. Сейчас читаю документацию. А что сложного в этом формате? Просто получается у меня есть документ и реквизиты, в хмл записывать только измененные реквизиты. Получается что он будет очень простого типа. Примерно так: Реквизит1    Значение1 Реквизит2    Значение2 Табчасть    Реквизит1       Значение1 Ну и так далее.
#23 by fisher
Ну, тут без вариантов. Если есть подписи, то нужно и версионирование с переподписыванием.
#24 by Janna26
Нашла в бух 3.0 версионность, сейчас гляну как там реализованно.
#25 by РазДва
Во-первых, нагруженные системы не любят запись в ЖР кучи событий. Во-вторых, коврыять текстовые файлы на предмет "кто чего где когда" то ещё удовольствие, у нас в сезон этот ЖР по гигу в день добавляет.
#26 by fisher
Я тебя умоляю. Каких кучи событий? Сначала повключают на максимальную детализацию, когда каждое движение в ЖР пишется, а потом жалуются - ЖР мол, отстой.
#27 by Металлист Балалайкин
я скачал готовую подсистему "версинирование объектов" и не знаю горя теперь. Любой объект можно версинировать, а можно не версинировать. Регистр можешь чистить без проблем. Легко ставится. Это проще, чем самой писать.
#28 by Металлист Балалайкин
не тратьте время. Ставьте готовую. И под себя её допишите.
#29 by РазДва
Нагруженные системы всегда куча событий, а тут предлагается ещё к ним что-то дополнительно в журнал писать. А как писать в журнал не каждое движение, а через одно, я может отстал от жизни, но  - либо пишем всё, либо пишем ошибки и предупреждения?
#30 by fisher
Я веду речь об "ошибки и предупреждения", а все остальное, чего надо - самому писать.
#31 by fisher
Сложно представить менее ресурсоемкую операцию ввода-вывода, чем запись в текстовый лог. Плюс это не в БД пишется. Сплошные профиты.
#32 by fisher
Плюс готовые средства анализа, как встроенные в платформу, так и в БСП. Если не вываливать в ЖР всякий ненужный шлак типа движений регистров, то всё довольно шустренько анализируется.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С