Журнал регистрации 1С на диске: файловая база, сервер, Linux

· 9 мин

Содержание

Журнал регистрации 1С хранится в папке 1Cv8Log. В файловой базе она лежит прямо в каталоге информационной базы, рядом с 1Cv8.1CD. В клиент-серверной базе журнала в SQL нет: он записывается на диск сервера 1С в каталог srvinfo\reg_1541\<GUID базы>\1Cv8Log.

Типичная ситуация: диск сервера внезапно заполнен на 95%, администратор ищет виновника и находит папку на 40 ГБ с непонятным именем из букв и цифр. Это и есть журнал регистрации одной из баз. Найти, какой именно, и навести порядок можно за 10-15 минут, если знать, где искать.

Где журнал регистрации в файловой базе

В файловом варианте всё лежит в одном каталоге. Путь к нему видно в окне запуска 1С: выделите базу в списке, внизу окна отобразится строка вида File="D:\Base\Buh".

Структура каталога:

  • 📁 D:\Base\Buh\1Cv8.1CD — сама база;
  • 📁 D:\Base\Buh\1Cv8Log\ — журнал регистрации;
  • 📁 рядом могут быть временные и служебные файлы, к журналу они не относятся.

Два формата файлов журнала

Внутри 1Cv8Log вы увидите один из двух наборов файлов.

ФорматФайлыКак устроен
Последовательный (старый)1Cv8.lgf + много файлов *.lgplgf — словарь: пользователи, компьютеры, объекты метаданных. lgp — сами события, по файлу на период
SQLite (новый)один файл 1Cv8.lgdВсё в одной базе SQLite: словари и события

Имена lgp-файлов составлены из даты и времени начала периода, например 20261001000000.lgp. По ним сразу видно, какой файл за какой месяц или день.

Последовательный формат удобнее обслуживать вручную: старые lgp можно архивировать и уносить с диска. Файл 1Cv8.lgf при этом не трогайте — без словаря события не прочитать.

Формат SQLite быстрее отбирает события по фильтру, но один большой lgd на десятки гигабайт хуже переносит сбои: повредился файл — теряется весь журнал, а не один период.

Журнал регистрации на сервере 1С (клиент-серверный режим)

Частая ошибка — искать журнал в базе MS SQL или PostgreSQL. Там его нет. СУБД хранит только данные конфигурации и учёта, а события пишет сам сервер 1С в свой каталог кластера.

Путь по умолчанию

ОС сервераТипичный путь
WindowsC:\Program Files\1cv8\srvinfo\reg_1541\<GUID>\1Cv8Log\
Linux/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID>/1Cv8Log/

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

Каталог srvinfo может быть перенесён на другой диск. Его фактическое расположение задаётся при запуске службы: на Windows откройте свойства службы «Агент сервера 1С:Предприятия 8.3» и посмотрите параметр -d в строке «Исполняемый файл».

"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "E:\srvinfo" -debug

Здесь журнал всех баз окажется в E:\srvinfo\reg_1541\. Номер платформы в пути — для примера, у вас он свой.

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

В reg_1541 лежит по папке на каждую базу кластера, и все называются GUID-ами. Связать имя базы с папкой можно тремя способами.

  1. Файл реестра кластера. Откройте в текстовом редакторе reg_1541\1CV8Clst.lst (только чтение, не сохраняйте изменения). Найдите поиском имя базы — GUID стоит непосредственно перед ним.

  2. Утилита rac. Команда выведет идентификаторы и имена всех баз:

    rac cluster list
    rac infobase summary list --cluster=<id кластера>
    

    Строка infobase — это и есть имя папки.

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

Файл 1CV8Clst.lst — реестр кластера. Испорченный файл ломает доступ ко всем базам сервера. Открывайте его копию, а не оригинал.

Если в кластере несколько рабочих серверов

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

Настройка уровня записи, разделения и очистки журнала

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

Через конфигуратор

  1. Откройте базу в режиме «Конфигуратор».
  2. Меню Администрирование → Настройка журнала регистрации.
  3. Выберите уровень записи: «Не регистрировать», «Регистрировать ошибки», «Регистрировать ошибки и предупреждения», «Регистрировать ошибки, предупреждения и информацию», «Регистрировать все события».
  4. Для последовательного формата укажите период разделения журнала. Месяц подходит большинству баз; для нагруженных — день.
  5. Кнопкой «Сократить» удалите события старше выбранной даты. Можно включить сохранение удаляемых записей в отдельный файл.

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

Через пользовательский режим

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

Сколько хранить

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

Разумная политика: держать на диске 6-12 месяцев, старшие периоды сокращать с выгрузкой в файл или архивировать lgp-файлы.

Архивация старых периодов вручную

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

@echo off
rem Перенос lgp старше 365 дней в архив. Файл словаря 1Cv8.lgf не трогаем.
set LOG=E:\srvinfo\reg_1541\<GUID>\1Cv8Log
set ARC=F:\Archive\1Cv8Log_Buh
if not exist "%ARC%" mkdir "%ARC%"
robocopy "%LOG%" "%ARC%" *.lgp /MOV /MINAGE:365

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

Ключ /MINAGE:365 у robocopy отбирает файлы по дате изменения. Последний файл периода меняется до конца месяца, поэтому запас в год гарантирует, что текущий файл не будет захвачен.

Разбор проблем по файлам журнала

Когда журнал «ведёт себя странно», причину почти всегда видно по содержимому папки 1Cv8Log.

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

Какая база съела диск

На сервере с десятком баз проще всего посчитать размер журнала каждой одной командой PowerShell:

Get-ChildItem "C:\Program Files\1cv8\srvinfo\reg_1541" -Directory |
  ForEach-Object {
    $log = Join-Path $_.FullName "1Cv8Log"
    if (Test-Path $log) {
      $size = (Get-ChildItem $log -Recurse -File | Measure-Object Length -Sum).Sum
      [PSCustomObject]@{ GUID = $_.Name; GB = [math]::Round($size / 1GB, 2) }
    }
  } | Sort-Object GB -Descending

Сверху списка окажется самый тяжёлый журнал. GUID из первой строки ищите в 1CV8Clst.lst или в выводе rac.

Как безопасно переименовать или заменить журнал

Порядок для повреждённого журнала:

  1. Предупредите пользователей: все сеансы базы будут завершены.
  2. Для файловой базы — дождитесь выхода всех пользователей. Для серверной — завершите сеансы базы в консоли кластера, а лучше остановите службу агента сервера в нерабочее время. Остановка службы обрывает сеансы всех баз кластера, а не одной.
  3. Переименуйте 1Cv8Log в 1Cv8Log_old.
  4. Запустите базу. Появится новая папка с чистым журналом.
  5. Старую папку сохраните, пока не убедитесь, что история не нужна.

Смена формата журнала

Формат выбирается по тому, какой файл платформа находит в 1Cv8Log. Практический приём: при остановленной работе базы перенесите содержимое папки в архив и положите туда пустой файл с именем 1Cv8.lgd — журнал начнёт вестись в формате SQLite. Пустой 1Cv8.lgf переключит базу на последовательный формат.

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

Файловый и серверный вариант: сравнение хранения

ПараметрФайловая базаКлиент-серверная база
Где лежит<каталог базы>\1Cv8Logsrvinfo\reg_<порт>\<GUID>\1Cv8Log на сервере 1С
В СУБД—Нет, только на диске сервера 1С
Кто пишетКлиентское приложение каждого пользователяПроцессы сервера 1С
Кому нужен доступ к папкеВсем пользователям базы (запись)Только учётной записи службы сервера 1С
Как найти папкуПуть из окна запускаGUID из 1CV8Clst.lst или rac infobase summary list
Попадает в копию каталогаДа, если копировать папку базы целикомНет, копируется отдельно из srvinfo
Попадает в выгрузку .dtНетНет

Вывод из таблицы простой: в серверной базе резервное копирование журнала нужно настраивать отдельно. Бэкап SQL его не сохранит.

Права доступа и защита журнала регистрации

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

Доступ в самой 1С

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

Доступ к файлам

  • 🔒 Файловая база. Пользователи должны иметь право записи в каталог базы, а значит, технически могут удалить и 1Cv8Log. Если журнал нужен как доказательство, регулярно копируйте его в каталог, куда у пользователей нет доступа.
  • 🔒 Серверная база. Доступ к srvinfo нужен только учётной записи, под которой работает служба (обычно USR1CV8). Права администраторов сервера ограничьте кругом тех, кто реально обслуживает 1С.
  • 🔒 Архивы журнала. Выгруженные файлы содержат ту же информацию, что и журнал. Храните их там же, где резервные копии баз, с теми же ограничениями.

Для выгрузки событий в XML есть метод встроенного языка ВыгрузитьЖурналРегистрации(). Его используют, чтобы регулярно складывать историю за период в отдельное хранилище и не держать огромный журнал в рабочей базе.

Журнал регистрации и технологический журнал

Не путайте их. Журнал регистрации пишется всегда и хранит бизнес-события: вход пользователя, запись документа, ошибки. Технологический журнал включается отдельно файлом logcfg.xml, пишет низкоуровневые события платформы и складывается в каталог, указанный в этом файле. Если на сервере нашлась папка с файлами *.log по часам — это технологический журнал, а не журнал регистрации.

Частые вопросы о хранении журнала

Можно ли перенести журнал регистрации на другой диск?
Для серверной базы — только вместе со всем каталогом srvinfo: меняют параметр -d службы агента и переносят папку при остановленной службе. Для файловой базы журнал всегда лежит рядом с базой.
Можно ли просто удалить папку 1Cv8Log?
Технически да, при закрытых сеансах платформа создаст новый журнал. Но вся история событий пропадёт. Надёжнее сократить журнал в конфигураторе с выгрузкой удаляемых записей.
Почему GUID папки не совпадает с именем базы в SQL?
GUID присваивает кластер 1С при регистрации базы. Имя базы в СУБД задаёт администратор, и оно с идентификатором кластера никак не связано.
Сохранится ли журнал, если удалить базу из кластера и добавить заново?
Нет. Новая регистрация получит новый GUID и новую пустую папку. Старую папку журнала можно найти в reg_1541 и открыть отдельно.
Чем открыть файл журнала без 1С?
Файл 1Cv8.lgd — обычная база SQLite, её читает любой просмотрщик SQLite. Файлы lgp текстовые, но без словаря lgf в них только номера вместо имён, поэтому удобнее смотреть журнал средствами самой 1С.