1с история изменений объектов. Кто изменил справочник или документ в базе? Основные сведения о механизме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. С помощью журнала регистрации (очевидная возможность, автоматически включенная в большинстве типовых конфигураций);
  2. С помощью механизма версионирования объектов (мене очевидный, но значительно более мощный функционал, который необходимо включать самостоятельно).

Сразу следует сделать небольшое замечание. В базах со значительным документооборотом и большими объемами вносимой информации версионирование объектов 1С может приводить к существенному увеличению объемов хранилища.

Что это за механизм и для чего он нужен

Журнал регистрации позволяет отследить историю изменения объекта, однако, у него есть один существенный недостаток – он не позволяет увидеть, какие именно изменения вносились в существующие данные.

Версионирование объектов позволяет:

  1. Увидеть, что и когда изменялось в конкретном объекте;
  2. Определить, кто именно внес те или иные изменения;
  3. Просмотреть предыдущую версию объекта;
  4. Сравнить между собой две сохраненные версии;
  5. Произвести анализ, определив какая версия, была наиболее точной и правильной;
  6. Вернуть объект в необходимое состояние.

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

Чаще всего версионирование объектов 1С задействуют на этапе внедрения того или иного программного продукта:

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

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

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

Включение системы версионирования

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

В первую очередь зайдем в систему «Администрирование» -> «Общие настройки» -> «История изменения»(Рис.1).

Если его нет, зайдем в подменю «Все функции…» в ветку «Константы»-> «Использовать версионирование…» (Рис.2) и активируем галочку на этой форме

Рис.2

После активации флажка появится еще один элемент меню: «Настройки хранения» (Рис.3)

Рис.5

Настройка истории изменений

Давайте рассмотрим вышеприведенную форму:

  1. Две верхние команды позволяют определить момент сохранения версий объектов и срок хранения;
  2. В табличной части можно выполнить те же самые настройки, которые выполняются командами;
  3. Список справочников и документов значительно меньше количества элементов метаданных в конфигураторе;
  4. Под табличной частью существует ссылка, позволяющая настроить расписание удаления старой версии.

Новые версии объектов могут сохраняться:

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

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

В случае, если к существующему списку справочников и документов нам потребуется добавить собственный объект, мы должны:

  1. Открыть программу в режиме конфигуратора;
  2. Открыть конфигурацию для изменения;
  3. Зайти в подменю «Общие»-> «Определяемые типы»-> «Версионируемые данные»;
  4. В свойствах элемента необходимо изменить набор элементов параметра «Тип» (Рис.6);


Рис.6

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

После активации и настройки расписания удаления объектов в системе появится соответствующее регламентное задание.

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

Как с этим механизмом работать

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

  1. Автора новой версии (человека, который вносил изменения);
  2. Дату изменения;
  3. Добавить собственные комментарии к существующим вариантам объектов;
  4. Сравнить версии между собой;
  5. Вызвать отбор журнала регистрации по соответствующему событию;
  6. Просмотреть версию;
  7. Актуализировать предыдущую версию.

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


Ключевые слова: Регистрация, история, изменение.

Эта статья является описанием озвученного в третьего алгоритма.

Речь о том, чтобы хранить в базе историю изменения реквизитов объектов.

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

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

Общая идею проста, как четыре рубля одной монетой.
А вот при ближайшем рассмотрении выяснилось пара нюансов.
А при превращении мыслей в статью и вовсе все поменялось.

Начнем по-порядку.

Для начала, делаем периодический регистр сведений "История реквизитов" без привязки к регистратору.

Затем, очень хочется иметь в этом регистре сведений измерение "Объект" типа "Любая ссылка", но этого делать нельзя.
Причина та, что тогда мы теряем возможность удалять помеченные на удаление объекты, поскольку на них будут ссылки в регистре.
Если же это измерение делать ведущим, то при удалении мы потеряем всю историю по этому объекту, которая удалится вместе с самим объектом.
А с другой стороны и без этого реквизита совсем уж никуда, ни отчета сформировать, ни просто даже объект найти.
Поэтому, в каждый объект, для которого требуется регистрация изменений реквизитов, добавляем реквизит "GUID" типа "Строка (32)".
Кроме того, в регистр сведений "История реквизитов" добавляем измерение "GUID объекта" типа "Строка (32)".

Так я хотел написать сначала.

А потом хорошо подумал.

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

Во-вторых, журнал регистрации фирмой 1С реализован таким образом, что в нем в реквизите "Данные" хранится именно ссылка на объект, а никакой не GUID.
Просто при удалении объектов журнал регистрации не участвует в проверке ссылочной целостности и после удаления объекта в нем в реквизите "Данные" показывается знакомая многим надпись "<Объект не найден> ...".

В-третьих, GUID вместо ссылок придется тогда вставлять и в остальных полях, то есть в пользователе, старом значении и новом значении.

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

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

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

Продолжаем.

Помимо объекта нужно иметь информацию о реквизите, который меняется.
Поэтому добавляем измерение "Реквизит" типа "Строка (25)" или "Справочник.РеквизитыОбъектов", кому как больше нравится.
Я для примера сделал строкой.

Затем добавляем информацию о пользователе, сделавшем изменения.
Для этого добавляем ресурс "Пользователь" типа "Справочник.Пользователи".
Кроме того, добавляем ресурс "Имя компьютера" типа "Строка (25)".
Кому 25 символов мало, может изменить на нужное количество.

Для того, чтобы знать, в какой распределенной базе меняли реквизит, в случае использования распределенных баз, нужно добавить ресурс "Распределенная база" типа план обмена "Распределенные базы".

И, наконец, добаляем два ресурса, "СтароеЗначение" и "НовоеЗначение" составного типа.
В составе типов "Число", "Строка", "Булево", "Дата" и "Любая ссылка".
Размерность типов "Число" и "Строка" проставляется максимальная из возможных, чтобы в нее уместилось содержимое любого реквизита.
Здесь есть досадный момент, в состав типов нельзя включить строку неограниченной длины.
Поэтому механизм нельзя будет применять для строк неограниченной длины, содержимое которых длиннее максимального размера строки в составе нашего типа.

