Кто изменил справочник или документ в базе? V8: История изменения реквизитов Изменение версии документа в 1с.

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

Прежде всего необходимо включить в программе данную опцию и сделать нужные настройки:

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

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


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


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


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


Помимо номенклатуры, выберем версионирование документов поступления:

Теперь откроем любой элемент справочника Номенклатура и произвольно изменим реквизиты, к примеру Артикул, ставку НДС и комментарий:

в результате появились изменения:


Теперь открываем кнопку просмотра версий в верхней командной панели:


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

Зажав клавищу Ctrl , выделим две версии справочника и нажмем Сравнить версии :


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


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

Теперь проведем аналогичные манипуляции с документом поступления.

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


Нажав на кнопку просмотра версий, откроется соответствующее окно:


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


В других типовых конфигурациях 1С:Предприятие 8.3 настройка версионирования происходит аналогично.

Стандартный механизм, реализованный в программных продуктах, поставляемых фирмой 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. Актуализировать предыдущую версию.

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

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

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

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

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

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

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

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

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

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

Если для выбранного справочника или документа версионирование включено, в его форме будет доступна команда История изменений (рис. 1).

Рис. 1. Команда История изменений в форме элемента справочника.

По этой команде открывается список версий объекта (рис. 2).

Рис. 2. История изменений объекта.

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

  • Кто изменил объект?
  • Когда произошли изменения?
  • Что было изменено в объекте?

В списке выводится следующая информация:

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

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

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

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

Обращаем ваше внимание, что при удалении объекта его история также удаляется, поэтому в этой ситуации версионирование не поможет.

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

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

Рис. 3. Механизм версионирования объектов в составе раздела Администрирование .

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

В форме Версионирование объектов выводится список из следующих реквизитов:

  • Объект - список объектов программы в виде дерева с группировкой по типам объектов;
  • Вариант версионирования - выбранный вариант версионирования;
  • Срок хранения версий - выбранный срок хранения версий.

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

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

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

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

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

Команды Установить вариант версионирования и Установить срок хранения версий также можно найти в меню Еще или в контекстном меню, вызываемом правой кнопкой мыши.

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

Для того, чтобы устаревшие версии удалялись автоматически, необходимо включить соответствующий флаг и перейти по гиперссылке Настроить расписание (рис. 5). Настроенное расписание будет выводиться в нижней части окна.

Рис. 5. Настройка регламентного задания по удалению устаревших версий.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сколько потребуется времени для того, чтобы найти причину кто что изменил? Сколько нужно сделать сравнений, когда, допустим, в истории хранится, что изменили документ 30-100 раз? А ведь простая запись при групповом проведении документов сюда добавит версию изменений, а ведь по-сути ничего в документе не изменится при таком перепроведении. В целом из этого количества версий изменений от силы будут действительны 2-3-5. А остальное что же? А это избыточный мусор.

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

Как это превратить в быстрый инструмент для нахождения ответа кто что изменил?

«Свет мой зеркальце скажи, да всю правду доложи»…

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


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

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

Любой пользователь оперативно может посмотреть: кто с документом работал. И уже, если понадобиться ответ, что конкретно с ним сделал этот пользователь (как доказательную базу), то уже можно использовать полные данные по системе версионирования.

«Если что - то можно доказать делом, то на это незачем тратить слова»
Эзоп


«Чей туфля?»

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


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

Как это работает? Допустим нужно получить ответ: когда какого числа установлена новая цена? Кто удалил строку в документе перемещения? Кто заменил номенклатуру на другую номенклатуру? Кто удалил количество? Кто установил скидку? Кто поменял цену? Можно увидеть, кто поменял тип цен в документе.

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

Отчет по изменениям

Весь этот протокол визуально представлен в виде отчета «Отчет по изменениям табличных частей документов». Этот отчет открывается всего лишь при нажатии одной кнопки «История» в документе и сразу показывает по какой номенклатуре, что было изменено и самое главное кем и когда. Собственно этот отчет мгновенно позволяет получать ответ на вышеуказанные вопросы. Причем без участия администратора 1с.


«Настоящие свойства человека обнаруживаются лишь тогда, когда приходит время доказать их на деле»
Л.Фейербах

Оплата труда операторов

В дальнейшем есть продолжение использования этих данных по изменениям справочников и документов. Существует отчет «Отчет по изменениям справочников и документов». Он позволяет увидеть по пользователям кто сколько со справочниками и документами произвел действий (создал новый, изменил, провел). При этом этот отчет имеет в себе заложенный функционал даже по расчету оплаты труда. Задается расценка за изменение одного объекта (для каждого в отдельности) и отчет покажет суммы, сколько, допустим, оператор заработал.


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

Детально

«Существуют вопросы, на которые нет ответов;, но есть ответы, вызывающие массу вопросов»
Э.Севрус


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

Данная обработка работает в конфигурациях УПП 1.3, УТ10.3. А также может быть интегрирована в любую конфигурацию 1с, где присутствуют складской и производственный учет. Работает на обычных формах.

Вывод

На рынке существует множество вариантов хранения историй информации. Есть где даже реализовано хранение в отдельной базе. Возможно, что и реализовано гораздо лучше и универсальней. Дать быстрый ответ – вот главное для нас было условие. Так чтобы любой пользователь (кладовщик, оператор, бухгалтер) не тратил время на ответ, а получал его мгновенно. И еще одно условие – это дальнейшее использование данных в расчете оплаты труда пользователей.