|   |   | 
| 
 | Версионность объектов 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 | 
        Плюс готовые средства анализа, как встроенные в платформу, так и в БСП. Если не вываливать в ЖР всякий ненужный шлак типа движений регистров, то всё довольно шустренько анализируется.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |