Ошибки информационной базы 1С:Предприятия — вещь крайне неприятная, особенно при отсутствии резервных копий. А если такая неприятность все-таки приключилась, то приходится порой принимать нестандартные и идущие в противоречие с общепринятыми практиками решения. Но это не должны быть шаманские камлания с бубном, а логически обоснованные и точно выверенные действия, которые позволят выйти победителем из, казалось бы, безнадежной ситуации. Сегодня мы расскажем об одном таком случае из нашей практики.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Предупредим сразу — все решения, описанные в данной статье, относятся к описанном частному случаю и не могут служить готовой инструкцией по исправлению подобных ошибок. При возникновении подобных ситуаций следует проанализировать именно ваш случай и применять какие-либо решения осмысленно, понимая и представляя себе причины и последствия. Также будет не лишним напомнить, что все действия следует производить только на копии информационной базы.
Не так давно к нам обратился один клиент с жалобой на то, что он не может обновить конфигурацию Розница 2.2, действительно, при попытке открыть конфигурацию появлялось сообщение Нарушена целостность структуры конфигурации.
При этом в повседневной жизни данная ошибка никак себя не проявляла, и утилита chdbfl также не нашла в базе каких-либо ошибок. Тем не менее база оказалась серьезно повреждена и любые попытки спасти ситуацию малой кровью: выгрузить данные в узел РИБ или посредством выгрузки-загрузки через XML приводили к ошибкам.
«А как-же резервные копии?» — спросит иной читатель. Резервные копии содержали точно такую же ошибку, так как она не препятствует выгрузке в DT файл и, тем более, архивированию непосредственно файла базы. Можно сказать, что клиент столкнулся с распространенной ошибкой начинающих администраторов, когда резервные копии создаются, но не проверяются.
Попытки загрузить дамп базы в клиент-серверную версию также натолкнулись на описанную ошибку, а попытки откатиться на конфигурацию базы данных или просто сделать тестирование и исправление приводили к аварийному закрытию приложения.
На Инфостарте была найдена статья, которая на первый взгляд обещала привести к успеху, но все стало только хуже, раньше хотя бы конфигуратор открывался:
Впрочем, так оно бывает всегда, когда бездумно применяешь чужие решения. Причин возникновения подобной ошибки может быть много и степень повреждения базы может быть разная, поэтом то, что помогло одному, может еще сильнее навредить другому. Поэтому будем думать.
Что предлагала нам вышеуказанная статья? Заменить кеш поврежденной базы на кеш от исправной, того же самого релиза, разумное зерно в этом есть и в ряде случаев такой подход увенчается успехом, но не в этот раз. Почему?
Здесь мы вплотную подошли к одному из самых распространенных мифов 1С — очистке кеша. Со временем это переросло в какой-то магический ритуал: не знаешь, что делать — очисти кеш. Давайте разберемся, что такое этот кеш и зачем он нужен.
Не для кого ни секрет, что многие данные в информационной базе не меняются в течении длительного времени и поэтому нет необходимости каждый раз их запрашивать из БД, а можно поместить в локальный кеш и брать оттуда. Кеш делится на пользовательский, где хранятся данные, с которыми работает пользователь и кеш конфигурации, где сохраняются программные модули и данные о конфигурации. Первый располагается в перемещаемой части профиля пользователя %USERPROFILE%AppDataRoaming1C, а второй в его локальной части %USERPROFILE%AppDataLocal1C.
Данные о структуре конфигурации хранятся в кеше конфигурации, когда мы первый раз открываем конфигурацию данные считываются из ИБ и сохраняются в кеш и в следующий раз их загрузка будет происходить гораздо быстрее. Если мы изменим данные конфигурации, то они прежде всего изменятся в нашей локальной копии и только после того, как мы нажмем на кнопку сохранить, будут записаны в БД и обновят локальный кеш.
Также с кешем могут быть связаны разные ошибки, допустим если при аварийном завершении работы кеш оказался поврежден или в нем остались устаревшие данные, в этом случае очистка кеша — действие оправданное и необходимое. В остальных случаях это действие по большей части будет бесполезным, разве что замедлит следующую загрузку базы, но в некоторых случаях очистка кеша может и навредить.
В нашем случае проявлению указанной ошибки могла поспособствовать именно очистка кеша конфигурации. Если до повреждения ИБ конфигурация была открыта (а она была, т.к. базу обновляли), то при загрузке конфигуратора должны были быть подгружены кешрованные данные, что дало бы возможность либо обновить конфигурацию, либо загрузить ее из файла. После очистки кеша такая возможность пропала.
Но вернемся к нашей базе. Что именно произошло? До замены кеша база могла загрузиться в конфигуратор, после его замены — уже не смогла. Следовательно, в кеше поврежденной базы хранились нужные части конфигурации, которых в кеше исправной не оказалось, либо они оказались неидентичными загружаемой конфигурации. Поэтому в нашем случае кеш нам не враг, а наоборот друг и мы должны его не очищать, а наоборот, сохранить.
Поэтому мы пойдем другим путем, возвращаемся к сохраненной копии аварийной базы, запускаем ее в режиме конфигуратора, выходим. Тем самым мы создали нужную нам часть кеша, в которой не хватает информации об открытой конфигурации, попробуем дополнить ее из рабочей базы. Для этого возьмем файл 1Cv8.1CD из исправной базы точно такого же релиза и временно заменим им файл неисправной базы (исходный файл при этом следует сохранить).
Запускаем исправную базу в режиме конфигуратора и открываем конфигурацию, таким образом мы дополним уже существующий кеш нужными файлами. Закрываем конфигуратор, заменяем файл базы на исходный (неисправный) и снова запускаем конфигуратор. Как видим наши действия увенчались успехом, мы получили доступ к конфигурации поврежденной базы.
Теперь дело техники, снимаем поврежденную конфигурацию с поддержки и загружаем из файла конфигурацию того же релиза, которую можно выгрузить из заведомо исправной базы или взять из комплекта поставки. Сохраняем, обновляем конфигурацию базы данных.
Таким образом нам удалось полностью восстановить конфигурацию неисправной базы данных, но для этого пришлось пойти на несколько неожиданный шаг. Вместо того, чтобы, не думая очистить кеш, потому что «так принято», мы, наоборот, подумали и сохранили его, дополнив недостающими данными. Поэтому не следует идти на поводу у расхожих штампов, а следует вдумчиво проанализировать сложившуюся ситуацию и принять единственно верное решение, даже если оно «противоречит общепринятым практикам».
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Время прочтения — 2 мин.
Получить бесплатную консультацию
В последние время пользователи 1С часто сталкиваются с проблемой нарушения целостности системы после обновления платформы 1С. Программа предлагает завершить работу или перезапустить систему, в последнем случае указанное сообщение появляется вновь. С чем связано его появление? Давайте разбираться.
Если версия вашей платформы 1С выше 8.3.10.2699 или 8.3.11.2899, то при работе с файловой базой данных появляется эта ошибка. Проблема возникает из-за использования не лицензионной платформы 1С.
Убедиться в том, что вы столкнулись именно с этой проблемой, можно просто открыв информацию о программе (рисунок 2). Если установлена аппаратная лицензия, но USB ключа не было, то необходимо почистить все следы ломанных версий 1С и заново произвести лицензирование.
Рисунок 2
Подпишитесь на дайджест!
Подпишитесь на дайджест, и получайте ежемесячно подборку полезных статей.
Методы решения данной проблемы:
1. Удалите старые неиспользуемые версии технологической платформы «1С:Предприятие». Возможно ранее на компьютере устанавливалась ломанная версия.
2. Удалите «пропатченный» файл backbas.dll, который находится в папке bin с платформой и переустановите платформу.
3. Удалите:
— Virtual Usb Bus Enumerator в «Диспетчере устройств» в ветке «Системные устройства, при этом нужно поставить галочку «Удалять драйвера программы» (рисунок 3);
— файлы VUsb.sys и vusbbus.sys, которые расположены C:WindowsSystem32drivers, а также все возможные вариации имени файла.
Рисунок 3
4. Удалите ветки реестра. Для открытия реестра перейдите в «Выполнить» и откройте regedit (рисунок 4), в самом реестре найдите следующие ветки:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEmulator
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEmulator
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEmu
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceshaspflt
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetNEWHASP
Рисунок 4
5. Выполните в командной строке от имени администратора команды:
- loaddrv.exe -stop haspflt
- loaddrv.exe -remove haspflt
- del %systemroot%system32drivershaspflt.sys
Следы ломанных версий модифицируются, а значит их названия могут меняться. Поэтому к процессу удаления нужно подходить творчески и искать не только то, что написано в этой инструкции, но и все похожие по названию и смыслу файлы.
После удаления временных файлов, проблема с ошибкой «Нарушена целостность структуры конфигурации» должна разрешиться.
В работе программы 1С случаются сбои, и причин тому множество. Один из неприятных сюрпризов – сообщение программы «Нарушена целостность структуры конфигурации», ставящее рядового пользователя в тупик. Чаще всего данная ошибка становится следствием некорректного обновления – сбоя (выключения) системы, технических неполадок при выполнении обновления в конфигураторе или при выполнении автообновления программы в пользовательском режиме и т.п.

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

