Ошибка нарушена целостность структуры конфигурации. Ошибка «Нарушена целостность структуры конфигурации Как избавиться от ошибки «Обнаружено нарушение целостности системы»

Один из многих вариантов решения ошибки "Нарушена целостность структуры конфигурации".
Если Вам довелось столкнуться с этой ошибкой обратитесь к специалисту 1С однозначно. Вариантов решения много, но от ситуации и источника проблемы - решения совершенно разные.

Предлагаю вашему вниманию одну из таких ситуаций.
Описание задачи:
Обновление конфигурации произошло автоматически. При запуске 1С режиме конфигуратор имеем сообщение "Нарушена целостность структуры конфигурации". При автообновлении конфигурацию поставщика обновить корректно не получилось. Запуск в пользовательском режиме выдает ошибку ссылаясь на модуль в конфигурации.
Во первых необходимо очистить кеш. В ОС Windows 7 находиться C:\Users\Администратор\AppData\Roaming\1C\1Cv82 и C:\Users\Администратор\AppData\Local\1C\1Cv82 (Win7x64). После очистки кеша 1С запуститься в режиме конфигуратора. При попытке открыть конфигурацию 1С вылетает. Выгрузить информационную базу в файл для подстарховки. Тестирование и исправление не помогает. Утилита проверки файловой базы говорит, что ошибок нет. Пункты меню загрузки, выгрузки конфигурации, поддержки и т.п. без открытой конфигурации не активны. Доступна сохранение конфигурации данных - это значит что данные не уничтожены, что является главным..
Так же из конфигуратора в пользовательский режим в режиме отладки может запуститься, а возможно и нет, это не влияет на ситуацию.
Попытка загрузить информационную базу в SQL не приведет к положительному результату.

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

Решение:
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С. Все доступно. Данные на месте.

Вот еще вариант спасения предложенный пользователем инфостара Tavalik:

1. "Конфигурация" - "Конфигурация базы данных" - "Вернуться к конфигурации БД"
2. "Конфигурация" - "Обновить конфигурацию баз данных"

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

Исходные данные: 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. Выключаем блокировку запуска регламентных заданий.

При обновлении платформы 1С очень часто система выдаёт сообщение об ошибке. Рассмотрим, как исправить ошибку «Нарушена целостность структуры конфигурации при обновлении 1С».

Так выглядит ошибка о нарушении целостности структуры конфигурации


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

Встречается она в совершенно различных платформах - в файловых базах, в клиент-серверных, пр.

Решение

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

  • Удалить временные файлы (читайте нашу ). Это помогает тогда, когда ошибка возникла только у одного из пользователей;
  • Если конфигуратор доступен и его можно открыть-провести тестирование её и исправление (см. ниже). Если открыть нельзя- сделать это утилитой chdbfl.exe (но только если база - файловая). Примерное расположение её: - C:\ProgramFiles(x86)\1cv8\8.3.4.389\bin);
  • Если база клиент-сервернаяи установлена на SQL сервере воспользоваться запросом «delete*fromconfigsave»;
  • При доступности конфигуратора- попробовать осуществить выгрузку и загрузку базы;
  • Некоторые ошибки исправляются в более поздних версиях платформы- установите новую платформу;

Если ни один из вариантов не принёс исправления - обратитесь к специалистам.

ВАЖНО. Хотя бы раз в неделю обязательно делайте копию!

Разберёмся с особенностями использования системной утилиты для тестирования и исправления базы.

Перед проведением любых действий сделайте резервную копию данных!

Для входа в режим тестирования/исправления зайти в конфигуратор системы, выбрать в меню - Администрирование/Тестирование-исправление.

Окно проверки и режимы

Это окно предназначено для указания списка производимых действий для работы утилиты. Опишем функции каждого из них:

Реиндексация таблиц

При установке этой опции производится реиндексация заданных таблиц. Это означает полное перестроение индексов. После такой процедуры производительность системы существенно повышается - она не будет лишней.

Логическая целостность

Эта функция проверяет логическую и структурную целостности базы, находит ошибки организации данных.

Ссылочная целостность

В этом случае информация проверяется на присутствие «битых» ссылок. Они являются следствием некорректной обработки данных - чаще всего при их удалении или обмене.

При их обнаружении есть выбор трёх вариантов операций:

  • Создавать объекты - системой создаются пустые элементы-заглушки (позднее их можно заполнить информацией);
  • Очищать ссылки-они будут очищеныпрограммно;
  • Не изменять-ссылки будут только показаны.

Пересчёт итогов

Итоги - это таблица подсчётов-результатов бухгалтерских данных. Их пересчёт увеличивает производительность.

Сжатие таблиц

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

Реструктуризация таблиц

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

Если тестирование/исправление не принесло положительного результата - воспользуйтесь приложением chdbfl.exe.

Создание резервной копии(вручную и автоматически)

Архивирование-архиважная операция, необходимая каждому пользователю, программисту, админу. Такую копиюбазы часто называют бэкапом 1С.

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

Создание бэкапа занимает до десяти минут.

Если такая ситуация произошла и вас нет бэкапа- то вы точно теперь будете его создавать!

Админы бывают двух типов: одни делают бэкап, другие - будут делать бэкап.

Выгрузка файла

Если в начальном окне программы выбрать своё предприятие и нажать указанную на рисунке кнопку, то мы войдём в 1С в режиме «Конфигуратор».

Этот режим, вообще, предназначен для разработки и администрирования. Дальше нужно в меню выбрать «Администрирование/Выгрузить информационную базу…» :

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

Об успешном проведении операции вы узнаете первым.

Восстановление резервного файла

Восстановление базы также производится из знакомого нам режима конфигуратора, но теперь уже выбираем опцию «Администрирование/ »:

Выбираем Загрузить информационную базу

Необходимо выбрать ранее сохранённый файл (с расширение мdt). Потом согласиться с предупреждением системы о потере не сохранённой информации (будет потеряна).

При успешном выполнении 1С предложит перезапуск конфигуратора.

Автоматическая архивация

Во избежание собственной забывчивости можно воспользоваться одной из программ для автоархивации, например, Effector saver 3.

Она позволяет легко, в несколько шагов, автоматизировать создание бэкапов. Способна выполнять свои функциии с файловой системой, и с клиент-серверной. Настройка её занимает всего около пятнадцати минут, но польза от неё не подлежит обсуждению.

Этому приложению доступна обработкалюбых версий 1С: 7.7, 8.1, 8.2, 8.3. Ей безразлично что обрабатывать- файловые данные или находящиеся на сервере MS SQL илиPostgreSQL. Плюс она бесплатна (есть коммерческая версия, расширенная).

Сначала скачиваем и устанавливаем дистрибутив Effector Saver.


После указания каталога крайний шаг - настроить расписание. Для этого на одноимённой вкладке указывается режим отработки задания и время для его выполнения:

Для того, чтобы убедиться в верности настроек, нужно нажать на кнопку нижней панели - «проверить». При успешной проверке должно отобразитсяприятное сообщение «Основные параметры заполнены верно».

Мы ознакомили вас с причинами и исправлением проблемы «нарушена целостность структуры конфигурации 1С». После прочтения этого материала вы легко справитесь с этой проблемой.

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

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. Обновляем конфигурацию базы данных(Конфигурация->Обновить конфигурацию базы данных).
Поидее, выполняя данные действия, мы реструктуризовали конфигурацию поставщика.
Теперь можно попробовать обновить нашу конфигурацию до следующей версии в обычном режиме.

2024 professiya-online.ru. Программы. Интернет. Windows. Советы. Гаджеты. Ноутбуки.