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

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

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

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

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

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

«Обнаружено нарушение целостности системы» такую ошибку увидели многие пользователи при входе в 1С. Ошибка вызвана тем, что в декабре 2017 года 1С выпустили платформы с версиями 8.3.10.2699 и 8.3.11.2899, в которые внедрили механизм проверки легальности программы.

Если версия вашей платформы 1С выше 8.3.10.2699 или 8.3.11.2899, то при работе с файловой базой данных вы скорей всего получите ошибку «Обнаружено нарушение целостности системы». Данная ошибка возникает даже если у вас лицензионная версия 1С.

Почему возникает ошибка «Обнаружено нарушение целостности системы»?

Давайте разберемся почему возникает ошибка. Механизм проверки легальности 1С построен по следующему принципу. При запуске 1С и входе в базу данных программа делает несколько проверок:

  • изменен файл backbas.dll (проверяется контрольная сумма)
  • установлены ли эмуляторы
  • наличие в реестре записей от эмуляторов

При обнаружении нелегальной версии (возможно просто неправильно установленной программы) 1С выдает ошибку и дает на выбор «Завершить работу» или «Перезапустить» 1С.

При просмотре подробностей никакой дополнительной информации мы не получим.

Тут у пользователей начинается паника и они судорожно начинают названивать своим системным администраторам. Ничего страшного не произошло. Ваша база в целости и сохранности. Никакие тестирования и исправления, а также программы для восстановления баз данных 1С не помогут. Данная ошибка никак не связана с базой 1С.

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

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

Есть несколько способов побороть данную ошибку.

Откатить версию 1С:Предприятие до более ранней. Последние версии, которые работают без проверки файла backbas.dll и эмуляторов 8.3.10.2667 и 8.3.11.2867 . Это решение временное, т.к. рано или поздно выйдет конфигурация, которая не будет работать в данных версиях.

Удалите эмулятор HASP. Эмуляторов существует много поэтому трудно написать универсальную инструкцию по их удалению. Можете попробовать воспользоваться следующими шагами:

  1. Найдите и удалите файлы VUsb.sys и vusbbus.sys
  2. Выполните команды в командной строке от имени Администратора:
    loaddrv.exe -stop haspflt
    loaddrv.exe -remove haspflt
    del %systemroot%\system32\drivers\haspflt.sys
    Рекомендуется удалить также ветки реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\haspflt ­\
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Emulato ­r
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Emu

Ну и на крайний случай rbc_icp патчер (Integrity Check Patcher). Если у вас есть лицензионный ключ для 1С, а USB разъемы вам жизненно необходимы, то можете воспользоваться нелегальным способом. Данный патч отключает проверку целостности системы в последних версиях 1С:Предприятия, где она внедрена.

Патч изменяет следующие файлы:

  • backbas.dll (используется унипатч 1c8_UP.exe)
  • frntend.dll (отключение проверки целостности в толстом клиенте)
  • mngcln.dll (отключение проверки целостности в тонком клиенте)

Есть еще вариант нелегального обхода проверки. Любым hex-редактором открываете файл backend.dll (если у вас версия 8.1) или backbas.dll (если у вас версия 8.2,8.3) из каталога bin в каталоге с установленной 1C, ищете HEX-значения: 100000FFD085C00F8208F8FEFF0F8416 и заменяете 85 на 31.

Информация в конце статьи предоставлена исключительно для ознакомления и не призывает к противоправным действиям!

UPD. 15/01/2019

Скрипт для удаления VUSBBUS и HASPFLT
Код:

@echo off
setlocal enableextensions disabledelayedexpansion

for %%a in (vsubbus haspflt) do call:CheckDriver %%a
pause
goto:eof

:CheckDriver
sc query %1|find /i “KERNEL_DRIVER”>nul
if errorlevel 1 goto:DelSYS
sc stop %1
sc delete %1
:DelSYS
del /f /q “%SystemRoot%\system32\drivers\%1.sys”
goto:eof

Понравилось? Лайкни нас на Facebook