1с ошибка обновления структура конфигурации несовместима

Обновлено: 07.07.2024

Исправление ошибки "Нарушена целостность структуры конфигурации"

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

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

При этом в повседневной жизни данная ошибка никак себя не проявляла, и утилита chdbfl также не нашла в базе каких-либо ошибок. Тем не менее база оказалась серьезно повреждена и любые попытки спасти ситуацию малой кровью: выгрузить данные в узел РИБ или посредством выгрузки-загрузки через XML приводили к ошибкам.

"А как-же резервные копии?" - спросит иной читатель. Резервные копии содержали точно такую же ошибку, так как она не препятствует выгрузке в DT файл и, тем более, архивированию непосредственно файла базы. Можно сказать, что клиент столкнулся с распространенной ошибкой начинающих администраторов, когда резервные копии создаются, но не проверяются.

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

На Инфостарте была найдена статья, которая на первый взгляд обещала привести к успеху, но все стало только хуже, раньше хотя бы конфигуратор открывался:

Что предлагала нам вышеуказанная статья? Заменить кеш поврежденной базы на кеш от исправной, того же самого релиза, разумное зерно в этом есть и в ряде случаев такой подход увенчается успехом, но не в этот раз. Почему?

Здесь мы вплотную подошли к одному из самых распространенных мифов 1С - очистке кеша. Со временем это переросло в какой-то магический ритуал: не знаешь, что делать - очисти кеш. Давайте разберемся, что такое этот кеш и зачем он нужен.

Не для кого ни секрет, что многие данные в информационной базе не меняются в течении длительного времени и поэтому нет необходимости каждый раз их запрашивать из БД, а можно поместить в локальный кеш и брать оттуда. Кеш делится на пользовательский, где хранятся данные, с которыми работает пользователь и кеш конфигурации, где сохраняются программные модули и данные о конфигурации. Первый располагается в перемещаемой части профиля пользователя %USERPROFILE% \AppData\Roaming\1C, а второй в его локальной части %USERPROFILE%\AppData\Local\1C.

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

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

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

Но вернемся к нашей базе. Что именно произошло? До замены кеша база могла загрузиться в конфигуратор, после его замены - уже не смогла. Следовательно, в кеше поврежденной базы хранились нужные части конфигурации, которых в кеше исправной не оказалось, либо они оказались неидентичными загружаемой конфигурации. Поэтому в нашем случае кеш нам не враг, а наоборот друг и мы должны его не очищать, а наоборот, сохранить.

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

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

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


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


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

Дайте пожалуйста краткий ответ по следующим вопросам. (Подготовка к экзамену) Спасибо.

1)Для чего предназначены шаблоны конфигурации?
2)Для чего предназначена папка tmlts в 8‐ке?
3)Почему сотрудникам нельзя устанавливать конфигурацию и платформу с диска, который идет в комплекте?
4)Где брать установочные релизы и другие файлы для установки?
5)Ошибка «не обнаружен ключ защиты». Предложите варианты решения проблемы.
6)Как обновиться через несколько релизов конфигурации?
7)Как проверить конфигурацию на изменение (типовая или нетиповая)?
8)Могут ли пользователи работать с ИБ во время её обновления?
9)Что такое «динамическое обновление»? Почему не рекомендуется обновлять динамически?
10)Какое предназначение у файла CF? Какое предназначение у файла CFU? Чем отличается файл СF от CFU?
11)Для чего нужен файл MD в 1С 7.7?
12)Сколько конфигураций в базе 1С8?
13)Как обновляется нетиповая конфигурация?
14)Как выполняется обновление отраслевых решений?
15)Что означает ошибка "Структура конфигурации несовместима с текущей версией программы"?
16)Как снять конфигурацию с поддержки? И зачем?

Ответы на частозадаваемые вопросы по программам 1С делового назначения работающих на платформе 7.7, 8.1, 8.2. Бухгалтерия предприятия 2, Зарплата и управления персоналом, Управление торговлей

среда, 29 февраля 2012 г.

При обновлении возникает ошибка: Ошибка загрузки документа. по причине: Ошибка преобразования данных XDTO

Если при обновлении измененной конфигурации Бухгалтерия предприятия, редакция 2.0 (например у вас релиз 2.0.29.10) на релиз 2.0.30.8 и старше, появляется ошибка:

Ошибка загрузки документа.

по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: denyIncompleteValues Форма: Элемент Тип: anyType

Скорее всего это значит, что у вас установлена устаревшая платформа 8.2.13.205 (8.2.13.219) и ее необходимо обновить.
Необходимо установить более новую платформу и в случае если при обновлении возникает ошибка: "структура конфигурации несовместима с текущей версией программы". Это нужно несмотря на то, что на сайте с обновлениями 1С написано следующее:
Бухгалтерия предприятия, редакция 2.0 для Технологической платформы 8.2 Версия 2.0.33.7
Внимание! Текущая версия конфигурации "Бухгалтерия предприятия" предназначена для использования с версией системы 1С:Предприятие не ниже 8.2.13

Читайте также: