Версионирование объектов в 1с. V8: История изменения реквизитов. Какие возможности для анализа истории уже существуют в платформе

Версионирование представляет собой опцию, с помощью которой пользователь может легко установить, кто и когда изменил находящийся в базе документ, а также какие именно изменения имели место. Платформа 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С:Предприятия новый механизм называется История изменений . Он включает в себя несколько форм, которые позволяют выполнять те действия, которые были перечислены в начале этой статьи.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Менеджер Иван заходит в кабинет руководителя отдела продаж. Разговор начинается на повышенных тонах:

— Мы потеряли клиента! — возмущается менеджер, — Я оформил заказ, зарезервировал товар специально под покупателя. Но кто-то снял мой заказ с резерва! Я потерял из-за этого значительную часть месячной премии, мы упустили крупную сделку! Кто-то исправил документ, уменьшив срок резерва. Как узнать, кто виноват ?

История 2: Это не я!

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

История 3: Все пропало, шеф!

Бухгалтер Татьяна анализировала документы за прошедший месяц и проставляла в них признак того, что документы сверили. Для своей работы она использовала «Групповую обработку справочников и документов», которая позволяла ей отобрать документы по определенному признаку и не заходить в каждый документ для подтверждения. Татьяна была хорошим бухгалтером, но ошибки случаются у всех. Вместо того чтобы выбрать документы за первое апреля 2014 года, она перенесла все документы за апрель на первое число (поменять дату обработка тоже позволяет).

У Татьяны паника: определить потерянные даты документов невозможно, а значит, нельзя исправить ситуацию. Что делать ?

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


Итак, «Кто виноват?» и «Что делать?». На эти вопросы, давным-давно заданные классиками, до сих пор находятся все новые и новые ответы. Секрет в их универсальности, какую сферу человеческой деятельности не рассматривай, всегда найдется виноватый, и всегда будут вопросы, что делать с последствиями. Не исключение и сфера автоматизации торговли.

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

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

В данной статье мы рассмотрим использование механизма версионирования объектов на примере конфигурации 1С: Предприятие Управление Торговлей (УТ) версии 11.1 . Данный механизм позволяет сохранить историю изменения документа или справочника, проанализировать, кто виноват в возникновении ошибки учета, а так же ответить на вопрос, что делать, чтобы вернуть «испорченному» документу (или справочнику) его первоначальный вид.

Как настроить версионирование в УТ 11.1?

Возможность сохранения истории объектов включается в разделе Администрирование — Общие настройки:


Рисунок 1. Включение версионирования объектов

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


Рисунок 2. Настройка версионирования объектов

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

  • Не версионировать :
    История изменений сохраняться не будет
  • Версионировать при записи :
    Изменения будут фиксироваться каждый раз при сохранении документа или справочника. Изменения документов, в которых предусмотрено проведение, будут сохраняться даже в непроведенных документах
  • Версионировать при проведении :
    Изменения будут фиксироваться при сохранении справочников и документов. Для документов, в которых предусмотрено проведение, изменения будут сохраняться? только если документ проведен (при первом проведении и в дальнейшем при записи).

Укажем для Заказа покупателя вариант «Версионировать при записи». А для Заказа поставщику — «Версионировать при проведении».

Как посмотреть историю изменений объекта?

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


Рисунок 3. Переход к истории изменений


Рисунок 4. Список сохраненных версий документа

Из этого окна мы можем:


Как вернуться к сохраненному варианту объекта?

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

База сообщит, что переход на версию был выполнен успешно:


Рисунок 6. Возврат к старой версии

Если все же мы ошиблись, и более корректной является версия документа до перехода, то можно выполнить переход к предыдущему варианту документа (в нашем примере — к 4-й версии).

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

А что же герои историй, рассказанных в начале статьи?

Как уже говорилось, все закончилось хорошо.

Иван посмотрел историю изменений своего заказа и увидел, что в 9:25 утра его отредактировала менеджер Катя. Ей срочно нужно было выписать заказ на клиента, а свободного остатка товара не хватало. Она извинилась перед Иваном, и он, конечно, простил ее. Тем более что заказ Кати можно было перенести на более поздний срок, а покупателю Ивана отгрузили товар в тот же день.

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

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

Желаем Вам успехов в работе!



Последние материалы раздела:

Промокоды летуаль и купоны на скидку
Промокоды летуаль и купоны на скидку

Только качественная и оригинальная косметика и парфюмерия - магазин Летуаль.ру. Сегодня для успешности в работе, бизнесе и конечно на личном...

Отслеживание DHL Global Mail и DHL eCommerce
Отслеживание DHL Global Mail и DHL eCommerce

DHL Global Mail – дочерняя почтовая организация, входящая в группу компаний Deutsche Post DHL (DP DHL), оказывающая почтовые услуги по всему миру и...

DHL Global Mail курьерская компания
DHL Global Mail курьерская компания

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