Где 1С хранит историю операций: журнал регистрации и лог СУБД

· 9 мин

Содержание

Отдельного файла «журнал транзакций» у 1С:Предприятия 8.3 нет. Под этим названием ищут одно из двух: журнал регистрации (папка 1Cv8Log рядом с базой или в каталоге кластера) либо журнал транзакций СУБД — файл .ldf в MS SQL Server или каталог pg_wal в PostgreSQL. Открыть первый можно прямо из 1С, второй — только средствами СУБД.

Какой из них нужен, зависит от задачи. Хотите узнать, кто и когда изменил документ, — вам в журнал регистрации. Закончилось место на сервере СУБД или нужно восстановить базу на конкретный момент — речь о логе транзакций СУБД.

Что называют журналом транзакций в 1С и чем он отличается от лога СУБД

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

Сравним два журнала:

ПризнакЖурнал регистрации 1СЖурнал транзакций СУБД
Кто ведётПлатформа 1СMS SQL Server или PostgreSQL
Что хранитСобытия: вход, запись, проведение, удаление, ошибки, пользователь, компьютерФизические изменения страниц данных для восстановления и отката
Где лежитПапка 1Cv8LogФайл .ldf (MS SQL), каталог pg_wal (PostgreSQL)
Чем читать1С, режим «Предприятие» или КонфигураторСредства СУБД и сторонние утилиты
Есть в файловой базеДаНет
Для чего обычно нуженРасследование: кто, что, когдаРезервное копирование, восстановление на момент времени

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

Где находится журнал транзакций в файловой базе 1С

В файловом варианте вся база — это один файл 1Cv8.1CD. Транзакции СУБД пишутся внутрь него самого, отдельного лога нет. Журнал регистрации лежит в подпапке каталога базы:

<каталог базы>\1Cv8.1CD
<каталог базы>\1Cv8Log\

Каталог базы проще всего узнать в окне запуска 1С. Выделите базу в списке — путь отображается внизу окна. Второй способ: кнопка Изменить и строка с каталогом информационной базы.

Какие файлы внутри папки 1Cv8Log

Платформа поддерживает два формата журнала:

  • 📄 Последовательный формат — файл 1Cv8.lgf (справочник пользователей , компьютеров, метаданных) и набор файлов *.lgp с самими событиями. Имена .lgp содержат дату и время начала периода, например 20261001000000.lgp.
  • 🗃️ Формат SQLite — один файл 1Cv8.lgd. Это обычная база SQLite.

Определить формат легко по расширениям. Если в папке есть .lgd, журнал в SQLite. Если .lgf и .lgp — последовательный.

Не открывайте 1Cv8.lgd внешней программой, пока база в работе: платформа держит файл открытым, внешний редактор может его заблокировать. Скопируйте файл в другую папку и работайте с копией.

Где искать журнал в клиент-серверном варианте

В клиент-серверной базе файлов на две стороны: журнал регистрации хранит сервер 1С, а данные и лог транзакций — сервер СУБД. Нередко это разные компьютеры.

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

Журнал лежит в каталоге кластера на центральном сервере:

<каталог srvinfo>\reg_1541\<GUID базы>\1Cv8Log\

Если сервер ставился установщиком как служба с параметрами по умолчанию, каталог srvinfo обычно находится в C:\Program Files\1cv8\srvinfo. Точный путь виден в свойствах службы «Агент сервера 1С:Предприятия» — в командной строке запуска после ключа -d.

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

Как найти GUID нужной базы

Внутри reg_1541 лежат папки с длинными именами вида 3f2a...-.... Чтобы понять, какая из них ваша:

  1. Откройте файл 1CV8Clst.lst в папке reg_1541 обычным текстовым редактором (только чтение).
  2. Найдите имя базы — рядом с ним стоит её GUID.
  3. Либо выполните на сервере rac infobase --cluster=<UUID кластера> summary list — команда выводит идентификатор и имя каждой базы. UUID кластера покажет rac cluster list.

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

Журнал транзакций MS SQL Server

У каждой базы MS SQL есть файл данных .mdf и файл журнала транзакций .ldf. По умолчанию они лежат в папке DATA экземпляра:

C:\Program Files\Microsoft SQL Server\MSSQL<версия>.MSSQLSERVER\MSSQL\DATA\<имя базы>_log.ldf

Администратор при установке мог перенести файлы на другой диск. Точный путь даёт запрос в SQL Server Management Studio:

USE [имя_базы];
SELECT name, type_desc, physical_name, size * 8 / 1024 AS size_mb
FROM sys.database_files;

Строка с type_desc = LOG — и есть журнал транзакций.

Журнал транзакций PostgreSQL

В PostgreSQL аналог — журнал предзаписи (WAL). Он хранится в подкаталоге pg_wal каталога данных кластера PostgreSQL. В версиях до 10 каталог назывался pg_xlog.

Узнать каталог данных можно запросом в psql:

SHOW data_directory;

Файлы в pg_wal вручную не удаляйте: без них PostgreSQL не запустится или потеряет данные.

Как открыть и прочитать журнал транзакций 1С

Из режима «Предприятие»

В типовых конфигурациях на интерфейсе «Такси» (БП 3.0, ЗУП 3.1, УТ 11) журнал открывается так:

Администрирование → Обслуживание → Журнал регистрации

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

Из Конфигуратора

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

