Имя: Пароль:
1C
1С v8
Версионность объектов 1с
0 Janna26
 
04.04.14
11:42
Доброе время суток ребята. Я решила сделать версионность объектов в 1с, хотела бы у вас спросить совета как это лучше сделать. В данный момент мне нужны только документы.
Я примерно представляю это так:
1) регистр сведений в котором мы будем хранить изменения. С ресурсом пользователь, объект, вид методанных (реквизит или табличная часть), тим записи (добавление, изменение) . Регистр периодический в пределах записи. Так же два ресурса как было и как стало.  
2) Все изменения заносить подпиской на событие перед записью. Заносить в регистр только измененные реквизиты.
3) И отчет по этому регистру какие изменения были.
Я понимаю что регистр вырастит до невероятных объемов. Документов в системе много. Средний пул документов в день примерно 1000-2000 документов.
Я думаю что это довольно нужная и интересная тема для обсуждения. Жду ваших комментариев.

P.S. Хотелось бы услышать от вас как упростить данную схему и сократить регистр.
1 ДенисЧ
 
04.04.14
11:45
Тема совершенно не интересна. Всё давно решено и раскрыто. Начиная с типовых (где есть версионирование) до статей на нимфосрате, в которых раскрывается вся сущность.
2 fisher
 
04.04.14
11:45
Открой для себя БСП
3 Janna26
 
04.04.14
11:46
(1) Что то я не нашла не одной статьи, может я не правильно поиском пользуюсь?
4 ДенисЧ
 
04.04.14
11:46
(3) Судя по всему - неправильно.
5 fisher
 
04.04.14
11:47
Ну а если изменений много - то версионирование будет ресурсоемким. Обидно, но неизбежно.
6 Janna26
 
04.04.14
11:48
(4) Если не трудно, скиньте пожалуйста ссылку.
7 Janna26
 
04.04.14
11:49
Еще небольшая пометка, 1с стоит на платформе 8.1.
8 fisher
 
04.04.14
11:49
Версионирование объектов

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

? Сравнение произвольных версий объектов.

? Просмотр и откат к ранее сохраненной версии объекта.
9 fisher
 
04.04.14
11:50
Это описание подсистемы версионирования из БСП.
10 ilkoder
 
04.04.14
11:51
В УПП сделано очень хорошо
11 fisher
 
04.04.14
11:51
(7) Хм... БСП - для 8.2
Будет повод перейти.
12 fisher
 
04.04.14
11:52
Хотя, если переходить - то можно уже и на 8.3
13 Janna26
 
04.04.14
11:53
(8) Перейти вряд ли получится. у нас полностью самописная конфигшурация. И она написана полностью на связях с внешними данными. Боюсь плохо будет при переходе.
14 vde69
 
модератор
04.04.14
11:53
главный недостаток типовой версионности - это получение не работающей версии (например из конфигурации удалили реквизит, или удалили элемент а ссылка осталась)

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

недостатком является невозможность возврата к старой версии...
15 fisher
 
04.04.14
11:55
(13) А ты не бойся и попробуй. Страшных сложностей не предвижу.
16 fisher
 
04.04.14
11:56
(14) Это да. Хранение представлений - это гуд.
17 Janna26
 
04.04.14
11:56
(14) Эврика! как я и забыла что можно писать xml в хранилище значений. Мне не нужно откатываться на старые версии. достаточно лишь следить за пользователями.
18 Janna26
 
04.04.14
11:58
(14) получается что в хмл я могу записать реквизит ссылки и Значения ссылки а так же реквзит объекта и значение объекта.
19 fisher
 
04.04.14
11:59
(16) + Но в рабочей базе - еще более ресурсоемко.
Да и вообще я к версионированию в чистом виде отношусь с прохладцей. Очень редко оно нужно. Чаще нужно просто знать, кто чего где когда поменял. И не всегда с максимальной детализацией. А для этого достаточно продуманных записей в ЖР.
20 vde69
 
модератор
04.04.14
11:59
(17) типовой БСП и пишет хмл в регистр, тут все дело в формате этого самого хмл...
21 vde69
 
модератор
04.04.14
12:01
(19) у меня задача прикольная, я сделал что все материальные документы подписываются МОЛ и после подписи никто ничего не может поменять.

Народ взвыл, теперь приходится делать механизм при котором менять можно, но через подписи :)
22 Janna26
 
04.04.14
12:03
(20) Я не разу не сталкивалась с БСП. Сейчас читаю документацию. А что сложного в этом формате? Просто получается у меня есть документ и реквизиты, в хмл записывать только измененные реквизиты. Получается что он будет очень простого типа.
Примерно так:
Реквизит1
   Значение1
Реквизит2
   Значение2
Табчасть
   Реквизит1
      Значение1
Ну и так далее.
23 fisher
 
04.04.14
12:03
(21) Ну, тут без вариантов. Если есть подписи, то нужно и версионирование с переподписыванием.
24 Janna26
 
04.04.14
12:06
Нашла в бух 3.0 версионность, сейчас гляну как там реализованно.
25 РазДва
 
04.04.14
12:06
(19) Во-первых, нагруженные системы не любят запись в ЖР кучи событий. Во-вторых, коврыять текстовые файлы на предмет "кто чего где когда" то ещё удовольствие, у нас в сезон этот ЖР по гигу в день добавляет.
26 fisher
 
04.04.14
12:10
(25) Я тебя умоляю. Каких кучи событий? Сначала повключают на максимальную детализацию, когда каждое движение в ЖР пишется, а потом жалуются - ЖР мол, отстой.
27 Металлист Балалайкин
 
04.04.14
12:15
(0)я скачал готовую подсистему "версинирование объектов" и не знаю горя теперь. Любой объект можно версинировать, а можно не версинировать. Регистр можешь чистить без проблем. Легко ставится. Это проще, чем самой писать.
28 Металлист Балалайкин
 
04.04.14
12:15
(0)не тратьте время. Ставьте готовую. И под себя её допишите.
29 РазДва
 
04.04.14
12:17
(26) Нагруженные системы всегда куча событий, а тут предлагается ещё к ним что-то дополнительно в журнал писать.
А как писать в журнал не каждое движение, а через одно, я может отстал от жизни, но  - либо пишем всё, либо пишем ошибки и предупреждения?
30 fisher
 
04.04.14
12:18
(29) Я веду речь об "ошибки и предупреждения", а все остальное, чего надо - самому писать.
31 fisher
 
04.04.14
12:20
Сложно представить менее ресурсоемкую операцию ввода-вывода, чем запись в текстовый лог. Плюс это не в БД пишется. Сплошные профиты.
32 fisher
 
04.04.14
12:22
Плюс готовые средства анализа, как встроенные в платформу, так и в БСП. Если не вываливать в ЖР всякий ненужный шлак типа движений регистров, то всё довольно шустренько анализируется.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn