Почему после переноса базы 1С на другой сервер журнал регистрации оказался пустым?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

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

---

Причина 1: Несовпадение GUID базы данных после переноса (смена идентификатора)

При переносе базы данных на новый сервер администрирования кластера 1С практически всегда создается новая информационная база в консоли кластера. В этот момент платформа автоматически генерирует для нее новый уникальный идентификатор — GUID (глобальный уникальный идентификатор).

Физически файлы журнала регистрации хранятся на сервере приложений 1С в каталоге:

C:\Program Files\1cv8\srvinfo\reg_1541\<GUID_базы>\1Cv8Log

Разберем по шагам, что происходит во время миграции:

  1. Администратор развернул резервную копию SQL на новом сервере СУБД.
  2. В консоли администрирования кластера 1С была создана новая запись для подключения к этой СУБД. Ей присвоился новый GUID, например: a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d.
  3. Сервер приложений 1С создал в системном каталоге srvinfo новую пустую папку с этим именем и вложенную папку 1Cv8Log с пустым файлом журнала.
  4. Старый журнал регистрации остался лежать на старом сервере или был скопирован в папку со старым идентификатором GUID.

Решение проблемы:

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

  1. Зайдем в консоль администрирования кластера 1С и определим точный GUID нашей новой информационной базы (его можно посмотреть в свойствах базы).
  2. Остановим службу «Агент сервера 1С:Предприятия» через утилиту управления службами Windows (services.msc). Это необходимо, чтобы освободить занятые процессами файлы.
  3. Перейдем в каталог C:\Program Files\1cv8\srvinfo\reg_1541\.
  4. Найдем папку с актуальным GUID новой базы и откроем в ней каталог 1Cv8Log.
  5. Скопируем файлы старого журнала регистрации (файл 1Cv8.lgd для нового формата SQLite или файлы .lgf и файлы папок дней для старого формата) и вставим их в эту папку с заменой существующих пустых файлов.
  6. Запустим службу «Агент сервера 1С:Предприятия».

---

Причина 2: Отсутствие прав у учетной записи службы 1С (USR1CV8)

Если старый журнал был перенесен корректно, но новые события все равно не регистрируются и журнал остается пустым с момента переноса, проблема кроется в правах доступа операционной системы Windows.

Запись в журнал регистрации осуществляет не клиентский компьютер и не СУБД, а рабочий процесс сервера приложений 1С — rphost. Этот процесс запускается от имени системного пользователя, назначенного службе «Агент сервера 1С:Предприятия». По умолчанию в ОС Windows это локальный пользователь USR1CV8 (или локальная система SYSTEM).

Выясним причину сбоя: при разворачивании системы на новом сервере Windows 10/11 или Windows Server учетной записи USR1CV8 часто забывают выдать полные права на чтение и запись в каталог хранения данных кластера (srvinfo).

Решение проблемы:

  1. Откроем проводник Windows и перейдем к каталогу C:\Program Files\1cv8\.
  2. Нажмем правой кнопкой мыши на папку srvinfo (или непосредственно на вложенную папку 1Cv8Log нужной базы) и выберем пункт «Свойства».
  3. Перейдем на вкладку «Безопасность» и нажмем кнопку «Изменить».
  4. Проверим наличие пользователя USR1CV8 (или той учетной записи, под которой запускается служба сервера 1С) в списке пользователей.
  5. Если пользователя нет, нажмем кнопку «Добавить», введем имя пользователя и подтвердим выбор.
  6. Установим для этой учетной записи галочку «Полный доступ» (или как минимум права на «Запись», «Модификацию», «Чтение и выполнение»).
  7. Нажмем кнопку «Дополнительно» и убедимся, что права унаследованы на все вложенные папки и файлы (включая файлы журнала 1Cv8.lgd).
  8. Перезапустим службу сервера 1С для применения настроек безопасности.

---

Причина 3: Программное отключение или изменение уровня логирования

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

Уровень ведения журнала регистрации может управляться программно с использованием встроенного языка 1С. Проанализируем ситуацию, при которой при старте системы отрабатывает следующий код:


УстановитьРежимЗаписиЖурналаРегистрации(РежимЗаписиЖурналаРегистрации.НеРегистрировать);

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

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

Способ 1. Через Конфигуратор:

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

Способ 2. Через режим Предприятия (для версий платформы 8.3.17 и выше):

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

Рассмотрим пример кода, который возвращает стандартный режим записи всех событий:


ТекущийРежим = ПолучитьРежимЗаписиЖурналаРегистрации();
Если ТекущийРежим = РежимЗаписиЖурналаРегистрации.НеРегистрировать Тогда
    УстановитьРежимЗаписиЖурналаРегистрации(РежимЗаписиЖурналаРегистрации.ВсеСобытия);
КонецЕсли;

---

Причина 4: Повреждение базы данных SQLite (формат файла .lgd)

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

Если во время переноса базы данных файлы журнала копировались «на горячую» (при работающей службе 1С) или произошел сбой сети, структура SQLite могла повредиться (в логах это отражается как внутренняя ошибка базы данных database disk image is malformed).

При повреждении файла 1Cv8.lgd платформа 1С теряет возможность производить новые записи. Журнал регистрации в режиме Предприятия при этом открывается абсолютно пустым.

Решение проблемы:

Проанализируем шаги по восстановлению поврежденного файла SQLite:

  1. Остановим службу сервера 1С:Предприятия.
  2. Сделаем резервную копию поврежденного файла 1Cv8.lgd из каталога журнала в надежное место.
  3. Попробуем выполнить утилиту проверки целостности SQLite. Для этого нам понадобится официальная консольная утилита sqlite3.exe (ее можно скачать с официального сайта SQLite).
  4. Выполним в командной строке команду экспорта и импорта данных для восстановления структуры файла:

sqlite3 1Cv8.lgd ".clone 1Cv8_recovered.lgd"

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

Если восстановить файл не удается, временно перенесем старый поврежденный файл из каталога. При запуске служба сервера 1С автоматически создаст новый чистый файл 1Cv8.lgd, и запись событий начнется с нуля.

---

Причина 5: Нехватка свободного места на системном диске сервера

По умолчанию каталог srvinfo располагается на системном диске C:\ сервера приложений 1С. При переносе информационной базы на новый сервер (особенно если это персональный компьютер под управлением Windows 10, используемый в качестве временного сервера) дисковое пространство может быстро закончиться.

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

Решение проблемы:

  1. Проверим объем свободного пространства на диске C:\ сервера приложений.
  2. Очистим временные файлы ОС, кэш пользователей 1С или перенесем каталог srvinfo на другой логический диск с большим объемом памяти (это делается путем изменения параметров запуска службы в реестре Windows или через настройки утилиты запуска сервера 1С).

---

Как определить, был ли старый журнал удален вручную?

В процессе обсуждения часто возникает вопрос: а не стер ли кто-то файлы журнала регистрации вручную перед или во время переноса? Выясним это с помощью анализа файловой системы и логов операционной системы.

Таким образом, мы детально рассмотрели все возможные причины пустеющего журнала регистрации после миграции базы данных. Своевременный контроль соответствия GUID баз, настройка прав доступа пользователя USR1CV8 и периодическая проверка дискового пространства позволят вам гарантировать сохранность истории действий пользователей в вашей системе.

← На главную