Как найти транзакции, а не просто события

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

  • ✅ Зафиксирована — изменения записаны в базу.
  • ❌ Отменена — транзакция откатилась, данные не изменились.
  • ⏳ Не завершена — транзакция была открыта в момент записи события.

Удобный приём для расследований: отбор по событию Данные. Удаление или Данные. Изменение плюс отбор по нужному объекту метаданных. Так за пару минут находится, кто пометил на удаление документ или поменял реквизит контрагента.

Внешними средствами

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

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

Лог транзакций MS SQL и WAL PostgreSQL для чтения человеком не предназначены. Их анализируют утилитами СУБД, а на практике чаще не читают, а контролируют размер и используют для восстановления.

Как включить, отключить и настроить ведение журнала

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

Уровни регистрации:

УровеньЧто пишетсяКогда выбирать
Не регистрировать событияНичегоПочти никогда: при инциденте не будет данных
Регистрировать ошибкиТолько ошибкиСлабый диск, нужна минимальная нагрузка
Ошибки и предупрежденияПлюс предупрежденияКомпромисс для больших баз
Ошибки, предупреждения и информациюПлюс информационные событияРабочий вариант для большинства баз
Регистрировать все событияВсё, включая примечанияРасследование, отладка, требования аудита

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

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

Как ограничить размер журнала

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

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

Как держать размер под контролем:

  1. В Настройке журнала регистрации нажмите Сократить.
  2. Укажите дату: события раньше неё удалятся.
  3. При необходимости отметьте сохранение удаляемых записей в файл — получится архив, который можно открыть позже.

Журнал транзакций MS SQL

Размер .ldf зависит от модели восстановления базы:

  • 🟢 Simple (простая) — место в журнале освобождается автоматически после контрольной точки. Подходит, если хватает ежедневных полных копий.
  • 🔴 Full (полная) — журнал растёт до тех пор, пока не будет сделана резервная копия журнала транзакций. Без регулярного BACKUP LOG файл разрастается до размеров диска.

Проверить, сколько занято и почему место не освобождается:

DBCC SQLPERF(LOGSPACE);

SELECT name, recovery_model_desc, log_reuse_wait_desc
FROM sys.databases;

Значение LOG_BACKUP в log_reuse_wait_desc значит: журнал ждёт резервной копии. Ограничение размера задаётся в SSMS: свойства базы → страница «Файлы» → у файла журнала кнопка в колонке автоувеличения. Там же переключатель между ограниченным максимальным размером и неограниченным ростом.

Жёсткий лимит размера .ldf опасен: когда журнал заполнится, MS SQL перестанет принимать изменения, и пользователи 1С получат ошибки при записи. Лучше настроить резервное копирование журнала, чем упираться в потолок.

Сжать уже разросшийся файл после резервной копии журнала или перехода на Simple можно так:

USE [имя_базы];
DBCC SHRINKFILE (N'имя_логического_файла_log', 1024);

Число 1024 — целевой размер в мегабайтах. Логическое имя берётся из колонки name запроса к sys.database_files. Сжатие нагружает диск — запускайте его вне рабочего времени.

WAL в PostgreSQL

Объём pg_wal регулируется параметром max_wal_size в postgresql.conf. Если каталог растёт бесконтрольно, проверьте неработающий архив WAL (archive_command) и забытые слоты репликации — они удерживают старые сегменты.

Сколько хранить журналы

Срок хранения в днях платформа не выставляет: решение за администратором. Рабочие ориентиры:

  • 📅 Журнал регистрации — минимум до сдачи отчётности за период плюс запас. Многие хранят 1–3 года онлайн, а старше сокращают с сохранением в файл.
  • 💾 Лог MS SQL при модели Full — столько, сколько охватывает цепочка резервных копий. Обычно 7–30 дней копий журнала поверх последней полной копии.
  • 🛠️ Технологический журнал (если включён через logcfg.xml в каталоге conf платформы) — у него атрибут history, срок задаётся в часах, а не в днях. Например, history="24" хранит сутки.

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

Типичные ошибки и что с ними делать

Диагностика: выберите симптом

Удалять или подменять файлы в 1Cv8Log на работающей серверной базе нельзя. Если нужно перенести журнал, сначала заблокируйте начало сеансов и дождитесь, пока все пользователи выйдут: остановка службы сервера 1С оборвёт их работу без сохранения.

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

Можно ли удалить папку 1Cv8Log?
Да, база после этого запустится и создаст журнал заново. Но вся история действий пользователей пропадёт. Надёжнее сократить журнал с сохранением старых событий в файл.
Видно ли в журнале, кто удалил документ?
Да, если уровень регистрации включает информационные события. Ищите событие «Данные. Удаление» с отбором по виду документа: в строке будут пользователь, компьютер и время.
Можно ли по журналу регистрации восстановить данные?
Нет. Журнал хранит факты действий, а не прежние значения реквизитов. Вернуть данные можно из резервной копии, а в MS SQL с моделью Full — восстановлением на момент времени по цепочке копий журнала транзакций.
Где лежит журнал транзакций, если база в облаке 1С:Фреш?
Доступа к файлам там нет. Журнал регистрации смотрят из самой программы через раздел «Администрирование», если у пользователя есть права администратора приложения.
Сколько места занимает журнал регистрации?
В небольшой бухгалтерской базе — обычно десятки или сотни мегабайт в год. В базе с обменами и частыми регламентными заданиями — несколько гигабайт в год и больше.