В работе администратора 1С нередко встречается ситуация, когда попытка динамического обновления базы данных завершается неудачей. В итоге при попытке входа в конфигуратор система выдает критическое сообщение: «Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию». Это означает, что механизм динамического обновления «завис» на этапе записи данных в таблицы SQL Server.
Давайте разберем, почему это происходит и как исправить ситуацию, вернув базу в рабочее состояние.
Динамическое обновление — это процесс, который позволяет вносить изменения в структуру базы данных без остановки работы пользователей. В момент обновления платформа 1С создает временные таблицы и выполняет серию транзакций. Если в процессе происходит разрыв соединения, сбой сервера или нехватка места в логах SQL, флаги завершения транзакции не устанавливаются.
Сервер 1С «думает», что обновление еще идет, и блокирует доступ к конфигурации, чтобы не допустить повреждения метаданных. Фактически, конфигурация оказывается в «подвешенном» состоянии, застряв между старой и новой версиями.
Прежде чем приступать к любым техническим манипуляциям с базой данных на уровне SQL Server, необходимо предпринять меры безопасности. Категорически запрещается работать с «боевой» базой без наличия актуальной копии.
Помните, что прямая работа с таблицами Config — это вмешательство в системную структуру платформы. Выполняйте эти действия только в том случае, если обычные средства 1С не помогают.
Если после сбоя конфигуратор остается недоступным, мы можем принудительно «сбросить» флаги незавершенного обновления. Для этого нам потребуется консоль SQL Server Management Studio.
SQL Server Management Studio.
DELETE FROM Config WHERE FileName = 'commit';
DELETE FROM Config WHERE FileName = 'dbStruFinal';
Разберем, что делают эти запросы. В таблице Config хранятся метаданные конфигурации. Записи с именами commit и dbStruFinal являются системными флагами, которые сообщают серверу 1С о статусе готовности конфигурации. Удаляя их, мы принудительно снимаем статус «незавершенного процесса», что позволяет платформе успешно инициализировать конфигурацию при следующем входе.
После того как записи были удалены, выполните следующие действия:
Чтобы в будущем не сталкиваться с подобными проблемами, придерживайтесь правил «хорошего тона» в администрировании 1С:
Помните, что манипуляции с системными таблицами — это крайняя мера. Если после очистки таблиц вы наблюдаете ошибки вида «Таблица не найдена» или другие нарушения в работе объектов, немедленно восстанавливайте базу из бэкапа, так как это свидетельствует о повреждении логической структуры данных.