Если конфигуратор не доступен, надо скопировать базы в другую папку на ПК или на флешку. Хотя при использовании способа, которым мы будем избавляться от этой ошибки, ничего критического произойти не должно, поскольку доработок конфигурации 1С он не предусматривает.
Причина ошибки в данном случае кроется в кэш. Это временные файлы, создаваемые программой для ускорения ее работы, и в результате каких-либо сбоев программа начинает их неверно обрабатывать, что приводит к различным ошибкам. В частности, нарушение целостности структуры конфигурации при обновлении возникает именно так.
Избавляемся от ошибки – чистим кэш
Для того чтобы почистить этот самый кэш, нам надо узнать, где он хранит свои данные через «Настройку» в окне запуска.

В настройках смотрим путь к каталогам шаблонов и обновлений. Наши временные файлы кэш хранятся в папке Roaming. Мы видим ее прописанную в указанном пути.

Найдем и откроем эту папку через «Мой компьютер». Если вы папку не находите, так как она может быть скрыта настройками компьютера, надо в меню «Сервис»-«Параметры папок…» установить видимость скрытых файлов. Вызвать строку меню в окне можно нажав кнопку «Alt».

В открывшемся окне на закладке «Вид» устанавливаем переключатель в положение «Показывать скрытые файлы и папки».

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

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

