Внезапное отключение электропитания или аварийное завершение процесса обновления конфигурации базы данных — распространенная ситуация, способная полностью заблокировать доступ к конфигуратору. В таких случаях при попытке открыть конфигуратор система выдает предупреждение: «Произошла ошибка при выполнении операции возврата конфигурации БД» с предложением продолжить операцию. При подтверждении конфигуратор уходит в бесконечный цикл зависания, а режим «1С:Предприятие» сообщает о несоответствии рабочей конфигурации и конфигурации базы данных. Разберем детально, почему это происходит и как восстановить работоспособность информационной базы.
Проанализируем механику процесса обновления конфигурации. При реструктуризации и сохранении изменений платформа 1С выполняет несколько последовательных этапов: перенос метаданных, установка служебных маркеров транзакции и реструктуризация таблиц с реальными данными. Если этот процесс резко прерывается, происходят следующие сбои:
commit, dbStruFinal, dynamicCommit). Платформа при каждом открытии считывает эти флаги, ошибочно считает процесс реструктуризации незавершенным и пытается принудительно его продолжить или откатить.ConfigSave и таблица рабочей конфигурации базы данных Config оказываются в противоречивом состоянии.Важное предупреждение: перед выполнением любых действий по восстановлению обязательно сделайте физическую копию файла базы данных (1Cv8.1CD для файловых баз) или резервную копию базы средствами СУБД (для клиент-серверного варианта).
Если графический интерфейс конфигуратора зависает при попытке восстановления, применим пакетный запуск платформы с параметром /RollbackCfg. Этот ключ выполняет безусловный откат основной конфигурации к состоянию конфигурации базы данных без интерактивного взаимодействия.
Рассмотрим синтаксис команды для файловой базы данных:
"C:\Program Files\1cv8\common\1cestart.exe" CONFIG /F "C:\Bases\Buh" /N "Администратор" /P "Пароль" /RollbackCfg
Разберем параметры запуска:
CONFIG — запуск платформы в режиме конфигуратора./F — путь к каталогу с файловой базой данных (для клиент-серверной базы используется ключ /S "ИмяСервера\ИмяБазы")./N и /P — имя пользователя с административными правами и его пароль./RollbackCfg — параметр, инициирующий сброс основной конфигурации до состояния рабочей конфигурации БД.Для файлового формата (файл 1Cv8.1CD) зависание может сопровождаться нарушением физической целостности внутренних таблиц. Разберем по шагам порядок действий:
C:\Program Files\1cv8\8.3.X.X\bin\) и запустим утилиту chdbfl.exe. Укажем путь к поврежденному файлу базы данных, обязательно установим флаг «Исправлять обнаруженные ошибки» и нажмем кнопку запуска.
"C:\Program Files\1cv8\common\1cestart.exe" CONFIG /F "C:\Bases\Buh" /N "Администратор" /P "Пароль" /IBCheckAndRepair -ReIndex -LogIntegrity -RecalcTotals -RebuildTable -Out "C:\Bases\repair_log.txt"
%LOCALAPPDATA%\1C\1Cv8 и %APPDATA%\1C\1Cv8.В случае с СУБД (например, Microsoft SQL Server или PostgreSQL) мы имеем прямой доступ к таблицам метаданных. Если откат через командную строку не срабатывает, устраним причину зависания вручную:
SELECT * INTO Config_backup FROM Config;
SELECT * INTO ConfigSave_backup FROM ConfigSave;
DELETE FROM ConfigSave;
Config:
DELETE FROM Config WHERE FileName IN ('commit', 'dbStruFinal', 'dynamicCommit');
После выполнения указанных SQL-запросов перезапустим службу сервера 1С:Предприятия (ragent). При следующем запуске конфигуратор откроется в штатном режиме без циклического зависания.
Когда доступ в конфигуратор успешно восстановлен, рабочая конфигурация может оставаться несинхронизированной. Для окончательного исправления ситуации выполним следующие шаги:
.cf) в точности того же релиза, который был установлен до аварии..cf.F7 (или через меню «Конфигурация» — «Обновить конфигурацию базы данных»).