Проблема, которой посвящена статья, возникает при аварийном завершении работы конфигуратора в тот момент, когда происходит реструктуризация базы данных, то есть - на одном из последних этапов обновления конфигурации. Решение, описанное в статье, относится к клиент-серверной версии платформы "1С: Предприятие", использующей в качестве СУБД "MS SQL Server".
Симптомами могут служить следующие предупреждения системы:
1) При попытки запуска базы в режиме конфигуратора:
2) При попытки запуска базы в режиме предприятия:
3) При входе в конфигуратор система может также предложить следующее решение:
На данный вопрос мы можем ответить утвердительно. И часто таким способом проблема решается. Но не всегда.
На наше согласие продолжить обновление система может ответить следующим сообщением:
Или же потребовать монопольного доступа, что не всегда удобно в системах с большим количеством пользователей, а иногда и просто невозможно.
В этом случае нам поможет MS SQL Server. Для решения нашей проблемы достаточно последовательно выполнить следующие скрипты (разумеется в контексте проблемной БД).
1) Сначала создадим копии таблиц Config и ConfigSave (впоследствии, их можно удалить).
SELECT *
INTO Config_copy
FROM [Config]
SELECT *
INTO ConfigSave_copy
FROM [ConfigSave]
В данных таблицах, как раз, и хранится информация о конфигурациях и ходе обновления. В первой таблице хранится информация о конфигурации БД, в том числе, и данные последнего обновления. Вторая таблица содержит данные новой, ещё несохраненной конфигурации. Анализируя содержание этих таблиц, система получает данные о том, насколько успешным (или неуспешным) было последнее обновление.
2) Удаляем все записи из таблицы ConfigSave (хранит накатываемую конфигурацию)
DELETE FROM [ConfigSave]
3) Удаляем три записи из таблицы Config (именно они хранят информацию о незаконченном процессе обновления конфигурации)
DELETE FROM [Config]
WHERE FileName IN ('commit','dbStruFinal','dynamicCommit')
Далее следует обновить конфигурацию в штатном режиме, то есть через конфигуратор.
В таблице Config должны появиться записи о нашем последнем обновлении, что легко проверить обычным «селектом».