Как найти автора правок в документе 1С: журнал регистрации и история изменений
Содержание
Чтобы узнать в 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. Он хранит полную копию документа при каждой записи, поэтому видно, что именно поменялось.
- Откройте
Администрирование → Общие настройки. - Установите флажок «Хранить историю изменений».
- Перейдите по ссылке «Настройки хранения» рядом с флажком.
- Для нужных видов документов выберите вариант хранения: при записи или при проведении.
- Укажите срок хранения версий, чтобы база не росла бесконечно.
Версии сохраняются только с момента включения. Если история не была включена в марте, мартовские правки по ней не восстановить.
Поиск записей в журнале по конкретному документу
Отбор прямо по документу
- Откройте журнал регистрации.
- Нажмите «Установить отбор» (в формах БСП — «Отбор» в командной панели).
- Задайте интервал дат: чем он уже, тем быстрее откроется список.
- В поле «Данные» выберите документ через кнопку выбора: тип «Документ», вид, затем конкретный документ.
- В списке событий оставьте только события группы «Данные».
- Нажмите «ОК».
Получится короткий список всех операций с этим документом. Двойной щелчок по строке откроет подробности события.
Если список нужно показать руководителю или приложить к служебной записке, выведите его в табличный документ командой Ещё → Вывести список и сохраните в Excel. Так результат расследования останется у вас, даже если журнал потом сократят.
Другие полезные отборы
- 👤 По пользователю — что делал конкретный сотрудник за день. Удобно, когда известен автор, но неизвестен документ.
- 📂 По метаданным — все изменения документов одного вида, например «Реализация (акты, накладные)», за период.
- 💻 По компьютеру — если работали под общим логином.
- ⚙️ По приложению — отличает ручную правку от фонового задания или обмена данными. Обмен с другой программой тоже записывает документы, и журнал покажет его как отдельное приложение.
Если документ удалён
Удалённый документ нельзя выбрать в поле «Данные». Ищите по событию «Данные. Удаление» и метаданным за период. Номер и дата удалённого документа будут видны в колонке «Представление данных».
Пример: кто поменял сумму в акте
Ситуация: покупатель прислал акт сверки, а в 1С по реализации № 154 от 12 числа стоит 118 000 вместо 120 000 рублей. Порядок разбора:
- Отбор журнала: период — с 12 числа по сегодня, «Данные» — реализация № 154.
- В списке три события: «Добавление» и «Проведение» 12 числа от менеджера, затем «Проведение» 20 числа от бухгалтера Ивановой с компьютера BUH-03.
- Двойной щелчок по последнему событию: приложение «Тонкий клиент», время 16:42 — значит, правка ручная, а не обмен.
- В документе
Ещё → История измененийсравниваем версию 2 и версию 3: в строке «Консультационные услуги» цена изменилась с 20 000 на 18 000.
Дальше разговор уже не с базой, а с Ивановой: возможно, правка была по письму покупателя о скидке. Журнал и версии дают факты, а причину правки выясняют у людей.
Колонка «Сеанс» помогает собрать вместе все действия одного входа в программу. Отбор по номеру сеанса покажет, что ещё сотрудник менял в те же минуты.
Как понять, что именно поменяли в документе
Сравнение версий
Если история изменений включена, откройте сам документ и выберите Ещё → История изменений. Откроется список версий: номер, дата, автор, комментарий.
Дальше два варианта:
- Откройте одну версию, чтобы увидеть документ в том состоянии.
- Выделите две версии с зажатой клавишей
Ctrlи нажмите «Сравнить». Отчёт покажет изменённые реквизиты шапки и строки табличных частей: было — стало.
Это единственный штатный способ увидеть старое значение суммы, контрагента или счёта учёта. Журнал регистрации этих данных не хранит.
Если истории нет
Тогда остаётся только косвенный путь:
- 📅 по журналу узнать время каждой записи;
- 💾 развернуть резервную копию за дату до этого времени в отдельную базу;
- 🔍 открыть там документ и сравнить вручную.
Для документов с проводками помогает ещё отчёт «Движения документа» — но только в текущем состоянии. Старые проводки он не покажет.
Программная выгрузка журнала
Для разбора большого объёма событий журнал удобно выгрузить в таблицу значений методом ВыгрузитьЖурналРегистрации. Пример для внешней обработки, запускаемой под пользователем с правами администратора:
Таблица = Новый ТаблицаЗначений;
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()) - 7 * 86400);
Отбор.Вставить("ДатаОкончания", ТекущаяДата());
Отбор.Вставить("Данные", СсылкаНаДокумент);
ВыгрузитьЖурналРегистрации(Таблица, Отбор);
Для Каждого Строка Из Таблица Цикл
Сообщить(СтрШаблон("%1 | %2 | %3",
Строка.Дата, Строка.ИмяПользователя, Строка.Событие));
КонецЦикла;
Здесь СсылкаНаДокумент — ссылка на нужный документ. В колонке Событие платформа вернёт служебные имена вида _$Data$_.Update и _$Data$_.Post.
Ограничения журнала и нагрузка на базу
Журнал — не система полного аудита. Ниже то, что он не умеет или делает плохо.
| Ограничение | Что из этого следует |
|---|---|
| Хранит факт записи, а не значения реквизитов | для «было — стало» нужна история изменений |
| Записывает каждую перезапись | перепроведение за месяц даёт тысячи строк «Проведение» без реальных правок |
Не входит в выгрузку .dt | при переносе базы история теряется |
| Сокращается вручную или администратором | старых событий может просто не быть |
| Смотреть может только пользователь с правом на журнал | обычно это роль «Администратор» |
Размер и скорость
На уровне «Регистрировать все события» журнал активной базы растёт на сотни мегабайт в год, а при регулярном групповом перепроведении — быстрее. Большой журнал открывается медленно, отбор без периода может работать минутами.
Что помогает:
- Всегда ставить узкий интервал дат в отборе.
- Раз в год сокращать журнал, сохраняя удалённую часть в файл.
- Не отключать регистрацию ради скорости — потерянные события уже не вернуть.
История изменений тоже занимает место: каждая версия — это копия документа. Поэтому её включают выборочно, только для важных видов документов, и задают срок хранения.
Перепроведение документов за период создаёт по записи на каждый документ. Если ищете ручную правку, отфильтруйте события по приложению «Тонкий клиент» и исключите время, когда шло групповое перепроведение.
Как вернуть документ к прежнему состоянию
Ещё → История изменений в документе, выберите версию до ошибочной правки и нажмите «Перейти на версию». Документ перезапишется в старом виде. Если он проводится — перепроведите его.Порядок действий при откате версии
- Убедитесь, что после ошибочной правки документ никто не менял ещё раз. Иначе откат сотрёт и нужные изменения.
- Сравните текущую и целевую версии, чтобы точно знать, что вернётся.
- Выполните «Перейти на версию».
- Если документ проводится, перепроведите его и проверьте движения.
- Если от документа зависят последующие (закрытие месяца, расчёт себестоимости), повторите эти операции.
Перед откатом документов в закрытом периоде согласуйте действие с главным бухгалтером. Возврат версии изменит проводки, а с ними и сданную отчётность.
Удалённый документ
Если документ удалили окончательно, вернуть его с той же ссылкой штатными средствами нельзя. Надёжнее перенести его из резервной копии через выгрузку-загрузку данных или ввести заново по первичке. Журнал при этом подскажет номер, дату и время удаления.
Чтобы окончательное удаление не случалось незаметно, держите в базе удаление только через пометку: документ сначала помечают, а удаляет помеченные объекты администратор отдельной обработкой. Тогда «пропавший» документ почти всегда находится среди помеченных, и пометку можно снять.
Как не терять концы в будущем
- 👥 отдельный пользователь у каждого сотрудника, без общих логинов;
- 📊 уровень журнала «Регистрировать все события»;
- 📚 история изменений для ключевых документов: реализация, поступление, банковские выписки, начисление зарплаты;
- 🔒 дата запрета изменения данных для закрытых периодов:
Администрирование → Проведение документов(в БП 3.0) — правка задним числом станет невозможной без пароля; - 💾 ежедневная резервная копия с хранением хотя бы 2–4 недель;
- 🗂 копирование папки
1Cv8Logвместе с резервной копией базы — выгрузка.dtжурнал не содержит.
Дата запрета — самый действенный пункт. Если документ в закрытом квартале нельзя изменить без ведома главбуха, расследовать почти нечего.