03.07.2019

Версионирование объектов в 1с. История данных. Удаление устаревших версий


В статье рассмотрен механизм версионирования объектов, реализованный в прикладном решении «Управление торговлей, ред.11» для сохранения истории всех изменений документов и справочников. Данный механизм позволяет восстановить измененные данные в случае ошибочных действий пользователей.

Применимость

Статья написана для редакции УТ 11.1 . Если вы используете эту редакцию, отлично - прочтите статью и внедряйте рассмотренный функционал.

Если Вы работаете со старшими версиями УТ 11, то данный функционал является актуальным . В актуальных версиях для доступа к рассмотренному функционалу используйте команду Настройки хранения в разделе Поддержка и обслуживание (история хранения) подсистемы Администрирование .

Наиболее заметным отличием УТ 11.3/11.4 от редакции 11.1 является интерфейс Такси. Поэтому, чтобы освоить материал статьи - воспроизведите представленный пример на своей базе УТ 11. Таким образом Вы закрепите материал практикой:)

– Кто испортил документ?! – крикнул Василий.

– Сегодня должен был получить премию за продажу товара. Прихожу к фин. менеджеру, а он мне говорит: «Какая премия? Вы не выполнили план продаж». Но как так? Помню, что провел реализацию на одну сумму, а сегодня сумма уже совсем другая. Что делать? Кто виноват?

Сердитый Василий берет телефон и набирает телефон тех. поддержки, которая обслуживает программу в компании и просит помощи: «Найдите виновных, надеялся премию получить!»

Трубку поднял оператор тех. поддержки и начал успокаивать Василия: «Не волнуйтесь, сейчас все выясним».

Как же повезло Василию, что в их компании использовалось УТ 11 и был включен функционал «Версионирование объектов». Оператор тех. поддержки без особого труда узнал кто, когда и что именно изменил в документах Василия.

Виновные были найдены и Василий в итоге получил премию.

Что же это за функционал такой, который помогает «разруливать» спорные моменты связаны с тем, кто именно из пользователей неверно заполнил и провел документ, установил не ту цену, склад, клиента, организацию и т.д?

В программе «Управление торговлей 11» присутствует отличная возможность для просмотра истории изменений (редактирования) справочников и документов под названием «Версионирование объектов». Давайте же рассмотрим как она работает.

Для включения использования этого функционала перейдем на закладку программы «Администрирование» пункт «Общие настройки» и установим галочку «Версионирование объектов».

Далее настроим список справочников и документов, по которым мы планируем видеть историю изменений. Нажмем на пункт «Версионируемые объекты» (находится возле галочки «Версионирование объектов»). Перед нами появится следующее окно:


(Нажмите, чтобы увеличить картинку)