Теперь по поводу настроек в объектах.
Во всех объектах, для которых будет регистрироваться история, требуется прописать следующий код.
Переменная "НаборЗаписейИсторияОбъектов" вынесена в переменные модуля по той причине, что для нового объекта проверку реквизитов нужно делать в процедуре "ПередЗаписью", а заполнять реквизит "Объект" значением "Ссылка" в процедуре "ПриЗаписи", поскольку в процедуре "ПередЗаписью" еще нет ссылки для нового объекта.
Перем НаборЗаписейИсторияОбъектов; Процедура ПередЗаписью(Отказ) НаборЗаписейИсторияОбъектов = РегистрыСведений.ИсторияОбъектов.СоздатьНаборЗаписей(); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Код "); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Наименование "); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Родитель "); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Владелец "); Для А = 0 По ЭтотОбъект.Метаданные().Реквизиты.Количество() - 1 Цикл ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ЭтотОбъект.Метаданные().Реквизиты[А].Имя); КонецЦикла; КонецПроцедуры Процедура ПриЗаписи(Отказ) Если НаборЗаписейИсторияОбъектов.Количество() <> 0 Тогда Для Каждого Запись Из НаборЗаписейИсторияОбъектов Цикл Запись.Объект = Ссылка; КонецЦикла; НаборЗаписейИсторияОбъектов.Записать(Ложь); КонецЕсли; КонецПроцедуры Процедура ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ИмяРеквизита) Если ЭтотОбъект[ИмяРеквизита] <> Ссылка[ИмяРеквизита] Тогда НоваяЗапись = НаборЗаписейИсторияОбъектов.Добавить(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.Реквизит = ИмяРеквизита; НоваяЗапись.ИмяКомпьютера = ИмяКомпьютера(); НоваяЗапись.Пользователь = ПараметрыСеанса.ТекущийПользователь; НоваяЗапись.РаспределеннаяБаза = ПараметрыСеанса.ТекущаяРаспределеннаяБаза; НоваяЗапись.СтароеЗначение = Ссылка[ИмяРеквизита]; НоваяЗапись.НовоеЗначение = ЭтотОбъект[ИмяРеквизита]; КонецЕсли; КонецПроцедуры

Пример приведен для иерархического подчиненного справочника.
Если брать другой объект, например, документ, то состав служебных реквизитов будет другой, не "Код", "Наименование", "Родитель" и "Владелец", а "Дата" и "Номер".

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

Замаялся.

От Гения 1С : Смотрите

«Автоматизация бизнеса:История версий » - это комплекс дополнений к типовым конфигурациям на базе "1С:Предприятие 8", предназначенный для хранения истории изменений справочников и документов, анализа изменений с точностью до значения реквизитов и возможностью для отката данных до выбранной версии объекта.

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

История версий легко может быть интегрирована в любую конфигурацию на базе "1С:Предприятие 8.x". При объединении не требуется вносить изменения в объекты исходной конфигурации.

Что дает система:

РУКОВОДИТЕЛЮ - ПОВЫШЕНИЕ КОНТРОЛЯ ЗА РАБОТОЙ ПОЛЬЗОВАТЕЛЕЙ:

    простота и удобство мониторинга изменений вносимых в систему;

    возможность просмотра, какие именно изменения были внесены в документы «задним числом»;

    возможность отслеживать объем вносимой информации в систему каждым из пользователей;

ПОЛЬЗОВАТЕЛЯМ - ПОВЫШЕНИЕ УДОБСТВА РАБОТЫ С СИСТЕМОЙ:

    возможность просмотра истории изменений по интересующему объекту;

    возможность работы с предыдущими версиями объектов;

    возможность восстановления («отката») объекта до выбранной версии;

Основные возможности:

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

    наглядный просмотр изменений, каждой версии в графическом виде;

    возможность отката до любой версии объекта;

    возможность удаления ненужных версий объектов (ограничена правами доступа);

    возможность просмотра изменений объектов с отборами: по автору, виду объекта, времени внесения изменений;

    возможность настройки списка объектов требующих регистрации в системе без изменения конфигурации;

    быстрый переход к просмотру истории изменений из любого объекта системы;

    сервисные функции по работе с данными об изменениях: архивирование изменений за выбранный период и очистка изменений за выбранный период по указанным видам объектов;

Технические особенности:

    возможность быстрой интеграции с любой конфигурацией на базе "1С:Предприятие 8.x" (до 8.3.6.x), без внесения изменений в объекты основной конфигурации; (интеграция занимает не более 5-ти минут)

    при использовании «Автоматизация бизнеса:История версий» в базе данных хранится информация только об изменениях реквизитов объектов, что НЕ приводит к значительному росту базы данных и замедлению работы пользователей;

    хранение изменений в системе производится в сжатом виде, что незначительно сказывается на времени формирования отчетов, но существенно сокращает требуемый объем памяти;

    система поддерживает работу с распределенными базами данных;

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

«Автоматизация Бизнеса: История версий» является дополнением к любым типовым конфигурациям 8.x: «Управление торговлей ред. 10.3», «Управление торговлей ред. 11» и «Управление производственным предприятием ред. 1.3», и т.д. Данный продукт не содержит скрытых участков кода.

Системные требования:

Дополнительные сведения:

  • Если программа не работает на вашем релизе типовой конфигарации, то мы ее доработаем для вас бесплатно.
  • Для программы выпускаются регулярные бесплатные обновления.
  • Код программы АБ:История версий открытый
  • Модуль предоставляется под одну заявленную вами конфигурацию (платформу). Цена модуля от количества рабочих мест не зависит.
  • При покупке программы предоставляется бесплатная техподдержка на 12 мес.
  • Успановка программы производится либо самостоятельно пользователем, либо специалистами компании Автоматизация бизнеса за дополнительную плату. При покупке программы необходимо заполнить и отправить регистрационную анкету, которую пришлют с дистрибутивом программы.

Общая информация

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

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

Использование версионирования особенно актуально на начальном этапе внедрения программы, когда объемы информации небольшие, а исполнители совершают много ошибок (например, вводят лишнюю информацию или очищают наименование или значение какого-то реквизита внутри объекта).

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

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

Объекты версионирования

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

  • Банк и касса;
  • Продажи;
  • Покупки;
  • Склад;
  • Производство;
  • ОС и НМА;
  • Зарплата и кадры.

Настройка версионирования объектов

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


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


Вариант версионирования

По кнопке «Установить вариант версионирования» можно выбрать следующие варианты:

  • не версионировать - история версий объекта не ведется;
  • версионировать при записи - новая запись заносится в историю версий в случае изменения или создания нового справочника или документа;
  • версионировать при проведении - вариант может использоваться только для документов, которым разрешено проведение. Первоначальная версия документа будет записана в историю после первого проведения документа, затем версии документа будут сохраняться при каждой записи проведенного документа.
  • по умолчанию - устанавливаются рекомендуемые настройки (для справочников - Не версионировать, для документов - Версионировать при проведении).

Срок хранения версий

По кнопке «Установить срок хранения версий» срок хранения можно установить за последнюю;

  • неделю;
  • месяц;
  • три месяца;
  • шесть месяцев;
  • бессрочно.

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

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

Удаление устаревших версий

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


Просмотр изменений объектов

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


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


Используя соответствующие кнопки, в форме списка доступны следующие действия:

  • открыть версию - просмотр отчета о состоянии объекта на интересующий момент времени;
  • сравнить версии - просмотр отчета по изменению состояния двух или более предварительно выделенных версий в списке (отчет покажет, какие именно реквизиты отличаются);
  • перейти на версию - возврат к одной из предыдущих версий объекта, которую необходимо предварительно выделить (изменения, внесенные после сохранения этой версии, будут отменены).

Важно! Если объект был удален, его история также удаляется, поэтому в этом случае версионирование не поможет.

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


Для сравнения версий друг с другом необходимо выделить нужные версии (все, или выборочно) и нажать кнопку «Сравнить версии».


Просмотрев изменения, можно вернуться на любую из версий документов, для этого нужно выбрать нужную версию и нажать кнопку “Перейти на версию”. При этом будет создана еще одна версия документа, с соответствующим комментарием.

  • В статье использованы материалы публикации


Просмотров