Как найти автора правок в документе 1С: журнал регистрации и история изменений

· 9 мин

Содержание

Чтобы узнать в 1С, кто и когда изменял документ, откройте журнал регистрации (в БП 3.0 и ЗУП 3.1 — Администрирование → Обслуживание, группа «Протоколы работы»), поставьте отбор по полю «Данные» на нужный документ и посмотрите события «Данные. Изменение», «Данные. Проведение» и «Данные. Отмена проведения». В каждой строке будут дата и время, пользователь, компьютер и сеанс.

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

Как 1С записывает изменения документов

Журнал регистрации — механизм самой платформы 1С:Предприятие 8.3. Он работает в любой конфигурации, даже в самописной. Платформа сама пишет туда событие каждый раз, когда объект записывают в базу.

Для документа это такие события:

  • 📝 Данные. Добавление — документ создан и записан впервые;
  • ✏️ Данные. Изменение — документ перезаписан (в том числе при установке пометки удаления);
  • ✅ Данные. Проведение — документ проведён или перепроведён;
  • ↩️ Данные. Отмена проведения — проведение отменено;
  • 🗑 Данные. Удаление — документ удалён из базы окончательно.

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

Где лежит журнал физически

  • 💾 Файловая база — папка 1Cv8Log внутри каталога базы. В современных версиях это один файл 1Cv8.lgd; в старом формате — набор файлов .lgp и файл 1Cv8.lgf.
  • 🖥 Клиент-серверная база — каталог службы сервера: srvinfo\reg_1541\<идентификатор базы>\1Cv8Log.

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

Почему журнал может показать «<Не указан>»

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

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

Заведите каждому сотруднику отдельного пользователя. Без этого никакой аудит изменений в 1С не работает.

Включаем регистрацию событий и историю изменений

Уровень журнала регистрации

Уровень логирования задают в Конфигураторе: Администрирование → Настройка журнала регистрации. Вариантов пять:

УровеньЧто попадает в журналВидно ли изменения документов
Не регистрироватьничегонет
Регистрировать ошибкитолько ошибкинет
Регистрировать ошибки и предупрежденияошибки и предупреждениянет
Регистрировать ошибки, предупреждения и информациюплюс информационные событиячастично
Регистрировать все событиявсё, включая события «Данные»да

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

В этом же окне есть команда «Сократить» — она удаляет записи старше выбранной даты. Удалённые события можно предварительно сохранить в файл.

История изменений (версионирование объектов)

Это механизм Библиотеки стандартных подсистем, он есть в БП 3.0, ЗУП 3.1, УТ 11, КА и ERP. Он хранит полную копию документа при каждой записи, поэтому видно, что именно поменялось.

  1. Откройте Администрирование → Общие настройки.
  2. Установите флажок «Хранить историю изменений».
  3. Перейдите по ссылке «Настройки хранения» рядом с флажком.
  4. Для нужных видов документов выберите вариант хранения: при записи или при проведении.
  5. Укажите срок хранения версий, чтобы база не росла бесконечно.

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

Поиск записей в журнале по конкретному документу

Отбор прямо по документу

  1. Откройте журнал регистрации.
  2. Нажмите «Установить отбор» (в формах БСП — «Отбор» в командной панели).
  3. Задайте интервал дат: чем он уже, тем быстрее откроется список.
  4. В поле «Данные» выберите документ через кнопку выбора: тип «Документ», вид, затем конкретный документ.
  5. В списке событий оставьте только события группы «Данные».
  6. Нажмите «ОК».

Получится короткий список всех операций с этим документом. Двойной щелчок по строке откроет подробности события.

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

Другие полезные отборы

  • 👤 По пользователю — что делал конкретный сотрудник за день. Удобно, когда известен автор, но неизвестен документ.
  • 📂 По метаданным — все изменения документов одного вида, например «Реализация (акты, накладные)», за период.
  • 💻 По компьютеру — если работали под общим логином.
  • ⚙️ По приложению — отличает ручную правку от фонового задания или обмена данными. Обмен с другой программой тоже записывает документы, и журнал покажет его как отдельное приложение.

Если документ удалён

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

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

Ситуация: покупатель прислал акт сверки, а в 1С по реализации № 154 от 12 числа стоит 118 000 вместо 120 000 рублей. Порядок разбора:

  1. Отбор журнала: период — с 12 числа по сегодня, «Данные» — реализация № 154.
  2. В списке три события: «Добавление» и «Проведение» 12 числа от менеджера, затем «Проведение» 20 числа от бухгалтера Ивановой с компьютера BUH-03.
  3. Двойной щелчок по последнему событию: приложение «Тонкий клиент», время 16:42 — значит, правка ручная, а не обмен.
  4. В документе Ещё → История изменений сравниваем версию 2 и версию 3: в строке «Консультационные услуги» цена изменилась с 20 000 на 18 000.

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

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

