Delete from configsave

При обновлении конфигурации 1С произошел сбой, программа завершила свою работу по ошибке. Затем, при попытке зайты в конфигуратор, стало выдаваться предупреждение: «При обновлении данных после последней реструктуризации произошла критическая ошибка. Повторить обновление?». Если ответить «Нет», то программа просто завершает свою работу, в случае же положительного ответа выводится сообщение «Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.» и программа также закрывается.

Еще ошибка может быть следующая: Нарушена целостность структуры конфигурации. В этом случае, в первую очередь, нужно попробовать почистить кэш 1С. Если не поможет, то читаем дальше.

Самый простой вариант решения данной задачи — восстановление из резервной копии. Но очень не хотелось терять последние введенные за день данные. Поэтому я решил разобраться в вопросе более досканально.

Выяснилось, что все измененные объекты конфигурации программа хранит в таблице configsave. Но в моем случае табличка оказалась пустая. При обновлении конфигурации программа снача копирует все изменения из таблицы configsave в таблицу config, затем очищает первую.

Если имеется база данных с идентичной конфигурацией, то можно полностью перенести из нее таблицу config в испорченную базу. Либо можно удалить все зафиксированные изменения. В этом случае алгоритм восстановления примерно следующий:

  1. Если в таблице configsave есть данные, то таблицу нужно очистить: delete from configsave
  2. delete from config where FileName = ‘commit’
  3. delete from config where FileName = ‘dynamicCommit’
  4. delete from config where FileName = ‘dbStruFinal’

Добавлено 03.10.2019:

Если то, что описано выше не помогло, то можно перенести конфигурацию с рабочей копии базы (если таковая имеется). Например, если у вас имеется копия базы с такой же конфигурацией, но за вчерашнее число и не хочется терять введенные за сегодня данные.

Для этого выполним следующий запрос:

Добрый день, всем кто читает эту тему!
На прошлой неделе столкнулся со следующей проблемой- при попытке открыть конфигуратор 1С выдавала сообщение «Нарушена целостность структуры конфигурации” при этом предлагалось 2 варианта перезагрузить конфигуратор и выйти из программы. Естественно сделать что либо в конфигураторе не удавалось. Надо заметить, что в режиме предприятия данная база продолжала работать в штатном режиме.
Внимание не забывайте сделать Backup базы перед попыткой реанимации!!!
Вообще данная ошибка обычно возникает в случае когда происходит сбой при загрузке обновлений конфигурации такая ситуация лечится довольно просто в SQL SMS выполняется скрипт очистки таблицы ConfigSave —

Use DBNamegoDelete From .go

Результатом данного скрипта будет очистка таблицы ConfigSave, что должно позволить запустить конфигурацию существовавшую до изменения.
Но в моем случае таблица ConfigSave была пуста. Да и ошибка возникла не в результате загрузки новой конфигурации.
Проблема решалась поэтапно. Первым этапом разрешалась проблема входа в конфигуратор для чего необходимо остановить сервис 1С сервера, далее удалить (я переименовал) папку «C:\Documents and Settings\UserName\Application Data\1C\1Cv8» после чего запускаем сервис 1С запускаем 1С добавляем базу, т.к. после отчисти профиля были утеряны все данные по настройкам 1С.
Запускаем конфигуратор т.к. предыдущим действием были отчищены все настройки пользователя 1с добавляем базу в выбор баз. При открытии конфигуратора ошибка не появляется, но при попытке открыть конфигурации система выдает все ту же ошибку. Однако пункт меню «сохранить конфигурацию бд в файл» активен, выгружаем конфигурацию в файл. Но т.к. пункт меню загрузить конфигурацию из файла активен только при открытой конфигурации будем рещать это другим способом.
Вторым этапом стало решение проблемы с загрузкой конфигурации. На этом этапе мне понадобился бекап базы созданный до появления проблемы (думаю что в принципе подойдет любая база работающая на том же релизе, но не проверял). Восстанавливаем бекап с рабочей конфигурацией. В SQL SMS для поврежденной базы очищаем таблицу Config, содержащую конфигурацию которая собственно говоря и компилится для работы 1С, для чего выполняем следующий скрипт –

Use DBNamegoDelete From .Go

После чего выполняем скрип который из восстановленной базы (DataBaseNameRest) загрузит рабочую но старую конфигурацию в таблицу Config-

Insert InTo .. (Select * from ..)Go

Третьим этапом производим загрузку последней версии конфигураци ( в моем случае выгруженную мне удалось выгрузить последнюю конфигурацию из поврежденной базы). Для загрузки открываем конфигуратор поврежденной базы. Не в коем случае не обновляйте конфигурацию и не заходите с текущей конфигурацией в режиме предприятия это может привести к потере данных т.к. в данный момент у вас сохраненна конфигурация не соответствующая метаданным базы. Открываем конфигурацию, в меню конфигурация выбираем пункт «Загрузить конфигурацию из файла», в качестве файла указываем выгруженную на первом этапе конфигурацию.
После загрузки конфигурации обновляем базу . Скорее всего будет выдано сообщение о изменении метаданных соглашаемся с изменением.
Открываем базу данных и проверяем доступны ли последние изменения.

Добавить комментарий