История данных. История данных История изменения документа в 1с 8.3 зуп

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

Или как узнать кто из работников поменял тот или иной реквизит документа 1с 8?

Как посмотреть историю изменения документа 1С?

Модуль «История изменений» на базе 1С 8

Удобный и оперативный инструмент анализа и контроля действий пользователей 1С.


Задачи, решаемые модулем «История изменений» 1С 8:

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

Плюсы механизма «История изменений» 1С 8:

  • Все данные сохраняются внутри базы 1С, что обеспечивает высокую скорость поиска необходимой информации и построения необходимых отчетов.
  • Модуль 1С 8 «История изменений» оказывает минимальное влияние на производительность. Вы практически не почувствуете разницу при работе с нашей подсистемой и без нее.
  • Модуль универсальный и легко интегрируется в любую, даже стандартную, конфигурацию на базе системы « 1С:Предприятие» версии 8.2 и версии 8.3 , включая версию .

Возможности модуля:

Модуль позволяет гибко настраивать объекты по которым будет вестись контроль.

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

В механизм контроля попадают изменения реквизитов справочников и документов. При этом, сохраняется и старое, и новое значение реквизита.

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

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

Журнал регистрации 1С 8.

Как узнать кто изменил документ 1C?

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

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

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

Модуль «История изменений» — это удобный и оперативный инструмент анализа и контроля действий пользователей 1С.

Чтобы Модуль «История изменений» 1С 8 начал выполнять свою работу, его необходимо единожды настроить. Настройка не требует особых затрат времени и подразумевает выбор документов, справочников, а также их реквизитов, по которым будет вестись контроль и храниться история изменений.

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

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

Очень часто мне задают вопросы:

  • Как в 1С 8.2 посмотреть поменявшего документ?
  • Как в 1с посмотреть изменившего документ?
  • Как в 1С узнать кто и когда изменял документы?
  • Как в 1С узнать кто изменил проводку в документе?
  • Как посмотреть кто изменял документ в 1с?

Журнал регистрации

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

Журнал регистрации доступен как в режиме 1С:Предприятие, так и в режиме Конфигуратор.

Доступ к журналу регистрации возможен как из режима Конфигуратора (через меню Администрирование - Журнал регистрации ), так и из режима Предприятия (меню Сервис - Журнал регистрации ). В режиме Такси (Основное меню - Все функции - Стандартные - Журнал регистрации )

Вид журнала регистрации (Обычные формы и Такси):


Отбор в журнале регистрации (Обычные формы и Такси):


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


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

Где хранится журнал регистрации

В Файловой базе: в каталоге базы папка 1Cv8Log - это и есть директория содержащая журнал регистрации.

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

В Клиент-серверной базе: C:\Program Files\1cv8\srvinfo\<Имя кластера сервера>\<Идентификатор базы на сервере>\1Cv8Log

С версии 8.3.5.1068 . Значительно переработали журнал регистрации для того, чтобы увеличить скорость выполнения запросов к журналу и повысить надёжность хранения данных.

Для этого, в том числе, потребовалось изменить формат хранения журнала регистрации. Теперь он хранится в одном файле базы данных SQLite. Этот файл имеет расширение lgd.

Версионирование объектов

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

По умолчанию версионирование выключено, чтобы включить откройте Сервис - Настройки учета - Настройка параметров учета

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

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

Все, при закрытии окна и нажатии на кнопку «Оk» наблюдение за объектами будет вестись.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы разрабатываете новую конфигурацию то обязательно должны включить журнал регистрации. Он позволит отслеживать все изменения в вносимые пользователями в 1С. Например вы сможет узнать кто что добавлял удалял или изменял.

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

Настройка журнала регистрации и просмотр истории изменений

И так для начала давайте настроим журнал регистрации в 1С. Настройки аналогичны как для версии 8.2 так и для 8.3. Запускаем Конфигуратор ищем пункт Администрирование и выбираем Настройка журнала регистрации.

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

Теперь для примера зайдем в 1С и создадим какой-нибудь новый документ или справочник можно просто внести изменения. Я создам новый документ.

Теперь для того что просмотреть изменения в журнале регистрации нужно зайти в конфигуратор открыть пункт меню Администрирование и выбрать Журнал регистрации.

Откроется Журнал регистрации в котором записываются все действия пользователей. Например, я создал новый документ. Давайте посмотрим, как мои действия записались в журнал регистрации. Мы видим таблицу, в которой есть поля Дата и время, Пользователь, Событие, Статус транзакции и метаданные. По ним мы видим, что я зашел в программу 13.11.17 под учётной записью Администратор. В колонке событие видно, что я добавил Данные. В колонке метаданные видно какой документ.

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

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

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

Доступ к журналу регистрации можно получить как в режиме предприятия (меню Все функции ⇒ Стандартные ⇒ Журнал регистрации ), так и в режиме конфигуратора (Администрирование ⇒ Журнал регистрации ):


Если в режиме предприятия отсутствует пункт меню «Все функции «, то необходимо включить его отображение:

Внимание!

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

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

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

Теперь рассмотрим пример как можно определить кто редактировал интересующий нас объект.
1. Заходим в режим предприятия и открываем журнал регистрации, как описано выше;
2. Накладываем отбор на нужный объект:

3. Анализируем информацию:

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

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

  • Для файловых баз — [Каталог ИБ]\1Cv8Log;
  • Для серверных баз — [Каталог служебных файлов кластера]\[Каталог ИБ]\1Cv8Log.

Хранение может осуществляться в двух форматах:

  • Файлы формата .lgd — база данных формата SQLite;
  • Файлы формата .lgf и .lgp — обычные текстовые файлы.

Формат.lgd является более современным, все новые базы, начиная с релиза 8.3.5, хранят данные журнала в этом формате.

Следует отметить, что журнал регистрации может занимать достаточно много места на жестком диске. Есть возможность удалить данные до определенной даты и настроить перечень регистрируемых событий (вплоть до полного отключения). Настройки выполняются в конфигураторе: Администрирование ⇒ Настройка журнала регистрации :

В прикладных решениях с встроенной кроме платформенных механизмов просмотра журнала регистрации можно воспользоваться обработкой «Журнал регистрации». Обработка обычно располагается в меню НСИ и администрирование ⇒ Поддержка и обслуживание .

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

Loading...Loading...