Ошибка "нарушена целостность структуры конфигурации". Ошибка «Нарушена целостность структуры конфигурации Причины ошибки и её исправление

Обычно ошибка возникает когда в процессе сохранения конфигурации, был сбой. В результате Конфигурация сохранилась не корректно.

1. Попробовать проверить через тестирование и исправление или ChDBFl.exe
2. Посмотрите следующие варианты решения проблемы:

В некоторых случаях помогает полная очистка КЭША, В ОС Windows 7 находиться C:\Users\Администратор\AppData\Roaming\1C\1Cv82 и C:\Users\Администратор\AppData\Local\1C\1Cv82 (Win7x64).

или подробнее:
1. Необходима чистая конфигурация той же версии — рабочая.
2. Очиста кеша полная (указано выше).
3. Запускаем чистую базу в режиме конфигуратора и открываем конфигурацию. При этом 1С создает ее кеш в C:\Users\Администратор\AppData\Local\1C\1Cv82 (набор файлов и папок в папке с ID конфигурации.) так же нам нужен кеш C:\Users\Администратор\AppData\Roaming\1C\1Cv82. Можно просто переименовать данные папки после закрытия 1С.
4. Запускаем наш не рабочую базу в режиме конфигуратора и смотрим кеш. И в результате имеем две папки с ID конфигурации (Живой и Мертвой).
5. Закрываем все и подменяем кеш мертвой конфы на живую полностью. Т.е. удаляем текущую и заменяем ранее переименованной папкой.
6. Запускаем не рабочую базу в режиме конфигуратора И ВОТ первый успех — дерево конфигурации открыто, разделы меню управления конфигурацией активны.
7. Идем в управление поддержкой, и снимаем с поддержки полностью. сохраняем, обновляем. Можно обновить через файл конфигурацией рабочей базы.
8. Удалем кеш полностью.
9. Запускаем не рабочую базу в режиме конфигуратора, пытаемся открыть конфигурацию — все открывается, ошибки нет.
10. Запускаем 1С. Все доступно. Данные на месте.

Было такое же сообщение когда динамически обновил конфигурацию центральной базы и сделал обмен на переферийной и на переферийной появилось подобное сообщение.
1. Т.к. в конфигуратор на переферийной вообще не пускался, то пришлось удалить папку C:\Documents and Settings\Admin\Application Data\1C\1Cv81.
2. Зашел в конфигуратор и выбрал Конфигурация — Конфигурация базы данные — Вернуться к конфигурации БД.
3. ГлавныйУзел установил неопределено.
4. Конфигурация — Загрузить конфигурацию из файла (центральная конфигурация).
5. ГлавныйУзел установил необходимый.

У меня возникла похожая ситуация, но на 8.1. При динамическом обновлении конфигурации видимо произошел сбой, после чего попытка выгрузить и как Основную конфу и конфу БД при дальнейшей попытке загрузить файл в локальную базу вываливалось «нарушена целостность структуры конфигурации». Но БД работоспособна. Ни тестирование и исправление ни ChDBFl.exe ничего не дали.

Селал бекап рабочей базы и загрузил его в чистую базу. Добавил план обмена
http://kb.mista.ru/article.php?id=7
и создал Начальный образ. В БД образа конфигурация исправилась.

Если не поможет могу посоветовать вариант к которому хотел прибегнуть сам:
1. найти ближайший релиз конфигурации, загрузить его в чистую БД (восстанавливаемую).
2. создать совершенно чистую БД (промежуточную)
3. открыть конфигуратор испорченной БД.
4. скопипастить модули и объекты, в которых происходили изменения с последнего релиза (в моем случае намного проще, поскольку изменения происходили только в модулях и формах, структура данных осталась прежней а все изменения документируются постерами) из испорченной БД в промежуточную.
5. Выгрузить промежуточную конфигурацию.
6. Объеденить ее с восстанавливаемой БД.
7. Выгрузить восстанавливаемую конфигурацию в файл.
8. Загрузить в испорченную БД конфигурацию из восстанавливаемой.

По идее должно получиться максимальное приближение к рабочей базе, но работка конечно не из легких. Но лучше все-таки чем потерять всю базу.


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

Мой вариант решения — заменить конфигурацию поставщика нашей базы.
Последовательность действий следующая:
1. Удалить конфигурацию поставщика путём снятия с поддержки(Конфигурация->Поддержка->Настройка поддержки->Снять с поддержки)
2. Создаем файл поставки конфигурации(Конфигурация->Поставка конфигурации->Создать файлы поставки и обновления конфигурации). Файл при этом назовем work файл поставки.cf
3. Объединяем нашу конфигурацию с только что созданным файлом поставки(Конфигурация->Сравнить, объединить с конфигурацией из файла). При этом появится предложение вновь поставить конфигурацию на поддержку
В появившемся окне сравнения конфигураций нажимаем «Выполнить»,
4. Обновляем конфигурацию базы данных(Конфигурация->Обновить конфигурацию базы данных).
Поидее, выполняя данные действия, мы реструктуризовали конфигурацию поставщика.
Теперь можно попробовать обновить нашу конфигурацию до следующей версии в обычном режиме.

Ошибка «Нарушена целостность структуры конфигурации» является достаточно распространенным случаем ошибки в 1С 8.3 при обновлении или других ситуациях. Рассмотрим причину возникновения и пути решения данной ситуации.

Получите 267 видеоуроков по 1С бесплатно:

Причины ошибки и её исправление

Данная проблема чаще всего возникает при обновлении конфигурации базы данных (особенно для динамического обновления 1С 8.3), при формировании отчета, при проведении документа и так далее. Бывают случаи, что ошибка появляется «из воздуха». Встречается как в файловых базах, так и в клиент-серверных SQL вариантах.

Вариантов решения несколько (перед любыми действиями сделайте резервную копию базы данных):

  1. Почистить временные файлы (). Как правило, помогает, если ошибка возникает только у одного пользователя.
  2. Если конфигуратор базы открывается, попробуйте совершить базы данных. Если не открывается, сделайте это с помощью утилиты chdbfl.exe (только для файловых БД). chdbfl.exe расположена в папке с программой, например, C:\Program Files (x86)\1cv8\8.3.4.389\bin).
  3. Для клиент-серверной базы, которая установлена на SQL сервере, можно попробовать воспользоваться запросом «delete * from configsave».
  4. Если конфигуратор доступен, попробуйте выгрузить и загрузить базу данных.
  5. Поставьте новую платформу 1С 8.3: некоторые ошибки могут быть исправлены в более новых выпусках технологической платформы.
  6. Если вышеперечисленные меры не помогли, скорее всего, случай сложный. Можно прибегнуть к инструкции, описанной на этой странице

Сегодня я расскажу Вам о том, какие действия предпринимать, если после обновления конфигурации 1С 8.2, вылетает ошибка «Нарушена целостность структуры конфигурации».
Итак, к сути: попытаться решить проблему можно следующим образом (перед началом любого из действий с конфигурацией, не забывайте делать архивную копию базы данных, как это делать я писал в заметке ):

  • Создать новую пустую базу в новой папке и загрузить в конфигурацию выгруженную ранее информационную базу, которую необходимо обновить.

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

Если проблема устранится, то скорее всего необходимо почистить папку кэша 1с (C:\Documents and Settings\Пользователь\Local Settings\Application Data\1C\1Cv82 ). Папка вероятнее всего по умолчанию будет скрыта, так что, если вы не знаете, как получить доступ к скрытым файлам и папкам windows, рекомендую ознакомиться с заметкой.Файлы в корневых папках 1Cv82 и 1Cv81 с текущей/последней датой изменения трогать не следует. В них хранятся настройки стартовых окон. Все запустится и в этом случае, но тогда при первом запуске придется подождать.

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

Тестирование и исправление ИБ

Необходимо зайти в конфигуратор и в пункте меню «Администрирование» выбрать «Тестирование и исправление»:

Инструмент работает в 2-х режимах

  • Тестирование — режим, при котором производится только проверка на наличие ошибок конфигурации.
  • Тестирование и исправление — режим, при котором производится и проверка и коррекция ошибок конфигурации.

При работе информационной базы в файловом варианте и варианте работы клиент-сервер , допустимо тестирование и исправление логической целостности, ссылочной целостности и пересчет итогов, Для файлового варианта информационной базы возможно выполнение ре-индексирования и сжатия базы данных.

Для распределенных информационных баз (УРИБ), у которых возможно получение данных, содержащих ссылки на объекты, которых нет в тестируемой информационной базе, снятие флажка Проверка ссылочной целостности информационной базы позволит отключить создание «несуществующих» данных и как следствие не приведет к передаче этих данных в другие узлы распределенной информационной базы.

Включить проверку ссылочной целостности ИБ отключая от проверки логическую целостности невозможно. Также отключение проверки ссылочной целостности не означает, что выключена проверка типа ссылок.

Самое слабое место, например в Бухгалтерии — это Оборотно-сальдовая ведомость, поэтому перед началом обработки и после нее рекомендую сформировать оборотку и сравнить итоговые показатели до и после тестирования и исправления. Это конечно вовсе не апогей тестирования, но хоть что-то.

Это все, что я хотел рассказать Вам сегодня. До новых встреч.

Обычно ошибка возникает когда в процессе сохранения конфигурации, был сбой. В результате Конфигурация сохранилась не корректно.
1. Попробовать проверить через тестирование и исправление или ChDBFl.exe
2. Посмотрите следующие варианты решения проблемы:

В некоторых случаях помогает полная очистка КЭША, В ОС Windows 7 находиться C:\Users\Администратор\AppData\Roaming\1C\1Cv82 и C:\Users\Администратор\AppData\Local\1C\1Cv82 (Win7x64).

Или подробнее:
1. Необходима чистая конфигурация той же версии - рабочая.
2. Очиста кеша полная (указано выше).
3. Запускаем чистую базу в режиме конфигуратора и открываем конфигурацию. При этом 1С создает ее кеш в C:\Users\Администратор\AppData\Local\1C\1Cv82 (набор файлов и папок в папке с ID конфигурации.) так же нам нужен кеш C:\Users\Администратор\AppData\Roaming\1C\1Cv82. Можно просто переименовать данные папки после закрытия 1С.
4. Запускаем наш не рабочую базу в режиме конфигуратора и смотрим кеш. И в результате имеем две папки с ID конфигурации (Живой и Мертвой).
5. Закрываем все и подменяем кеш мертвой конфы на живую полностью. Т.е. удаляем текущую и заменяем ранее переименованной папкой.
6. Запускаем не рабочую базу в режиме конфигуратора И ВОТ первый успех - дерево конфигурации открыто, разделы меню управления конфигурацией активны.
7. Идем в управление поддержкой, и снимаем с поддержки полностью. сохраняем, обновляем. Можно обновить через файл конфигурацией рабочей базы.
8. Удалем кеш полностью.
9. Запускаем не рабочую базу в режиме конфигуратора, пытаемся открыть конфигурацию - все открывается, ошибки нет.
10. Запускаем 1С. Все доступно. Данные на месте.

Было такое же сообщение когда динамически обновил конфигурацию центральной базы и сделал обмен на переферийной и на переферийной появилось подобное сообщение.
1. Т.к. в конфигуратор на переферийной вообще не пускался, то пришлось удалить папку C:\Documents and Settings\Admin\Application Data\1C\1Cv81.
2. Зашел в конфигуратор и выбрал Конфигурация - Конфигурация базы данные - Вернуться к конфигурации БД.
3. ГлавныйУзел установил неопределено.
4. Конфигурация - Загрузить конфигурацию из файла (центральная конфигурация).
5. ГлавныйУзел установил необходимый.

У меня возникла похожая ситуация, но на 8.1. При динамическом обновлении конфигурации видимо произошел сбой, после чего попытка выгрузить и как Основную конфу и конфу БД при дальнейшей попытке загрузить файл в локальную базу вываливалось "нарушена целостность структуры конфигурации". Но БД работоспособна. Ни тестирование и исправление ни ChDBFl.exe ничего не дали.

Селал бекап рабочей базы и загрузил его в чистую базу. Добавил план обмена
http://kb.mista.ru/article.php?id=7
и создал Начальный образ. В БД образа конфигурация исправилась.

Если не поможет могу посоветовать вариант к которому хотел прибегнуть сам:
1. найти ближайший релиз конфигурации, загрузить его в чистую БД (восстанавливаемую).
2. создать совершенно чистую БД (промежуточную)
3. открыть конфигуратор испорченной БД.
4. скопипастить модули и объекты, в которых происходили изменения с последнего релиза (в моем случае намного проще, поскольку изменения происходили только в модулях и формах, структура данных осталась прежней а все изменения документируются постерами) из испорченной БД в промежуточную.
5. Выгрузить промежуточную конфигурацию.
6. Объеденить ее с восстанавливаемой БД.
7. Выгрузить восстанавливаемую конфигурацию в файл.
8. Загрузить в испорченную БД конфигурацию из восстанавливаемой.

По идее должно получиться максимальное приближение к рабочей базе, но работка конечно не из легких. Но лучше все-таки чем потерять всю базу.


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

