Запуск встроенного в платформу механизма История данных для ленивых



В последних версиях платформы 1С появился замечательный механизм Истории данных.
Если кратко, механизм позволяет сохранять историю, просматривать, сверять и самое приятное, это восстанавливать любую версию объекта. А самое главное, чтобы это заработало, не нужно продумывать, писать и поддерживать тонны кода, все уже сделано за нас…
Возникает вопрос: Как запустить встроенный в платформу механизм Истории данных ничего не кодируя?

В последних версиях платформы 1С появился замечательный механизм Истории данных. О нем уже много написано к примеру можно посмотреть тут и вот тут.

Если кратко, механизм позволяет сохранять историю, просматривать, сверять и самое приятное, это восстанавливать любую версию объекта. А самое главное, чтобы это заработало, не нужно продумывать, писать и поддерживать тонны кода, все уже сделано за нас…

Возникает вопрос: Как запустить механизм Истории данных для справочника,документа…?

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

 

После этих не хитрых действий, платформа начинает сохранять версии объекта при каждом изменении, причем не кабы как, а всё по уму — ставит объект в очередь для создания версии и попорционно начинает обрабатывать очередь, чтоб не нагружать систему при массовом изменении. Кроме того, если вы удалите элемент из системы, то история останется и можно будет узнать кто это сделал, когда и при необходимости восстановить (я не проверял такую возможность).

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

 

Единственное, если вы решите вести историю по объекту, в котором уже создана куча элементов, вам потребуется для всех элементов создать первую запись/версию. В противном случае, первой записью будет первое изменение элемента пользователем.

 

Для массового заполнения истории по всем элементам, по которым нет истории, была написана обработка. Обработка при запуске определяет все объекты метаданных, у которых история данных установлена в использовать. Остается только выбрать объекты, по которым нужно создать версию. Обработка будет работать, если в конфе есть справочник Пользователи и у него имеется реквизит ИдентификаторПользователяИБ, а так же в ПараметрахСеанса имеется ТекущийПользователь. Обработка создает версию, только для элементов, у которых версии нет. Если справочник, договор и т.д. содержит кучу элементов, то придется подождать продолжительное время, т.к. при создании версии платформа для каждого элемента автоматом создает запись в журнал регистрации.

Обработка протестирована на платформе 1С:Предприятие 8.3 (8.3.14.1630).

12 Comments

  1. ellavs

    Насколько поняла этот механизм, есть проблема с регистрами. А именно — удаление строки в регистре, удаляет всю историю по ней (т.к. у регистра отсутствует понятие пометки на удаление). Т.е. историю изменения строки регистра хранит, а вот удаление сводит это преимущество на нет, т.к. если пользователь понял, что накосячил, ему легче просто взять и удалить строку, чтобы никто не увидел в истории, что он там наделал 🙂 Может конечно в последних версиях платформы это поправили?

    Reply
  2. _root

    Проблемы с Регистрами сведений нет, просто сверять можно только версии изменения и добавления, а версию удаления сверить нельзя. В принципе ничего страшного в этом нет…

    Reply
  3. alalexmix

    Как пример — версионирование и сравнение добавленных, измененных и удаленных записей регистра сведений — публикация для платформ, где еще нет механизма «История изменения данных»Версионирование регистров сведений (необъектных данных)

    Reply
  4. ellavs

    (3) да, как раз что-то вроде такого и думали городить. Кстати, не увидела у них функционала по поводу удаленных записей. По скринам видно, что для просмотра версий, всё равно нужно выбрать какую-то существующую запись. Не совсем ясно, как у них реализовано сохранение версий удаленных записей.

    Reply
  5. _root

    (4) Функционал по удаленным записям реализуется уже программными средствами…

    Reply
  6. ellavs

    (5) это понятно. Я просто комментировала тот софт, на который дал ссылку (3). Там софт платный, а реализовали ли они как раз программную обработку удаления не совсем ясно.

    Reply
  7. alalexmix

    (6) Добрый!

    Вкратце реализовано — через хранение ключа записи, а при выборе нужного ключа записи видна история изменений (версии записей) — разница между предыдущей (добавленной или измененной) записи с текущей (измененной или удаленной) записи регистра.

    Reply
  8. Craig

    А где хранятся версии?

    Reply
  9. _root

    (8) История данных хранится в специальных таблицах той же информационной базы, для которой настраивается версионирование.

    Источник

    Reply
  10. PetroP

    1. Какие преимущества и недостатки по сравнению с подсистемой версионирования из БСП?

    2. Почему в самых последних БСП все еще не используется данный функционал?

    Reply
  11. _root

    (10)

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

    Достоинства описаны выше. Недостатков больших не вижу…

    Reply
  12. PetroP

    (11) Смущает другое. Почему, если все так радужно, в БСП 3.1.1 не используется этот новый функционал…

    Может кто где-то на партнерке общается и что-то слышал.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *