Разберем типичную аварийную ситуацию, с которой сталкиваются пользователи и администраторы файловых баз «1С:Предприятие»: в каталоге временных файлов AppData\Local\Temp лавинообразно формируются сотни файлов вида 1c8_*.tmp размером по несколько мегабайт, диск моментально переполняется, а сеансы пользователей зависают. При проверке встроенной утилитой chdbfl.exe выводится длинный список ошибок: «Повреждена таблица размещения внутреннего файла», «Обнаружено рассогласование между данными и индексами таблицы» и «Во внутреннем файле данных таблицы имеются потерянные записи». Выясним, почему это происходит, насколько опасна ситуация и как пошагово восстановить работоспособность информационной базы.
Проанализируем механику возникновения проблемы. Файловая информационная база (файл 1Cv8.1CD) представляет собой внутреннюю СУБД со своей структурой страниц данных, индексов и таблиц размещения. Когда с такой базой работают несколько пользователей по локальной сети через общий сетевой ресурс (папку Windows Share / SMB), целостность файла оказывается под постоянной угрозой. Основные причины повреждений:
Opportunistic Locks / Oplocks и кэширование SMB2/SMB3) при малейшем микроразрыве соединения приводят к тому, что часть страниц данных сбрасывается на диск с опозданием. Индексы перестают соответствовать фактическим данным в таблицах.1Cv8.1CD или создаваемые временные файлы «на лету» приводит к кратковременной блокировке дескрипторов, обрыву транзакций платформы 1С и повреждению страниц размещения.Temp пользователя в виде файлов 1c8_*.tmp до тех пор, пока на системном диске полностью не закончится свободное место.Прежде чем предпринимать любые действия по лечению базы, зафиксируем золотое правило администратора: всегда создаем полную физическую копию каталога с базой данных. Утилиты восстановления при исправлении ошибок физически вырезают поврежденные участки, поэтому без исходной копии восстановить потерянные документы или проводки будет невозможно.
1cv8.exe и 1cv8c.exe через «Диспетчер задач».1Cv8.1CD на другой физический диск или в отдельную архивную папку.AppData\Local\Temp на сервере и клиентских ПК.Утилита chdbfl.exe входит в комплект платформы и располагается в каталоге исполняемых файлов (обычно C:\Program Files\1cv8\номер_версии\bin\chdbfl.exe). Она работает исключительно с физической структурой файла 1Cv8.1CD.
Рассмотрим порядок работы с утилитой:
chdbfl.exe от имени администратора.1Cv8.1CD.Обратим внимание на поведение утилиты: при обнаружении потерянных записей или разрушенных индексов утилита перестраивает таблицы размещения, а некорректные страницы физически удаляет. Повреждение таблицы _SYSTEMSETTINGS (настройки пользователей) абсолютно безопасно для учетных данных, так как в ней хранятся только персональные настройки форм и списков. Однако повреждения в таблицах документов (_DOCUMENT*) и регистров (_ACCUMRG*) могут привести к выпадению отдельных строк или записей движений.
После отработки утилиты chdbfl.exe физическая структура файла нормализована, но логические связи и индексы по-прежнему требуют восстановления. Запустим базу в режиме Конфигуратор и перейдем в меню Администрирование → Тестирование и исправление....
Выберем следующие обязательные параметры проверки:
Нажмем кнопку «Выполнить» и дождемся завершения процедуры в служебных сообщениях.
Если после работы chdbfl.exe конфигуратор открывается, но «Тестирование и исправление» завершается аварийно, применим пересборку базы через файл выгрузки:
.dt..dt. При этой операции внутренний файл 1Cv8.1CD генерируется с нуля, а все индексы и таблицы строятся заново..dt падает с ошибкой, создадим чистую базу из файла конфигурации .cf и перенесем учетные данные с помощью универсальной обработки выгрузки и загрузки данных через XML.Для исключения повторения подобных ситуаций в будущем проанализируем архитектуру системы:
1Cv8.1CD и каталог временных файлов AppData\Local\Temp в список обязательных исключений антивирусного сканера.