Мой вариант решения - заменить конфигурацию поставщика нашей базы.
Последовательность действий следующая:
1. Удалить конфигурацию поставщика путём снятия с поддержки(Конфигурация->Поддержка->Настройка поддержки->Снять с поддержки)
2. Создаем файл поставки конфигурации(Конфигурация->Поставка конфигурации->Создать файлы поставки и обновления конфигурации). Файл при этом назовем work файл поставки.cf
3. Объединяем нашу конфигурацию с только что созданным файлом поставки(Конфигурация->Сравнить, объединить с конфигурацией из файла). При этом появится предложение вновь поставить конфигурацию на поддержку
В появившемся окне сравнения конфигураций нажимаем "Выполнить",
4. Обновляем конфигурацию базы данных(Конфигурация->Обновить конфигурацию базы данных).
Поидее, выполняя данные действия, мы реструктуризовали конфигурацию поставщика.
Теперь можно попробовать обновить нашу конфигурацию до следующей версии в обычном режиме.

При динамическом обновлении возник сбой. Программа осталась доступной для пользователей в режиме Предприятия, но конфигуратор перестал открываться.

Исходные данные: 1C Предприятие 8.3, клиент-серверная база, MS SQL 2012, резервное копирование настроено средствами MS SQL, бэкапы создаются 1 раз в сутки, ночью.

Конфигурация модифицированная и над ней ведется активная работа, поэтому у меня была вторая серверная база, в которой и велась разработка, плюс имелись в наличии выгрузки в dt из обеих баз на предыдущий день. В качестве имени рабочей базы в статье будет применено "MyBase", в качестве имени резервной серверной базы "MyTestBase"/

В моем случае таблица базы ConfigSave была пустой, как и в описанных материалах, а в таблицах Config и Params присутствовали строки со значением "DynamicallyUpdated" в поле FileName

Материалы из сети, которыми я пользовалась при решении вопроса:

Заказчиком было принято решение о проведении восстановительных работ по окончанию рабочего дня с риском потери данных за текущий день (в случае провала процедуры восстановления и необходимости отката до ночного бэкапа).

Для решения проблемы были выполнены следующие действия:

1. Отключены все сеансы пользователей 1с

2. Через консоль управления 1с серверами установлена блокировка начала сеансов и отмена запуска регламентных заданий.

3. Сделан бэкап рабочей базы средвами MS SQL с использованием SQL Server Management Studio. Запросами из таблиц

удалены записи со значениями "DynamicallyUpdated" в поле FileName из таблиц Config и Params:


и
Delete From ..
WHERE LIKE "DynamicallyUpdated"

4. В резвервную базу средствами конфигуратора загружена последняя выгрузка.dt из рабочей базы (вечер предыдущего дня) и поверх загружена последняя рабочая конфигурация текущего дня из имеющегося файла.cf (вся история изменений конфигурации хранится в отдельных файлах с номерами версий)

5. В диспетчере задач пришлось отключить повисшие процессы 1с8

6. Остановлена служба сервера 1с

7. Очищен кэш 1С

В моем случае это было переименование папок C:\Users\Администратор\AppData\Local\1C\1сv8

C:\Users\Администратор\AppData\Roaming\1C\1CEStart

C:\Users\Администратор\AppData\Roaming\1C\1Cv82

C:\Users\Администратор\AppData\Roaming\1C\1Cv8

8. Запущена служба сервера

9. После чистки кэша окно со списком баз при запуске 1С пустое, поэтому добавляем существующую рабочую серверную базу

10. Открылся конфигуратор. Делаем на всякий случай выгрузку в.dt рабочей базы в текущем "сломанном" состоянии и закрываю конфигуратор

11. Запускаем SQL Server Management Studio и запросом очищаем в рабочей базе таблицу Config и перезаписываем ее содержимым аналогичной талицы из резервной базы:

Delete From ..

INSERT INTO .. SELECT * FROM ..

У авторов использованных материалов (см. ссылки выше) после выполненных действий работоспособность базы была восстановлена. В моем случае на текущем этапе ошибка осталась, открыть окно базы в конфигураторе не представлялось возможным. Сравнив количество записей в таблицах Params рабочей и резервной баз, пришла к выводу, что стоит попробовать перезаписать и ее:

Delete From ..

INSERT INTO .. SELECT * FROM ..

После чего мне удалось запустить конфигуратор и открыть окно с конфигурацией. Выгрузила на всякий случай в текущем состоянии в.dt и загрузила поверх последнюю рабочую конфигурацию текущего дня.

12. Отключаем блокировку начала сеансов и входим в режиме предприятия

Работоспособность полностью восстановлена, данные не потеряны.

13. Выключаем блокировку запуска регламентных заданий.

Похожие публикации