При аварийном завершении работы платформы (внезапное отключение электроэнергии, сетевой сбой или зависание в процессе реструктуризации при обновлении конфигурации) файловая база 1Cv8.1CD может перейти в поврежденное состояние. В таких ситуациях при попытке запуска как в пользовательском режиме 1С:Предприятие, так и в режиме Конфигуратор возникает окно «Ошибка СУБД» с указанием на повреждение файла, отсутствие внутренней таблицы (например, systemsetting) или нарушение логической структуры.
Выясним причину такого поведения, проанализируем, почему стандартная утилита chdbfl.exe часто сообщает об отсутствии ошибок, и разберем пошаговые способы восстановления работоспособности базы данных.
В процессе обновления базы данных платформа выполняет реструктуризацию: создает временные таблицы, переносит в них информацию и переназначает дескрипторы таблиц в заголовке файла базы данных. Если этот процесс прерывается, заголовок файла 1CD указывает на незавершенные, переименованные или еще не сформированные внутренние таблицы.
Утилита chdbfl.exe осуществляет проверку исключительно на физическом уровне: она проверяет целостность страниц, цепочек блоков и контрольные суммы. Если физически страницы файла не разрушены, но на логическом уровне нарушена связь между метаданными и внутренними таблицами, утилита выдает отчет об успешной проверке, однако платформа 1С запустить такую базу не может.
Перед началом любых восстановительных работ обязательно создадим полную копию файла базы данных 1Cv8.1CD в отдельную резервную папку.
Нередко сбой сопровождается зависшими дескрипторами файлов в операционной системе или некорректным кэшем сеансов. Разберем порядок действий по первичной очистке:
1cv8.exe, 1cv8c.exe и 1cv8s.exe в диспетчере задач на всех рабочих станциях и сервере.*.1CL, *.lck, *.cfl, а также временные файлы 1Cv8.tmp и v8save.tmp.1Cv8FTxt внутри папки с базой данных (при следующем запуске платформа пересоздаст индекс автоматически).1Cv8.1CD на локальный диск сервера (или локального компьютера) в новый пустой каталог, чтобы исключить влияние сетевых сбоев и кэширования файловой системы.Если графический интерфейс Конфигуратора падает с ошибкой СУБД, инициируем процедуры обновления и тестирования в пакетном режиме с помощью параметров командной строки платформы.
Попробуем принудительно запустить завершение обновления конфигурации базы данных:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "C:\Bases\MyBase" /UpdateDBCfg
Если обновление не проходит, выполним комплексную проверку логической целостности и переиндексацию в пакетном режиме:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "C:\Bases\MyBase" /IBCheckAndRepair -ReIndex -CheckIntegrity -RecalcTotals
В процессе выполнения платформа попытается исправить нарушенные соответствия таблиц и пересчитать служебные индексы.
Когда в тексте ошибки СУБД фигурирует отсутствие конкретной системной таблицы (например, systemsetting, CONFIG или CONFIGSAVE), восстановить доступ к базе можно с помощью специализированных редакторов формата 1CD (таких как Tool_1CD):
systemsetting).CONFIGSAVE в поврежденной базе и полностью очистим ее содержимое. Это вернет состояние конфигуратора к моменту до начала неудачного обновления и позволит открыть базу штатно.Если повреждения затронули таблицы данных и низкоуровневые утилиты не позволяют прочитать структуру, наиболее надежным решением является восстановление из резервной копии.
Если штатный архив *.dt или копия файла 1Cv8.1CD перед обновлением не создавались, проверим наличие автоматических теневых копий Windows:
1Cv8.1CD (или на саму папку с базой) и выберем пункт Свойства.