Как понять, что именно поменяли в документе

Сравнение версий

Если история изменений включена, откройте сам документ и выберите Ещё → История изменений. Откроется список версий: номер, дата, автор, комментарий.

Дальше два варианта:

  1. Откройте одну версию, чтобы увидеть документ в том состоянии.
  2. Выделите две версии с зажатой клавишей Ctrl и нажмите «Сравнить». Отчёт покажет изменённые реквизиты шапки и строки табличных частей: было — стало.

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

Если истории нет

Тогда остаётся только косвенный путь:

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

Для документов с проводками помогает ещё отчёт «Движения документа» — но только в текущем состоянии. Старые проводки он не покажет.

Программная выгрузка журнала

Для разбора большого объёма событий журнал удобно выгрузить в таблицу значений методом ВыгрузитьЖурналРегистрации. Пример для внешней обработки, запускаемой под пользователем с правами администратора:

Таблица = Новый ТаблицаЗначений;
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()) - 7 * 86400);
Отбор.Вставить("ДатаОкончания", ТекущаяДата());
Отбор.Вставить("Данные", СсылкаНаДокумент);

ВыгрузитьЖурналРегистрации(Таблица, Отбор);

Для Каждого Строка Из Таблица Цикл
    Сообщить(СтрШаблон("%1 | %2 | %3",
        Строка.Дата, Строка.ИмяПользователя, Строка.Событие));
КонецЦикла;

Здесь СсылкаНаДокумент — ссылка на нужный документ. В колонке Событие платформа вернёт служебные имена вида _$Data$_.Update и _$Data$_.Post.

Ограничения журнала и нагрузка на базу

Журнал — не система полного аудита. Ниже то, что он не умеет или делает плохо.

ОграничениеЧто из этого следует
Хранит факт записи, а не значения реквизитовдля «было — стало» нужна история изменений
Записывает каждую перезаписьперепроведение за месяц даёт тысячи строк «Проведение» без реальных правок
Не входит в выгрузку .dtпри переносе базы история теряется
Сокращается вручную или администраторомстарых событий может просто не быть
Смотреть может только пользователь с правом на журналобычно это роль «Администратор»

Размер и скорость

На уровне «Регистрировать все события» журнал активной базы растёт на сотни мегабайт в год, а при регулярном групповом перепроведении — быстрее. Большой журнал открывается медленно, отбор без периода может работать минутами.

Что помогает:

  1. Всегда ставить узкий интервал дат в отборе.
  2. Раз в год сокращать журнал, сохраняя удалённую часть в файл.
  3. Не отключать регистрацию ради скорости — потерянные события уже не вернуть.

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

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

Как вернуть документ к прежнему состоянию

Что есть в вашей базе?

Порядок действий при откате версии

  1. Убедитесь, что после ошибочной правки документ никто не менял ещё раз. Иначе откат сотрёт и нужные изменения.
  2. Сравните текущую и целевую версии, чтобы точно знать, что вернётся.
  3. Выполните «Перейти на версию».
  4. Если документ проводится, перепроведите его и проверьте движения.
  5. Если от документа зависят последующие (закрытие месяца, расчёт себестоимости), повторите эти операции.

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

Удалённый документ

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

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

Как не терять концы в будущем

  • 👥 отдельный пользователь у каждого сотрудника, без общих логинов;
  • 📊 уровень журнала «Регистрировать все события»;
  • 📚 история изменений для ключевых документов: реализация, поступление, банковские выписки, начисление зарплаты;
  • 🔒 дата запрета изменения данных для закрытых периодов: Администрирование → Проведение документов (в БП 3.0) — правка задним числом станет невозможной без пароля;
  • 💾 ежедневная резервная копия с хранением хотя бы 2–4 недель;
  • 🗂 копирование папки 1Cv8Log вместе с резервной копией базы — выгрузка .dt журнал не содержит.

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

Частые вопросы

Видит ли обычный бухгалтер журнал регистрации?
Нет, если у него нет права на журнал регистрации. В типовых конфигурациях оно входит в роль администратора, поэтому смотреть журнал обычно приходится через администратора базы.
Может ли пользователь удалить свои записи из журнала?
Через программу — только пользователь с административными правами, командой сокращения журнала. Удалить отдельную строку штатно нельзя: сокращение режет весь журнал до выбранной даты.
Почему в журнале правка есть, а в истории версий её нет?
Версия могла не сохраниться, если для этого вида документов задано хранение только при проведении, а документ просто записали. Проверьте вариант в «Настройках хранения».
Пишет ли журнал изменения, сделанные через обмен данными?
Да. Такие записи отличаются пользователем, от имени которого идёт обмен, и приложением: фоновое задание или COM-соединение.
Хранит ли журнал, кто открывал документ без изменений?
Нет. Просмотр документа событием не считается, в журнал попадает только запись в базу.