1с как узнать был ли модифицирован документ

Обновлено: 04.07.2024

Наша статья «Документ в 1С изменен. Как узнать, кто это сделал?» очень популярна среди пользователей. Благодаря ей вы можете узнать общие данные: кто и когда создал документ, изменил его или удалил. Но вот что именно удалил либо поменял пользователь в конкретном документе, вы не увидите. А хотелось бы, правда? Для решения этого вопроса разработчики внедрили в программу 1С специальный механизм хранения версий объектов, так называемое версионирование, с помощью которого вы как раз можете увидеть всю конкретику измененных документов. В этой статье мы расскажем обо всех плюсах и минусах версионирования, а также покажем на конкретном примере в 1С: Зарплата и управление персоналом ред. 3.1 как именно работает этот механизм.

Начиная с платформы 8.3.11, механизм версионирования встроен в систему и называется «История данных». Он имеется во всех конфигурациях, работающих на основе библиотеки стандартных подсистем (БСП). Например, в 1С: Бухгалтерии предприятия он реализован начиная с версии 3.0.35.

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

Версионирование – это механизм хранения истории изменения объектов в 1С, который позволяет:

• просматривать, какие изменения внес пользователь в объект (справочник, документ);

• анализировать версии объектов;

• сравнивать эти версии между собой;

• восстанавливать любую из версий объекта.

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

Плюсов данного функционала, конечно, много.

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

Как включить версионирование в 1С?

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

Для включения версионирования объектов выполните следующие пункты.

Шаг 1. Перейдите в раздел «Администрирование» - «Общие настройки».

Пример раздела в 1С: Зарплата и управление персоналом, ред. 3.1.

Пример раздела в 1С: Бухгалтерия предприятия ред. 3.0.

Шаг 2. Разверните подраздел «История изменений» и установите галочку «Хранить историю изменений». Для перехода к настройкам нажмите гиперссылку «Настроить».

Как видите, в 1С: ЗУП и 1С: Бухгалтерии предприятия эти пункты выглядят совершенно одинаково. Соответственно, и настройка версионирования во всех конфигурациях 1С выполняется аналогично, т.к. это одна подсистема.

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

Рассмотрим основные настройки подсистемы «Версионирование» и механизма «Хранение данных» на примере программы 1С: Зарплата и управление персоналом ред. 3.1.

В составе объектов настройки два пункта: справочники и документы.

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

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

Параметр «Когда сохранять версии»

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

Значение параметра «Когда сохранять версии» может принимать значение:

• «При записи» - версия сохраняется при создании или изменении справочника либо документа.

• «При проведении» - применима для документов, для которых предусмотрено проведение. Запись производится при их проведении.

• «Никогда» - запись истории изменения объекта не ведется.

Применить настройки можно и к группе объектов.

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

В данном пункте, кроме описанных выше вариантов, доступна настройка «По умолчанию». В данном случае устанавливаются рекомендуемые настройки. Для справочников это – «Никогда», для документов – «При проведении».

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

Параметр «Срок хранения версий»

Аналогично задается параметр «Срок хранения версий».

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

Он может принимать значение:

• «За последнюю неделю»;

• «За последний месяц»;

• За последние три месяца»;

• «За последний год»;

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

Выделите объекты, нажмите вышеуказанную кнопку и выберите нужное значение.

Рассмотрим настройку на примере.

Пример настройки версионирования в 1С: ЗУП ред. 3.1

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

После того, как активировано версионирование, в объектах 1С станут доступны кнопки в виде карандаша с часиками – «Перейти к истории изменений».

В нашем примере она расположена в журнале документов на панели инструментов, а также по нажатию кнопки «Еще».

Во втором варианте она выглядит как строка – «История изменений».

При открытии документа, в нем также присутствует такая кнопка и команда по нажатию кнопки «Еще».

Рассмотрим пример, когда бухгалтер вносила изменения в документ «Начисление зарплаты и взносов».

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

Нажмите «кнопку-карандашик» - «Перейти к истории изменений».

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

Для просмотра версии выделите строку и нажмите кнопку «Открыть версию».

В отчете представлены вся информация, показатели и данные документа выделенной версии. Кнопками «+» и «-» можно свернуть и развернуть блоки для удобства чтения.

В нашем примере мы знаем, что пользователь изменил зарплату по окладу Булочкиной О.И. на 75000 руб.

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

Для этого есть функция сравнения с помощью одноименной кнопки «Сравнить».

Для сравнения версий выделите нужные строки (с помощью Shift или Ctrl) и нажмите кнопку «Сравнить».

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

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

Пролистав таблицу, мы видим, что пользователем Кругловой О. были изменены данные по Булочкиной О.И. Сохраненные версии №1 и №2 идентичные, а в версии №3 прослеживаются изменения.

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

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

Как это сделать?

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

В моделируемом примере нас устроит версия №2 (до внесения изменений). На нее и перейдем.

В результате проведенных манипуляций в таблице «История изменений: Начисление зарплаты и взносов от 31.08.2021» появилась четвертая версия документа с пометкой – «Выполнен переход к версии №2 от 10.08.2021 18:32:49» (пример моделировался 10.08.2021).

Откройте документ и проверьте, что в нем изменилось.

Документ перешел к варианту до внесения в него изменений. В нашем примере зарплата сотрудника Булочкиной О.И. автоматически изменилась на 67000 руб. (напомним, она была изменена ранее на 75000 руб.). Начисление НДФЛ и страховых взносов также приняло прежние значения. Т.е. документ полностью принял первоначальный вид.

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

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

Объем хранимых версий объектов и их удаление в 1С

Вернемся к разделу «Настройка и хранение истории изменений».

Нажмите гиперссылку «Количество и объем хранения версий объектов».

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

В нашем примере видно, что объект – документ «Начисление зарплаты и взносов» имеет четыре версии и этот объем данных занимает 0,01Мб.

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

Обратите внимание на строку «Очистка устаревших версий». У нас пока таковых не имеется, но при их появлении появится кнопка «Очистить». Здесь также выводится информация об их количестве и объеме. Нажав на эту кнопку старые, неактуальные версии удаляются.

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

Теперь вы знаете что такое версионирование и как настроить хранение истории изменения справочников и документов в программах 1С.

Как говорится: «Все гениальное – просто!». Экспериментируйте, используйте данный функционал программы и, главное, не бойтесь что-то испортить, ведь всегда можно вернуть версию объекта. Если вы сочтете это ненужным, то в любой момент вы сможете отключить данную настройку.

Признак модифицированности у формы

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

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

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

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

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

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

Проверка изменения данных при записи объектов

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

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

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

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

Например, считывание может быть выполнено обращением через ссылку:

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

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

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

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

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


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

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

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

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

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

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

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



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



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


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

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

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

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

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

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

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

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

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


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

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

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

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

Читайте также: