1с 8.3 нарушена целостность структуры конфигурации. Решение для серверной базы при возникновении ошибки "нарушена целостность структуры конфигурации". Восстановление резервного файла

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

«Обнаружено нарушение целостности системы» такую ошибку увидели многие пользователи при входе в 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

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