Очистка таблицы ConfigSave в базе 1С при сбоях обновления
Симптомы повреждения таблицы ConfigSave в 1С
При сохранении измененной конфигурации или обновлении релиза («Обновить конфигурацию базы данных») сеанс конфигуратора аварийно закрывается с ошибкой: Ошибка при выполнении операции с информационной базой, В процессе обновления произошла критическая ошибка, либо при входе в базу появляется сообщение: «Конфигурация не соответствует конфигурации базы данных».
| Таблица SQL | Назначение в 1С | Что в ней ломается |
|---|---|---|
| dbo.ConfigSave | Временная таблица сохраняемой, но не примененной конфигурации | Зависает половинчатая транзакция после динамического обновления |
| dbo.Config | Рабочая конфигурация базы данных | Повреждение записей версионирования метаданных |
| dbo.Params | Параметры информационной базы и метаданные хэшей | Несоответствие хэша структуры метаданных |
Регламент безопасной ручной очистки ConfigSave в MS SQL Server
- Создайте резервную копию базы данных: любые прямые манипуляции с таблицами 1С в обход платформы требуют обязательного предварительного бэкапа:
BACKUP DATABASE [Base1C] TO DISK = 'C:\Backup\Base1C_BeforeFix.bak' WITH INIT; - Очистка временной конфигурации в SQL Management Studio (SSMS): очистите содержимое таблицы
ConfigSave, вернув базу к последней стабильной примененной версии:USE [Base1C]; GO DELETE FROM dbo.ConfigSave; GO - Очистка зависших кэшей динамического обновления: если ошибка сохраняется, удалите закэшированные записи версий конфигурации:
USE [Base1C]; GO DELETE FROM dbo.Params WHERE FileName = 'commit'; DELETE FROM dbo.Params WHERE FileName = 'dbmsvs'; DELETE FROM dbo.Params WHERE FileName = 'DynamicUpdate'; GO - Удаление локального кэша 1С на клиентских ПК и сервере: очистите каталоги временных файлов:
%LocalAppData%\1C\1cv8\*и%AppData%\1C\1cv8\*. - Тестирование и исправление: запустите Конфигуратор и выполните Администрирование > Тестирование и исправление... с пересчетом итогов.
Внимание: Никогда не выполняйте команду DELETE FROM dbo.Config! Таблица Config содержит саму рабочую конфигурацию вашей системы. Удалению подлежит исключительно таблица ConfigSave.
Частые вопросы (FAQ)
Почему таблица ConfigSave повреждается?
Главная причина — использование 'Динамического обновления' (демоническое обновление) в момент, когда в базе работают пользователи. Если сеть моргнет или процесс rphost упадет во время записи пакета метаданных, ConfigSave зависает в рассинхронизированном состоянии.
Потеряются ли документы или проводки при очистке ConfigSave?
Нет. В таблице ConfigSave хранятся только программные модули и описания форм конфигуратора. Данные документов, справочников и регистров находятся в таблицах _Document, _Reference и не затрагиваются.
Как очистить ConfigSave, если используется база на PostgreSQL?
В pgAdmin выполните аналогичный запрос: TRUNCATE TABLE configsave; (в нижнем регистре кавычек).
Что делать, если после чистки ConfigSave Конфигуратор все равно падает?
Выполните выгрузку конфигурации из здорового бэкапа в файл .cf и загрузите его через меню Конфигурация -> Загрузить конфигурацию из файла.