При работе с платформой 1С:Предприятие или при попытке выполнить обновление конфигурации многие пользователи сталкиваются с критической ошибкой: Ошибка формата файла журнала регистрации по причине: sqlite3_exec failed: disk I/O error db: C:\...\1Cv8.lgd sql: PRAGMA journal_mode = delete. Разберем эту ситуацию по шагам, выясним причину ее возникновения и рассмотрим подробнее эффективные способы ее решения.
Начиная с версии платформы 8.3.5, разработчики 1С перевели журнал регистрации на новый формат хранения данных — базу SQLite. Файлы этого формата имеют расширение .lgd. Формат SQLite удобен для быстрых выборок, однако он обладает рядом архитектурных особенностей, которые могут приводить к сбоям. Проанализируем основные причины повреждения файла:
1Cv8.lgd может повредиться.disk I/O error.Если история действий пользователей за предыдущие периоды для вас не критична, самым простым и быстрым способом восстановить работоспособность базы является удаление поврежденного файла. При следующем запуске платформа 1С автоматически создаст новый, чистый файл 1Cv8.lgd.
Разберем по шагам, как это сделать правильно, поскольку пользователи часто жалуются, что файл "не удаляется" или "появляется заново при очистке":
Shift + Delete для безвозвратного удаления файла 1Cv8.lgd. Как альтернатива — вырежьте файл и переместите его в другую директорию на диске.USR1CV8), есть полные права на папку с базой.Если журнал содержит критически важную информацию о работе пользователей, простое удаление нам не подойдет. Посмотрим на пример того, как можно восстановить структуру базы SQLite с помощью официальной консольной утилиты sqlite3.exe.
1Cv8.lgd в отдельную резервную папку.sqlite3.exe.
sqlite3.exe 1Cv8.lgd ".dump" >> backup.sql
sqlite3.exe new_1Cv8.lgd < backup.sql
После завершения процесса (что может занять несколько часов для больших баз), переименуйте new_1Cv8.lgd в 1Cv8.lgd и поместите обратно в папку 1Cv8Log. Запустите сервер 1С.
Многие системные администраторы приходят к выводу, что новый формат нестабилен для их условий. Чтобы ошибка больше не появлялась, можно принудительно перевести базу на старый текстовый формат ведения логов. Разберем, как это сделать:
1Cv8Log.1Cv8.lgf. Обязательно убедитесь, что у файла расширение именно .lgf, а не .lgf.txt.При следующем старте платформа 1С обнаружит файл старого формата и переключится на последовательную запись в текстовые файлы, которые значительно более устойчивы к сбоям по питанию и дисковым ошибкам.
Если вы решили остаться на формате .lgd, мы настоятельно рекомендуем выполнять следующие процедуры по обслуживанию:
VACUUM через утилиту sqlite3 для дефрагментации файла и высвобождения пустого пространства.1Cv8Log и расширение .lgd в исключения вашего антивирусного программного обеспечения, чтобы оно не блокировало файл во время транзакций.Проанализировав все вышеописанные шаги, вы сможете не только быстро восстановить доступ к базе, но и предотвратить появление подобных ошибок в будущем, настроив работу журнала регистрации под нужды вашей компании.