Открыв папку, мы видим в ней файлы. Файл 1Cv8 – это файл конфигурации, его трогать нельзя, это наша информационная база, а остальные файлы временные, их также можно удалить.

После очистки кэш – удаления временных файлов, проблема с ошибкой «Нарушена целостность структуры конфигурации» должна разрешиться. Если результата не дало (что маловероятно), можно воспользоваться процедурой тестирования и исправления базы в том же пункте меню.
Если работа исправление ошибок вызывает у вас вопросы, обратитесь к нашим специалистам. Мы проконсультируем и подберем для вас оптимальную стоимость сопровождение 1С, ориентируясь на ваши индивидуальные потребности.
Нарушена целостность структуры конфигурации |
Я |
23.04.23 — 08:58
Привет, коллеги.
При обновлении бух проф на релиз 3.0.133.27, по заверениям бухгалтера, в серверной погас свет, всё выключилось и вот.
В конфигуратор заходит, но конфа не открывается, крошась с сабжем.
При входе в режиме 1С предприятия бегунок обновления доходит до 8% и вываливается что то типа «Значение не является значением объектного типа (имя)».
Чекдбфл не находит никаких ошибок, ТИИ проходит в обычном режиме тоже без каких либо проблем.
что пробовал:
1) подсовывал кэш от чистой 3.0.133.27, чтобы хотя бы открыть окно конфы — не помогает. Вываливается сабж.
2) переконвертировал файл 1ЦД в версию для 8.2.14, чтобы попытаться подсунуть в Тул1ЦД таблицу конфигурации из чистой базы (там все на поддержке без изменения), но возможности загрузить таблицу в Тул1ЦД не нашел (кстати, после конвертации стало нормально проходить ТИИ — раньше и при ТИИ крошилось)
Самое печальное, что я даже не могу понять, в каком именно объекте это значение не является значением объектного типа, чтобы узнать где структура конфы поломалась.
Может, кто то проходил уже этот удивительный путь?
Спасибо!
1 — 23.04.23 — 09:02
Перед обновлением всегда делают бэкап
2 — 23.04.23 — 09:05
(1) Это, к сожалению, не мой клиент. Да, забыл сказать, что дт выгружается и загружается. Но конфа не открывается. Кстати, пробовал загрузить в sql. Тоже крашится при попытке что то вставки неуникального индекса.
3 — 23.04.23 — 09:05
> в серверной погас свет
это как?
Свет погас, потом потух.
В полночи пропел петух.
Заскрипела половица.
Громко взвизгнула девица.
Часы пробили двадцать шесть.
У собаки дыбом шерсть.
Рыбки сдохли на картине
И упали со стены.
Я один в своей квартире,
С полтергейстами на «ты»
© не моё
4 — 23.04.23 — 09:07
(3) вот я реально хз че там случилось у них). Работаю только с теми граничными условиями, что мне предоставили.
5 — 23.04.23 — 09:12
Есть те кто проходил этот путь,и те кто пока не проходил.Я проходил,с тех пору у меня есть бесперебойник и беки. Что делать?Восстанавливать,возможно и ручками по первичке.
6 — 23.04.23 — 09:16
Печально. Может, как то можно в файловый вариант подсунуть таблицу config от целой базы? в SQL это работает же…
7 — 23.04.23 — 09:18
Если файловая, то скопируй файл базы, дальше скорми его утилите checkdbfl. Если чего не хватает досоздаст или скорректирует.
8 — 23.04.23 — 09:22
(2)[Кстати, пробовал загрузить в sql. Тоже крашится при попытке что то вставки неуникального индекса.]
можно использовать постгри
можно повесить триггер на нужную табличку, поищи по МихаилМ по форуму, технология описана многократно
9 — 23.04.23 — 09:23
(0)[В конфигуратор заходит, но конфа не открывается, крошась с сабжем. ]
попробуй с помощью ключей запуска вернуться к конфигурации базы данных
10 — 23.04.23 — 09:34
(0) рабочий вариант — это поднять архивную копию базы, сделанную ДО обновления, и повторить попытку,
если архива нет, то какого-то одного рецепта на всё случаи тоже нет,
стандартный набор танцев с бубном:
— ТИИ
— выгрузка/загрузка в файловую базу,
— выгрузка/загрузка в базу SQL,
— chdbfl.exe,
— загрузка конфигурации из файла CF из эталонной конфы того же релиза,
— удалить всё патчи и расширения,
— перегнать базу через облако,
— Tool_1CD,
может что-то ещё вспомню…
11 — 23.04.23 — 09:34
(10) + выгрузказагрузка в идентичную
12 — 23.04.23 — 09:41
(10) *уточнение — chdbfl.exe запускать только на копии базы, т.к. этой утилитой можно базу и в конец угробить 50/50
13 — 23.04.23 — 10:00
(10) «загрузка конфигурации из файла CF из эталонной конфы того же релиза,» — не получится — при попытке открытия окна конфигурации крушится с сабжем.
—
Удивительно, но в sql дт удалось загрузить. Но конфа так и не открылась с той же ошибкой. Сейчас подгружу в скуль чистую бух того же релиза, и скопирую config оттуда в подопытную базу. Если и это не выгорит то хай руками восстанавливает. Но тут уже чисто спортивный интерес)
14 — 23.04.23 — 10:06
(13) разумеется для вашего конкретного случая не всё способы из списка подойдут, он общий
15 — 23.04.23 — 10:09
(13) скорее всего таблицы грохнуты некоторые, утилита это подправит
16 — 23.04.23 — 10:12
патчи и расширения можно грохнуть командой /DeleteCfg -AllExtension
причина ошибки «Нарушена целостность структуры конфигурации» вполне может быть и в них
17 — 23.04.23 — 14:26
ТИИ доступно?
18 — 23.04.23 — 14:28
не пробовали удалить таблицы config/config.sav?
19 — 23.04.23 — 14:29
+ (18) или заменить их таковые из типовой 3.0.133.27 или на таковые из того релиза с которого обновляли
20 — 23.04.23 — 18:35
В общем, тухло всё.
(17), пробовал, подменял типовыми, конф открывается, но 1С не запускается — выдает тонну ошибок(хотя, конфа поставщика совпадает с таковой из чистой базы). При попытке вернуться к конфигурации БД — загружает конфу полностью на 100% и вылетает с нарушением целостности структуры.
Попробовал подоткнуть конфиг от чистой 133.27, и после открытия конфы обновить конфигурацию на последний релиз — обновляет релиз и….крашится с нарушением целостности структуры конфигурации.
21 — 23.04.23 — 19:38
(20) раз 1с запускается и появляется бегунок обновление до 8% идет. Отключи выполнение обновления, ключ не помню по памяти.
А дальше посмотреть доступность данных. Может удастся в чистую перетащить
22 — 24.04.23 — 05:38
(21) может даже через ком подключиться
23 — 24.04.23 — 06:21
(20) конфигурация открылась! Следующий шаг — делаем чисто символическое изменение(например + константа) и ф7
24 — 24.04.23 — 07:21
(0) // При входе в режиме 1С предприятия бегунок обновления доходит до 8% и вываливается что то типа «Значение не является значением объектного типа (имя)».
А что в ЖР?
25 — 24.04.23 — 08:57
(20) «При попытке вернуться к конфигурации БД…» — просто выгрузите конфигурацию в файл и загрузите в новую пустую базу. Так Вы сможете проверить/понять в каком состоянии находится конфигурация БД. Я бы ещё посоветовал снять с поддержки конфигурацию — конфигурация поставщика тоже может рушится и вызывать проблемы не только лишь при обновлении.
PS: ближе всех «в теме» — rphosts [imxo]
Волшебник
26 — 24.04.23 — 08:58
Перед всеми действиями нужно сделать бэкап того, что есть сейчас, чтобы не разрушить ещё больше.
13.11.2018
В последнее время многие пользователи 1С столкнулись с такой ошибкой при входе в программу. Давайте разберемся, по какой причине она появляется, и как решить данную проблему?
Ошибка вызвана тем, что фирма «1С» выпустила новые релизы платформы, в которые внедрили механизм проверки легальности программы. Такое сообщение при запуске программы может появляться и у лицензированных пользователей 1С, если у них когда-либо была нарушена легальность и «следы» этого действия остались в реестрах ПК. Также данная ошибка появляется в том случае, если в системе установлены эмуляторы, то есть используется не лицензионная версия 1С.
Почему возникает данная ошибка?
Давайте разберемся.
На самом деле ничего страшного не произошло. Ваша база находится в целости и сохранности. Данная ошибка никак не связана с самой базой 1С, хотя и выглядит пугающе.
Механизм проверки легальности 1С построен по следующему принципу – при запуске 1С и входе в базу данных программа делает несколько проверок:
- изменен файл backbas.dll (проверяется контрольная сумма)
- установлены ли эмуляторы
- наличие в реестре записей от эмуляторов
Все вместе это и есть проверка легальности использования программы.
При обнаружении нелегальной версии (возможно, просто неправильно установленной программы) 1С выдает ошибку и предлагает на выбор «Завершить работу» или «Перезапустить».
Как исправить?
Вариантов восстановления целостности несколько: как простые, например, исправить данную ошибку можно «чисткой» реестра (удалением эмуляторов, проверкой файла платформы на противоправные действия), восстановлением лицензии, так и более сложные вплоть до переустановки операционной системы Windows (не забывайте, что перед любыми действиями нужно делать резервную копию своей базы).
Мы рекомендуем за исправлением данной ошибки обращаться в обслуживающую компанию, где квалифицированные специалисты помогут вам в решении данного вопроса. Для того, чтобы обратиться в нашу компанию, звоните по телефону 8-(3852)-66-88-79
Как предотвратить подобные проблемы при обновлении 1С?
— Проверка платформы.
Уже многие столкнулись с тем, что 1С: Бухгалтерия предприятия, редакция 3 не запускается с технологической платформы 1С: Предприятие 8, версии ниже, чем 8.3.12.1529 и требуется ее обязательное обновление. На нашем опыте мы рекомендуем ставить платформу не ниже 8.3.12.1616, на ней возникает меньше ошибок.
— Проверка обновлений ОС.
Так как операционные системы Windows XP и младше перестали получать поддержку от Microsoft, рекомендуем заменить операционную систему. Новые платформы требуют обновления библиотек операционных систем, то есть обновления Windows должны быть включены и установлены. Следите за обновлениями операционной системы.
— Проверка характеристики ПК
Также сообщаем, что платформа 8.3.12.1529 и выше, может требовать больших ресурсов к программным и аппаратным характеристикам ПК, поэтому мы можете наблюдать замедление скорости работы. Если такое произойдет, то рекомендуем обратиться к нашим специалистам, которые проведут диагностику вашего ПК и дадут рекомендации по настройке или модернизации техники.
Возврат к списку