+7(499)-938-42-58 Москва
+7(800)-333-37-98 Горячая линия

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

Содержание

История изменения объектов добавить программно 1с. Кто изменил справочник или документ в базе? Какие возможности для анализа истории уже существуют в платформе

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

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

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

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

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

    1С:Бухгалтерия предприятия ред. 3.01С:Управление торговлей ред. 11.21С:Управление небольшой фирмой ред. 1.61С:Зарплата и управление персоналом 3.0

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

Настройка версионирования производится в разделе «Администрирование»-«Поддержка и обслуживание»

После включения механизма появится возможность настройки хранения версий объектов.

Для каждого вида документоа и справочник можно выбрать вариант версионирования:

  • Не версионировать -изначально устанавливается всем объектам по умолчанию
  • Версионировать при записи – возможно использование со справочниками и документами. Новая версия будет создаваться при нажатии на кнопку «Записать».
  • Версионировать при проведении – возможно использование только для документов. Соответственно, версия будет создаваться при проведении документа.

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

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

В нашем примере мы видим, что номенклатура «Папка-конверт на кнопке А» имеет 4 версии, те после создания объект был изменен 3 раза.

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

В приведенном примере мы видим, что в версии 2 номенклатуре присвоено новое полное наименование, в версии 3 добавлена статья затрат и в версии 4 она изменена с «Доставки» на «Услуги аренды».

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

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

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

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

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

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

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

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

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

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

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

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

    возможность быстрой интеграции с любой конфигурацией на базе “1С:Предприятие 8.x” (до 8.3.6.x), без внесения изменений в объекты основной конфигурации; (интеграция занимает не более 5-ти минут)при использовании «Автоматизация бизнеса:История версий» в базе данных хранится информация только об изменениях реквизитов объектов, что НЕ приводит к значительному росту базы данных и замедлению работы пользователей;хранение изменений в системе производится в сжатом виде, что незначительно сказывается на времени формирования отчетов, но существенно сокращает требуемый объем памяти;система поддерживает работу с распределенными базами данных;

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

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

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

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

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

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

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

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

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

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

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

Для документа “Списание недостач товаров” установлено вид версионирования “Версионировать при проведении”. Давайте перейдем в список списания недостач товаров. В окне нашего документа “Списание недостач товаров” на панели навигации формы нажмем на пункт “История изменений”.

Перед нами появится окно со списком пользователей, которые редактировали данный документ, а также дата редактирования с точностью до секунды.Чтобы просмотреть различия в версиях нужно выделить несколько позиций и нажать кнопку “Сравнить версии”. Откроется отчет по изменениям версий объекта.

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

Функционал УТ 11 позволяет при необходимости даже перейти на нужную (прошлую) версию объекта. Для этого нужно выделить необходимую версию объекта и нажать кнопку “Перейти на версию”.

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

Функционал по версионированию является очень полезной особенностью УТ 11.

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

Начиная с версии 3.0.35 в программе 1С Бухгалтерия 8 ред. 3.0 стало доступно версионирование объектов. Данный механизм позволяет отслеживать историю изменения справочников и документов.

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

Настройка версионирования объектов в 1С Бухгалтерия 8 ред. 3.0

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

Можно установить следующие варианты:

Не версионировать – история версий объекта не ведется;

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

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

Версионировать при старте – этот вариант можно использовать только для бизнес-процессов. Первая версия бизнес-процесса будет записана только после его старта.

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

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

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

Просмотр изменений объектов в 1С Бухгалтерия 8 ред. 3.0

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

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

В верхней части доступны следующие кнопки:

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

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

Источник: https://www.kkz24.ru/trudovaya-knizhka/istoriya-izmeneniya-obektov-dobavit-kommentarii-programmno-1s-kto/

Просмотр пользователей, вносивших изменения в документ в программе 1С

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

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

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

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

Благодаря функционалу 1С можно определить пользователя, сформировавшего отчет или форму.

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

Просмотр истории

На самом деле выполнить инкогнито действия в программе 1С просто невозможно.

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

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

Алгоритм проверки

Все действия, которые выполнялись в программе 1С, фиксируются в «Журнале регистрации». Кроме этого, в нём фиксируется даже статус транзакции, ориентируя проверяющего на то, была ли транзакция завершена или в последний момент отменена.

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

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

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

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

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

 После нажатия кнопки «Ok» придётся набраться терпения, поскольку программа начнёт процесс сортировки, отбора, всего того, что касается выбранного вами документа. Такой процесс может продолжаться несколько минут.

Главное, в этот момент ничего не предпринимать, не вмешиваться, а терпеливо ждать.

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

СОВЕТ. Журнал регистраций может в какой-то момент чрезмерно заполнится, поскольку фиксирование действий осуществляется постоянно. Чтобы освободить журнал от лишней устаревшей информации, полезно его очищать время от времени.

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

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

Источник: https://nastroyvse.ru/programs/review/kak-v-1s-posmotret-kto-izmenyal-dokument.html

Механизм

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

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

Начнем с общей теоретической информации о том, что такое история данных и как она устроена.

Описание и возможности

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

Под версией понимаются данные, которые были в объекте на момент редактирования и состояние метаданных на момент редактирования.

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

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

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

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

На момент написания статьи (8.3.13) история данных поддерживается для следующих объектов:

  • общие реквизиты;
  • константы;
  • справочники;
  • документы;
  • бизнес-процессы;
  • задачи;
  • регистры сведений;
  • планы обмена;
  • планы счетов;
  • планы видов характеристик;
  • планы видов расчетов;
  • расширения конфигурации.

Работа с историей данных регулируется правами доступа и отражается в журнале регистрации.

Устройство механизма

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

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

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

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

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

Настройка версирования объектов осуществляется либо из конфигуратора либо при помощи встроенного языка.

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

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

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

Свойство «История данных»

По умолчанию свойство «История данных» установлено в значение «Использовать» у:

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

Использование механизма

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

Управление использованием истории данных

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

&НаСервере Процедура УправлениеИспользованиемИсторииДанных() //Получения значения свойства “История данных” //установленного в конфигураторе у объекта ОбъектВключен = Метаданные.Справочники.Справочник1.ИсторияДанных; //у реквизита объекта РеквизитВключен = Метаданные.Справочники.Справочник1.Реквизиты.Найти(“Реквизит1”).ИсторияДанных; //у реквизита табличной части объекта РеквизитТЧВключен = Метаданные.Справочники.Справочник1.ТабличныеЧасти.ТабличнаяЧасть1.Реквизиты.Найти(“Реквизит1”).ИсторияДанных; //у стандартного реквизита объекта СтандартныйРеквизитВключен = Метаданные.Справочники.Справочник1.СтандартныеРеквизиты.Наименование.ИсторияДанных; //Получение информации об изменениях настроек истории данных Настройки = ИсторияДанных.ПолучитьНастройки(Метаданные.Справочники.Справочник1); //Изменение настройки истории данных средствами встроеннго языка Насторойки = Новый НастройкиИсторииДанных; //Настройка для самого объекта Насторойки.Использование = Истина; //Для реквизитов объекта Насторойки.ИспользованиеПолей.Вставить(“Реквизит1”, Ложь); Насторойки.ИспользованиеПолей.Вставить(“ТабличнаяЧасть1.Реквизит1”, Ложь); ИсторияДанных.УстановитьНастройки(Метаданные.Справочники.Справочник1, Насторойки); //Возвращаем настройки истории данных из конфигуратора ИсторияДанных.УстановитьНастройки(Метаданные.Справочники.Справочник1, Неопределено); КонецПроцедуры

Процедура УправлениеИспользованиемИсторииДанных()    //Получения значения свойства “История данных”    //установленного в конфигураторе у объекта    ОбъектВключен = Метаданные.Справочники.Справочник1.ИсторияДанных;    РеквизитВключен = Метаданные.Справочники.Справочник1.Реквизиты.Найти(“Реквизит1”).ИсторияДанных;    //у реквизита табличной части объекта    РеквизитТЧВключен = Метаданные.Справочники.Справочник1.ТабличныеЧасти.ТабличнаяЧасть1.Реквизиты.Найти(“Реквизит1”).ИсторияДанных;    //у стандартного реквизита объекта    СтандартныйРеквизитВключен = Метаданные.Справочники.Справочник1.СтандартныеРеквизиты.Наименование.ИсторияДанных;    //Получение информации об изменениях настроек истории данных    Настройки = ИсторияДанных.ПолучитьНастройки(Метаданные.Справочники.Справочник1);    //Изменение настройки истории данных средствами встроеннго языка    Насторойки = Новый НастройкиИсторииДанных;    //Настройка для самого объекта    Насторойки.Использование = Истина;    Насторойки.ИспользованиеПолей.Вставить(“Реквизит1”, Ложь);    Насторойки.ИспользованиеПолей.Вставить(“ТабличнаяЧасть1.Реквизит1”, Ложь);    ИсторияДанных.УстановитьНастройки(Метаданные.Справочники.Справочник1, Насторойки);    //Возвращаем настройки истории данных из конфигуратора    ИсторияДанных.УстановитьНастройки(Метаданные.Справочники.Справочник1, Неопределено);

Запись версии

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

&НаСервере Процедура ЗаписьВерсииДанных() Данные = Справочники.Справочник1.НайтиПоНаименованию(“Элемент1”).ПолучитьОбъект(); ДатаСоздания = '20180101'; Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(“Администратор”); ИсторияДанных.ЗаписатьВерсию(Данные, ДатаСоздания, Пользователь.УникальныйИдентификатор, Пользователь.Имя, Пользователь.ПолноеИмя, ВидИзмененияДанных.Добавление, “Тестируем запись версий”); КонецПроцедуры

Процедура ЗаписьВерсииДанных()    Данные = Справочники.Справочник1.НайтиПоНаименованию(“Элемент1”).ПолучитьОбъект();    ДатаСоздания = '20180101';    Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(“Администратор”);    ИсторияДанных.ЗаписатьВерсию(Данные, ДатаСоздания,         Пользователь.УникальныйИдентификатор, Пользователь.Имя,         Пользователь.ПолноеИмя, ВидИзмененияДанных.Добавление,         “Тестируем запись версий”);

Получение списка версий

Легко представить, что при интенсивной работе пользователей в информационной базе может храниться очень значительное количество версий объектов. Следовательно для анализа истории данных скорее всего потребуется гибкий инструмент позволяющий нужные версии. Таким инструментом выступает метод ВыбратьВерсии(). Этот метод позволяет указать критерии отбора (первый параметр — Отбор).

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

  • Необходимо указать один из параметров — Метаданные или Данные, можно указать оба, но только в том случае, когда метаданные параметра Данные совпадают со значением параметра Метаданные;
  • Перед получением версий конкретного объекта рекомендуется выполнить обновление истории по этому объекту — ОбновитьИсторию(СсылкаНаОбъект);
  • Для отбора по пользователю используется идентификатор пользователя, который можно получить с помощью метода УникальныйИдентификатор() объекта ПользовательИнформационнойБазы;
  • Параметр ИзменениеЗначенийПолей позволяет отобрать только те версии в которых изменялись значения указанных полей;
  • Если на значения полей требуется наложить конкретные условия, то поможет параметр ЗначенияПолей.

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

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

Источник: https://1c-programmer-blog.ru/programmirovanie/istoriya-dannyh-v-1s.html

«Кто виноват», «Что делать» и чем поможет использование версионирования объектов в 1С

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

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

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

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

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

Вернувшись к старой работе, она обнаружила, что контрагент «Колокольчик» бесследно исчез.

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

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

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

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

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

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

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

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

Не исключение и сфера автоматизации торговли.

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

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

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

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

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

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

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

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

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

Нажмем гиперссылку «Версионируемые объекты» (правее флага включения версионирования) и перейдем в окно настройки:

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

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

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

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

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

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

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

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

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

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

  1. Открыть версию и посмотреть, как выглядел документ на определенный момент времени (когда с ним работал сотрудник). Для этого установим курсор на строку с версией и нажмем на кнопку «Открыть версию».
  2. Сравнить версии между собой, наглядно увидев, что изменялось в документе. Для этого, зажав клавишу Ctrl на клавиатуре, сначала щелкнем мышкой по одной версии, а затем по другой. После того, как две строки (не обязательно расположенные подряд) будут выбраны, нажмем кнопку «Сравнить версии». Откроется отчет, в котором будут показываться только изменения, сделанные в документе:
    Рисунок 5. Отчет по изменениям

    Мы видим, что в 10:40 утра пользователь Бахшиев зашел в Заказ покупателя, поменял в нем менеджера (указав себя) и перевел заказ в статус «Не согласован».

  3. Восстановить старую версию объекта.

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

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

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

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

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

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

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

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

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

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

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

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

Источник: https://1solution.ru/sobytiya/stati/ispolzovanie-versionirovaniya-obektov-v-1s.html

«Кто испортил документ?» или версионирование в УТ 11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Источник: https://xn----1-bedvffifm4g.xn--p1ai/ut11-articles/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D1%8F06/

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

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

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

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

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

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

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

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

    А при превращении мыслей в статью и вовсе все поменялось.

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

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

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

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

    Поэтому, в каждый объект, для которого требуется регистрация изменений реквизитов, добавляем реквизит “GUID” типа “Строка (32)”.

    Кроме того, в регистр сведений “История реквизитов” добавляем измерение “GUID объекта” типа “Строка (32)”.

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

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

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

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

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

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

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

    Да все просто, чтобы ссылочная целостность базы не нарушалась.

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

    Продолжаем.

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

    Я для примера сделал строкой.

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

    Кому 25 символов мало, может изменить на нужное количество.

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

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

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

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

    Переменная “НаборЗаписейИсторияОбъектов” вынесена в переменные модуля по той причине, что для нового объекта проверку реквизитов нужно делать в процедуре “ПередЗаписью”, а заполнять реквизит “Объект” значением “Ссылка” в процедуре “ПриЗаписи”, поскольку в процедуре “ПередЗаписью” еще нет ссылки для нового объекта.

    Перем НаборЗаписейИсторияОбъектов;Процедура ПередЗаписью(Отказ) НаборЗаписейИсторияОбъектов = РегистрыСведений.ИсторияОбъектов.

    СоздатьНаборЗаписей(); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, “Код”); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, “Наименование”); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, “Родитель”); ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, “Владелец”); Для А = 0 По ЭтотОбъект.Метаданные().Реквизиты.

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

    Записать(Ложь); КонецЕсли;КонецПроцедурыПроцедура ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ИмяРеквизита) Если ЭтотОбъект[ИмяРеквизита] Ссылка[ИмяРеквизита] Тогда НоваяЗапись = НаборЗаписейИсторияОбъектов.Добавить(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.Реквизит = ИмяРеквизита; НоваяЗапись.ИмяКомпьютера = ИмяКомпьютера(); НоваяЗапись.

    Пользователь = ПараметрыСеанса.ТекущийПользователь; НоваяЗапись.РаспределеннаяБаза = ПараметрыСеанса.ТекущаяРаспределеннаяБаза; НоваяЗапись.СтароеЗначение = Ссылка[ИмяРеквизита]; НоваяЗапись.НовоеЗначение = ЭтотОбъект[ИмяРеквизита]; КонецЕсли;КонецПроцедуры

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

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

    Замаялся.

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

    Начиная с версии 3.0.35 в программе 1С Бухгалтерия 8 ред. 3.0 стало доступно версионирование объектов. Данный механизм позволяет отслеживать историю изменения справочников и документов.

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

    Поделиться:
    Нет комментариев

      Добавить комментарий

      Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.