В данном окне мы можем установить различные настройки версионирования объектов нашей базы. Их есть три вида:

  • Не версионировать – версии объекта не сохраняются.
  • Версионировать при записи – версии объекта сохраняются при любом изменении.
  • Версионировать при проведении – версии сохраняются только при проведении; настройка применяется только для документов, для которых разрешено проведение.

  • (Нажмите, чтобы увеличить картинку)

    Установим для примера различные настройки для различных объектов базы: для справочника «Соглашения с клиентами» – версионировать при записи, для документа «Заказ клиента» – версионировать при проведении и т.д. Окно «Версионирование объектов» будет иметь следующий вид:


    (Нажмите, чтобы увеличить картинку)

    Для документа «Заказ клиента» установлено вид версионирования «Версионировать при проведении». Давайте перейдем в список заказов клиентов (закладка «Продажи» пункт «Заказы клиентов») и попробуем создать один документ «Заказ клиента» и перепровести его под разными пользователями.

    В окне нашего документа «Заказ клиента» на панели навигации формы нажмем на пункт «История изменений».


    (Нажмите, чтобы увеличить картинку)

    Перед нами появится окно со списком пользователей, которые редактировали данный документ, а также дата редактирования с точностью до секунды.


    (Нажмите, чтобы увеличить картинку)

    Выделим все позиции и нажмем кнопку «Сравнить версии». Откроется отчет по изменениям версий объекта.


    (Нажмите, чтобы увеличить картинку)

    Здесь мы можем увидеть, что пользователь «Бахшиев» провел документ, а затем пользователь «Афанасьев» перепровел документ: изменил организацию с «Торговый дом “Комплексный”» на «ПБОЮЛ “Предприниматель”», изменил цену на товар «Телевизор “JVC”» с 20 000 на 28 000.

    Также можно просматривать информацию про отдельную версию проведенного документа. Для этого в окне заказа «История изменений» выделим необходимую версию и нажмите кнопку «Открыть версию». Здесь можно посмотреть какие реквизиты документа были установлены пользователем, табличная часть «Товары» и график оплаты.


    (Нажмите, чтобы увеличить картинку)

    Функционал УТ 11 позволяет при необходимости даже перейти на нужную (прошлую) версию объекта. То есть в нашем случае документ провел пользователь «Бахшиев», а затем документ был изменен пользователем «Афанасьев». В окне заказа «История изменений» выделим мышкой версию «Бахшиев Павел Иннокентьевич» и нажмем кнопку «Перейти на версию».


    (Нажмите, чтобы увеличить картинку)

    В окне «История изменений» появится третья строчка с комментарием «Выполнен переход к версии №1 от 08.07.2013 15:49:42», а также сообщение об успешном восстановления объекта.

    Теперь наш «Заказ клиента» возобновлено до версии пользователя «Бахшиев» – соответственно и организация, и цена снова стали такими, какими их установил пользователь «Бахшиев».

    Как видим, функционал не сложный в использовании и очень полезный. С программой «Управление торговлей 11» Вы всегда будете в курсе кто и как именно провел документ или сохранил справочник.

    Эта запись была размещена в Бесплатное , Статьи , Статьи по 1С:Управление Торговлей 11 . Добавить в закладки

    Версионирование представляет собой опцию, с помощью которой пользователь может легко установить, кто и когда изменил находящийся в базе документ, а также какие именно изменения имели место. Платформа 1С:Предприятие 8 имеет сходную опцию – журнал регистрации, однако эта опция не позволяет выяснить характер изменений, журнал регистраций позволяет только узнать, когда был изменен документ и какой пользователь внес изменения.
    Механизм версионирования позволяет хранить не только даты и автора изменений, но и историю изменений документа, опция позволяет просматривать различные версии состояния одного и того же документа. Чтобы использовать данную опцию, необходимо предварительно провести настройку версионирования объектов. Как настройку, так и просмотр всех состояний документа может проводить администратор системы.
    В программе "Управление торговлей 11" присутствует отличная возможность для просмотра истории изменений справочников и документов под названием "Версионирование объектов". Давайте же рассмотрим как она работает.
    Для включения использования этого функционала перейдем на закладку программы "Администрирование" пункт "Поддержка и обслуживание" и установим галочку "Версионирование объектов".


    В данном окне мы можем установить различные настройки версионирования объектов нашей базы - "Установить вариант версионирования". Их есть три вида:
    1) Не версионировать - версии объекта не сохраняются.
    2) Версионировать при записи - версии объекта сохраняются при любом изменении.
    3) Версионировать при проведении - версии сохраняются только при проведении; настройка применяется только для документов, для которых разрешено проведение.
    В этом же окне также можно установить срок хранения версий - "Установить срок хранения версий". Здесь стоит отметить, что если установить флажок "Автоматически удалять устаревшие версии" (расположен внизу списка), то будет выполняться удаление старых версий по расписанию на основании установленных сроков хранения.

    Для документа "Списание недостач товаров" установлено вид версионирования "Версионировать при проведении". Давайте перейдем в список списания недостач товаров. В окне нашего документа "Списание недостач товаров" на панели навигации формы нажмем на пункт "История изменений". Перед нами появится окно со списком пользователей, которые редактировали данный документ, а также дата редактирования с точностью до секунды.
    Чтобы просмотреть различия в версиях нужно выделить несколько позиций и нажать кнопку "Сравнить версии". Откроется отчет по изменениям версий объекта. В этом отчете можно посмотреть различия выбранных версий объекта.
    Функционал УТ 11 позволяет при необходимости даже перейти на нужную (прошлую) версию объекта. Для этого нужно выделить необходимую версию объекта и нажать кнопку "Перейти на версию".

    После перехода на новую версию в окне "История изменений" появится третья строчка с комментарием "Выполнен переход к версии №<Номер> <ДатаВремя>», а также сообщение об успешном восстановления объекта.
    Функционал по версионированию является очень полезной особенностью УТ 11. Таким образом, используя данный механизм, мы всегда можем быть в курсе того, какие изменения происходили с объектом, а случае необходимо отменить их, откатившись на необходимую версию.

    Версионирование объектов стало доступным, начиная с редакции «3.0.35» в программе «1С Бухгалтерия 8». Новая функция позволяет отслеживать все изменения в документах и справочниках. Версионирование не просто хранит информацию об истории изменений, как это было в журнале регистрации, а позволяет бухгалтеру на правах администратора пересмотреть внесенные изменения, увидеть все версии объекта, сделать сравнительную характеристику версий между собой, а также вернуться к предыдущей версии.

    Как настроить версионирование объектов в бухгалтерской программе?

    Для того чтобы включить механизм версионирования объектов в программе, перейдите на закладку под названием «Администрирование», затем выберите раздел «Поддержка и обслуживание» и возле «Версионирование объектов» поставьте галочку.

    Программа дает возможность установить следующие варианты:

    «Не версионировать» - в этом случае история версий объекта вестись не будет;

    «Версионировать при записи» - в случае создания или изменения нового документа или справочника новую запись будет занесено в историю версий;

    «Версионировать при проведении» - следует отметить, что данный вариант можно использовать для документов, которым вы разрешили проведение. После первого проведения первоначальная версия будет сохранена в истории;
    «Версионировать при старте» - данный вариант предназначен только для бизнес-процессов. Только после старта бизнес процесса будет записана его первая версия.

    «По умолчанию» - в этом случае для справочников и документов устанавливаются рекомендованные настройки - «Не версионировать» и «Версионировать при проведении» соответственно.

    Программа позволяет установить срок хранения за последнюю неделю, один, три, шесть месяцев, год или вообще бессрочно.

    Для каждого вида документа и элемента справочника можно отметить свой срок хранения или вариант версионирования.

    При необходимости нажмите на синюю гиперссылку и посмотрите объем и количество необходимых версий объектов, или настройте подробное расписание для ликвидации старых версий. Для этого установите галочку под названием «Автоматически удалять устаревшие версии», а затем, используя синюю гиперссылку «Настроить расписание», создайте нужное расписание. Последнее можно настроить, задав однодневное, недельное или месячное расписание.

    Как просмотреть изменения объектов в бухгалтерской программе «1С Бухгалтерия 8»?

    Установив галочку в разделе под названием «Версионирование объектов» в справочниках и документах, для которых действует версионирование, вы получите доступ к пиктограмме «История изменений».

    Нажав на последнюю, вы получите доступ к версии конкретного объекта, где будет содержаться вся необходимая информация: кто менял объект, когда и какие изменения произошли.

    В верхней части окна откроется доступ к таким клавишам:

    «Открыть версию» - с помощью этой кнопки в нужный момент времени вы сможете посмотреть отчет о состоянии объекта;

    «Сравнить версии» - можете посмотреть отчет по изменению состояния выделенных предварительно 2 или более версий в списке (какие реквизиты отличаются, будет видно в отчете);

    «Перейти на версию» - сделает возврат к предварительно выделенной одной из версий объекта. При этом будут отменены изменения, которые были внесены после сохранения данной версии.

    Обратите внимание, при изъятии объекта версионирование не поможет, так как после удаления вся история объекта также будет ликвидирована.

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

    Полезность инструмента «версионирование» можно проиллюстрировать на следующем примере. Менеджер сформировал заказ покупателя, на основании которого должна быть проведена отгрузка и поместил заказ в общую базу. При формировании документа реализации выясняется, что данные в новом документе отличаются от тех данных, которые были в заказе. В этом случае заказчик может получить не тот товар, которого ожидал или могут возникнуть другие неприятные ситуации, ответственность за которые ложится на данного менеджера. Для того чтобы выяснить – какие были сделаны изменения, кто и когда их сделал и предназначена опция версионирования, включенная в конфигурацию 1С:Предприятие 8.

    Механизм версионирования позволяет хранить не только даты и автора изменений, но и историю изменений документа, опция позволяет просматривать различные версии состояния одного и того же документа. Чтобы использовать данную опцию, необходимо предварительно провести настройку версионирования объектов. Как настройку, так и просмотр всех состояний документа может проводить администратор системы.

    Как настроить версионирование объектов?

    Есть перечень типовых конфигураций платформы 1С:Предприятие, в которых реализована опция версионирования:

    • 1С:Предприятие 8. Управление производственным предприятием
    • 1С:Предприятие 8. Управление торговлей 10.3

    Выполнение настройки версионирования проводится в учетной записи Администратора, в которой открыты все права.

    1. Для настройки необходимо открыть программу, на панели навигации перейти к пункту Операции/Константы:

    2. В закладках нужно выбрать «Версионирование», установить галочку перед надписью «Использовать версионирование объектов»:

    В параметрах настройки есть возможность указать значение всех типов документов, справочников:

    • Не версионировать - параметр установлен для всех типов объектов по умолчанию;
    • Версионировать - параметр применяется для настройки справочников и документов;
    • Версионировать при проведении -используется только для документов.

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

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

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

    4. Для просмотра истории версий необходимо в панели навигации перейти к пункту Сервис/История. Эта опция доступна исключительно для использования из-под учетной записи Администратора. Просматривать можно лишь те объекты, к которым была применена настройка версионирования. После того, как форма откроется, следует выбрать объект, изменения которого необходимо отследить, затем нужно выделить несколько версий для сравнения и нажать «Сравнить версии».

    Если Вас заинтересовало версионирование (история изменений) объектов в 1С:Предприятие 8, напишите нам на почту: [email protected]

    Данная статья является анонсом новой функциональности.
    Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
    Полное описание новой функциональности будет приведено в документации к соответствующей версии.
    Полный список изменений в новой версии приводится в файле v8Update.htm.

    Реализовано в версии 8.3.11.2867.

    Мы реализовали новый механизм, история данных , который компактно хранит историю изменения прикладных данных пользователями. С помощью готовых интерфейсных решений или с помощью встроенного языка вы можете теперь гибко анализировать изменения данных, сравнивать разные версии и восстанавливать данные в то состояние, которое они имели в выбранной версии.

    В каких сценариях нужна работа с историей данных

    Чаще всего обращение к истории данных требуется для того, чтобы определить пользователя, который выполнил некоторое изменение. Например, товар продали контрагенту со слишком большой скидкой, и теперь хочется понять, кто установил такую скидку. Или другая ситуация, когда цена товара выглядит правильной, но в прошлом была продажа этого товара по более низкой цене. Нужно выяснить, кто изменил цену, а затем вернул её в прежнее значение.

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

    Для дальнейшего анализа ситуации может понадобиться узнать все изменения, которые выполнял определённый пользователь, который один раз сделал что-то неправильно. Потому что в других случаях он мог допустить аналогичную ошибку.

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

    При этом во всех перечисленных сценариях хочется, чтобы эти возможности достигались с минимальными потерями производительности и места на диске.

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

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

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

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

    Какие возможности для анализа истории уже существуют в платформе

    Главный инструмент, который вы можете использовать для анализа того, «что происходит в системе», это журнал регистрации . В числе прочего он регистрирует факты изменения данных. То есть можно узнать, кто и когда изменил данные некоторого объекта. Но его возможности в обсуждаемой области на этом и заканчиваются, потому что по журналу регистрации нельзя понять, какой именно реквизит был изменён, какое было его предыдущее состояние. И уж тем более нельзя с помощью журнала регистрации восстановить предыдущее состояние реквизита или всего объекта.

    Другой инструмент, который существует довольно давно и есть во всех тиражных решениях, это БСП – библиотека стандартных подсистем. В её составе есть подсистема версионирования объектов . Эта подсистема содержит все перечисленные функции, однако она имеет некоторые практические ограничения.

    Во-первых, она является частью библиотеки, поэтому её внедрение в прикладное решение требует участия квалифицированного разработчика. Хорошо, если БСП изначально присутствует в прикладном решении. Но если её там нет, администратор, или, тем более, квалифицированный пользователь, не смогут самостоятельно её внедрить.

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

    Преимущества решения, встроенного в платформу

    Когда мы проанализировали имеющуюся ситуацию, имеющийся опыт использования БСП, взвесили все «за» и «против», мы пришли к выводу, что наиболее эффективным решением будет реализовать историю данных в составе самой технологической платформы. Это позволит достичь следующих преимуществ:

    • Чтобы воспользоваться этим механизмом администратору или пользователю не придётся изменять конфигурацию, всё необходимое уже есть в платформе. Нужно только включить.
    • Этот механизм будет работать быстрее, чем аналоги, реализованные в составе конфигурации, т.к. он будет использовать возможности, недоступные из встроенного языка.
    • Сама история данных будет занимать меньше места, так как будет храниться не копия данных, а только их разница с предыдущей версией. Кроме этого само версионирование можно применять не ко всем реквизитам, а только к тем, которые интересуют. Это также даст дополнительную экономию.
    • Можно будет поддержать версионирование не только тех объектов, которые обладают уникальной ссылкой (справочники, документы и т.п.), но и необъектных сущностей, таких как записи регистров сведений, например.

    Основные сведения о механизме

    Механизм истории данных полностью реализован внутри платформы, не требует какой-либо установки дополнительных программных средств, в любой момент готов к работе, но, по умолчанию, не включён.

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

    «Включение» механизма заключается в том, чтобы указать, для каких именно объектов конфигурации будет вестись история изменений. Причём ведение истории можно включать не только для всего объекта целиком, но и для его отдельных составных частей: реквизитов, измерений, ресурсов. В том числе для реквизитов табличных частей. Таким образом, вы можете выбирать: хранить полную информацию, или экономить место.

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

    Данные истории мы храним в отдельных таблицах информационной базы. Для повышения эффективности мы храним только разницу между версиями данных. Если у вас есть «тяжёлый» документ с большим количеством строк в табличной части, а вы меняете только один реквизит в самом документе, то в истории данных сохранится только одно это изменение. То есть у вас не будет храниться множество копий этого объекта, и занимать место на диске.

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

    Обработка изменения данных

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

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

    Для того чтобы таким образом обработать очередь, у менеджера истории данных (МенеджерИсторииДанных ) есть метод ОбновитьИсторию() . Мы предполагаем, что вы будете использовать его так же, как похожий метод, предназначенный для обновления индекса полнотекстового поиска. То есть обновлять историю вы будете в некотором регламентном задании, которое выполняется с определённой периодичностью.

    Мы полагаем, что в результате такой асинхронной работы будет обеспечена как эффективная запись объектов, так и минимизация потерь производительности.

    Пользовательский интерфейс

    В пользовательском интерфейсе 1С:Предприятия новый механизм называется История изменений . Он включает в себя несколько форм, которые позволяют выполнять те действия, которые были перечислены в начале этой статьи.

    Список версий по конкретному объекту

    Если для объекта включена запись истории, то среди стандартных команд объекта появляется новая команда История изменений .

    Она позволяет увидеть список всех изменений (версий) объекта.

    В колонке Источник изменений может быть указан также узел плана обмена, если изменение было выполнено в узле, и «приехало» в эту базу в результате обмена данными.

    В этом списке, в колонке


    © 2024
    art4soul.ru - Преступления, наркотики, финансирование, наказание, заключение, порча