Игра с кешем или как реанимировать файловую базу при ошибке "Нарушена целостность структуры конфигурации"
Задачи пользователя - Корректировка данных
Вот и мне пришлось сталкнуться с этой злосчастной ошибкой. Естественно первым делом курение темы в гугле. Вариантов решения масса, но практически все под SQL версию... с файловой версией подходящего решения не нашел.
Итак приступим к описанию.
Все случилось после того, как конфигурация (Бухгалтерия для Украины 1.2.5.3) пожелала автоматически обновиться из тырнета до версии 1.2.6.5. Обновление закочилось ошибкой, в результате при попытке открыть конфигуратор имеем сообщение "Нарушена целостность структуры конфигурации". Из разбора логов стало понятно, что злаполучное автообновление не смогло обновить конфигурацию поставщика, точнее оно ее просто убило. Запуск в пользовательском режиме приводил к крашу программы. Да, кстати, платформа версии 8.2.15.289.
Первым делом решил очистить кеш тут C:\Users\Администратор\AppData\Roaming\1C\1Cv82 и тут C:\Users\Администратор\AppData\Local\1C\1Cv82 (Win7x64). После очистки кеша удалось запуститься в режиме конфигуратора. Попытки открыть конфигурацию приводили к падению. Выгрузить в ДТ удалось. Тестирование и исправление не помогает. Утилита проверки файловой базы говорит, что ошибок нет. Пункты меню загрузки, выгрузки конфигурации, поддержки и т.п. без открытой конфигурации не активны.
Так же из конфигуратора удалоь запуститья в пользовательский режим в режиме отладки. Просмотр данных показал, что данные живы.
Попытка загрузить DT файл в SQL приводила к падению.
Светлую мысль подсказал гугл - создать узел подчиненной базы и выгрузить все туда... не помогло - при выгрузке узла имеем такую же ошибку...
Все, в принципе, на этом можно было бы поставить крест на базе... подняться из древнего бекапа... и напрягаться с восстановление данных вручную (3 месяца работы бухгалтерии). НО!
Как оказалось эту ошибку можно обойти и уничтожить. Итак вот оно - решение:
1. Необходима чистая конфа той же версии, что и работающая база (в моем случае Бухгалтерия для Украины 1.2.5.3 ).
2. Очиста кеша полная.
3. Запускаем чистую базу в режиме конфигуратора и открываем конфигурацию. При этом 1Ска создает ее кеш в C:\Users\Администратор\AppData\Local\1C\1Cv82 (набор файлов и папок в папке с ID конфигурации.) так же нам нужен кеш C:\Users\Администратор\AppData\Roaming\1C\1Cv82.
4. Запускаем наш "трупп" в режиме конфигуратора и смотрим кеш. Имеем две папки с ID конфигурации (Живой и Мертвой).
5. Закрываем все и подменяем кеш мертвой конфы на живую полностью.
6. Запускаем мертвую конфу в режиме конфигуратора и.... ап, дерево конфигурации открыто, разделы меню управления конфигурацией активны.
7. Идем в управление поддержкой, и снимаем с поддержки полностью. сохраняем, обновляем.
8. Удалем кеш полностью.
9. Запускаем Битую базу в режиме конфигуратора, пытаемся открыть конфигурацию - все открывается, ошибки нет.
10. Берем CFку текущей версии конфигурации и делаем полную загрузку, сохраняем, обновляем, в результате получаем конфу снова на поддержке.
11. Для верности очистим кеш и попробуем запустить все сначала и открыть конфигурацию... все должно работать, по карйней мере у меня все получилось.
Вывод из всего этого - нет ничего не выполнимого, и непоправимого, главное не паниковать и включать мозги и фанатазию :)
Удачи вам, дорогие читатели, и делайте по-чаще бекапы :)
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Поиск данных Инструменты администратора БД Корректировка данных Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Решение для автоматической сверки данных между любыми конфигурациями 1С. Помогает контролировать и проверять обмены, проверять наличие документов при переносах данных, находить изменения в закрытых периодах
9760 руб.
14.11.2025 6267 28 8
Задачи пользователя Инструментарий разработчика Корректировка данных Закрытие периода Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)
Обработка предназначена для поиска, анализа и исправления отрицательных остатков во всех регистрах накопления информационной базы 1С.
6100 руб.
27.02.2026 3325 19 3
Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).
14640 руб.
29.04.2020 53051 146 164
Зарплата Корректировка данных Бухгалтер 1С 8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет НДФЛ Платные (руб)
Внешняя обработка сравнивает НДФЛ из расчетного листка и НДФЛ из регистра, на разницу формирует операцию учета НДФЛ. Исправляет расхождения, в том числе, когда Аванс больше Зарплаты Рассчитывает НДФЛ и сравнивает с исчисленным в программе. На отклонение формирует документ "Перерасчет НДФЛ"
9760 руб.
01.09.2023 10177 325 93
Корректировка данных Разработчик Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)
Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.3 от 24.06.2025!
26840 руб.
26.08.2018 57704 20 65
Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)
Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)
24400 руб.
27.10.2017 47917 33 15
Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)
Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.
6100 руб.
10.02.2017 122813 738 177
Корректировка данных Зарплата Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Внешняя обработка предназначена для исправления самых различных ошибок, возникших по самым разным причинам. Общее проявление этих ошибок видно в различии данных между: проводками и различными отчетами по НДФЛ, заполнении ведомостей на выдачу зарплаты, неверным расчетом НДФЛ при начислении ЗП и т.д.
6100 руб.
09.02.2024 4583 15 6
Нет, конфигураци полностью на поддержке...
В случае частичной поддержки нужен CFничег максимально последнего релиза либо попробовать выгрузить CFку через "Конфигурация - конфигурация баз данных - сохранить конфигурацию БД в файл"... но перед тем как его загружать - я бы залил его в отделную чистую базу и просмотрел на предмет работоспособности.
Ну если она на полной поддержке, то там одна конфигурация, и она ессно, поставщика. Не поняла в тексте почему подчеркнуто именно "поставщика".
Частично снятая с поддержки конфа обновляется через CFU. Можно конечно извратиться и получить сфешниик, чтобы с него обновиться через поддержку - выбрать файл, но там теряются некоторые возможности по более гибкому обновлению. А тот способ, что вы мне присоветовали (хых) - в топку ;)
Единственно допустимый вариант обновлять с CF сравнением и объединением - это полностью снятая с поддержки конфа, там другого не предусмотренно.
Пока конфигурация не снята с поддержки - конфигурация поставщика хранится и не меняется.. если выполнять обновление ч-з сравнение объединение, то конфигурация поставщика не обновляется...
В данном примере загрузка конфигурации в финальных действиях выполнялась для того, чтобы вернуть конфигурацию на поддержку, т.к. была повреждена конфигурация поставщика.
Не знаю, но не мы с вами точно :)
Я вот про метод, который вы мне присоветовали в (2):
отвечаю, что обновлять нужно через CFU.
и теряются некоторые возможности...
Но тема не об этом.
Обработка - ОбновлениеКонфигурации - макет ЗаставкаОбновленияКонфигурации (или НеинтерактивноеОбновлениеКонфигурации)
case
ret = backupDB();
break;ищем backupDB , находим в макете МакетФайлаОбновленияКонфигурации
function backupDB()
{
if (!createBackup)
return 0;
var ret = runApp(v8exe, format('CONFIG {0} {1} /DumpIB "{2}" /Out "{3}" /UCПакетноеОбновлениеКонфигурацииИБ /DisableStartupMessages',
infoBasePath, infoBaseAuthorization, backupFileName, tempLogFileName), SW_SHOW, true);
appendLog();
if (ret == 0)
backupCreated = true;
return ret;
} Показатьт.е. по факту, если в настройке автоматического обновления отключили создание резервной копии, то сами себе злобные буратино.
P.S.: всего этого могло бы и не быть.
Честно говоря с механизмом автоматического обновления я не знаком, ибо не следил за его развитем со времен моего ухода с франча... в этом мой прокол - согласен. Но небыло бы прокола, не было этой статьи :) и еще одного варианта решения проблемы.
"напрягаться с восстановление данных вручную (3 месяца работы бухгалтерии)"
Как можно делать копии раз в 3 мес... нафиг вообще парится что-то восстанавливать можно просто сказнать ну вбейте сами как нибудь...
У меня в конторе за подобное просто уволили бы... :)
Ну.... администрирование 1С в мои прямые обязанности не входит... и бекапы за ту ЗП, что мне платят, делать я не намерен... есть обученные бухи, которые должны были это делать...
И вообще - я от 1Ски отошел уже года два как, стало интересней WEB-ом заниматься...
ИМХО, автор правильно сделал, что попытался (и успешно) найти еще один вариант возвращения базы к жизни! Молодец, поддерживаю!
Еще в семерке были недокументированные способы попытки восстановить битый мд-шник. Теперь вот буду знать и для 8-ки запасной вариант!
Еще раз спасибо!
1. Резервные копии - раз в 3 месяца, за такое с работы обычно увольняют. Тем более, что существует достаточно много решений (в т.ч. и на Инфостарте), позволяющих легко и быстро автоматизировать создание резервных копий 1С.
2. В обработке автоматического обновления предусмотрена возможность предварительного резервного копирования, надо всего лишь при настройке выставить нужную галочку.
3. Формулировка "пожелала автоматически обновиться из тырнета" вызывает большое сомнение. Прям восстание машин какое-то. Вероятнее всего, кто-то(не будем показывать пальцем на автора статьи) или запустил эту обработку вручную или настроил график ее запуска. При этом не обратив внимания на настройку "Предварительно сделать резервную копию".
4. Вероятнее всего, кэш пользователя,под сессией которого производилось обновление, уже был "битым" к моменту самого обновления. Т.е. это была своеобразная "мина замедленного действия". Неважно, или 1С-ка бы "пожелала автоматически обновиться из тырнета", или пользователь выполнил обновление через конфигуратор вручную. Результат был бы тот же. Не буду утверждать, но наиболее распространненной причиной, вызывающей нарушение структуры содержимого кэша, является регулярное т.н. "динамическое обновление".
5. Прием, подмены кэша пользователя информационной базы, использованный автором статьи, весьма нетривиален. И автор в чем-то прав, утверждая что, не погуби он своими, мягко выражаясь, "беспечными" экспериментами над рабочей базой ее, не родился бы этот прием. В общем, автору плюсую за креативность, но рекомендую ему в дальнейшем не работать с "боевой" базой по принципу "а давай посмотрим, что делает эта обработка".
А автор молодец, если действительно работает. (И вообще за описание ситуации.) Про кэши я что-то слышал, но тогда была проблема восстановить внезапно почившую внешнюю обработку....
Минус - за небрежное оформление статьи, так как довольно много грамматических ошибок - "злаполучное", "к крашу" (краху или крушению), "удалоь", "запуститья", хотя даже браузеры в 21-м веке уже умеют проверять орфографию.
Избавились от ошибки восстановлением из бэкапа и чисткой кеша.
Весь вопрос ошибки формата потока заключается в том, что часть CF-ника, при ошибке выгрузки или глюков с кешем базы (На слабенькой машинке сохраняем свое творчество, и тут же пытаемся выгрузить CF), забивается нолями... Причем эти ноли сохраняются и в конфигурации базы данных. В итоге: при отсутствии хоть какого-нибудь CF или DT, от этой базы- восстановить наработки будет уже практически нереально!
Подобный танец с бубном пробовал, вот только подмена кеша не сработала на 8.1. Пролазил через Хранилище конфигураций.
Вот описание моего танца с бубном, приведшего к положительному результату:
1. Создаем новую директорию (Директория1);
2. Создаем в 1С новую пустую базу (База1) располагающуюся в данной директории (Директория1);
3. Разворачичаем в новой базе (База1) один из рабочих dt файлов;
4. Открываем конфигурацию для редактирования (Конфигурация- Открыть конфигурацию);
5. Выходим из конфигуратора.
6. Копируем битую базу повер только что созданной (База1);
7. Заходим в новую базу конфигуратором- получаем открытую для редактирования конфигурацию (!!!);
8. Поднимаем для данной базы хранилище конфигураций (Хранилище1);
9. Закрываем конфигуратор;
10. Создаем еще одну новую директорию (Директория2);
11. Создаем в 1С еще одну новую пустую базу (База2) располагающуюся в данной директории (Директория2);
12. Открываем пустую базу (База2) конфигуратором;
13. Подключаемся к хранилищу конфигураций (Хранилище1);
14. Загружаем конфигурацию из хранилища (Хранилище1);
Впринципе все.
Далее можно выгрузить из базы2 работоспособный cf, либо же перенести непосредственно в базу2 данные при помощи универсального обмена через XML.
Пункты 1-7, это и есть аналог подмены кеша, но, видимо, на тот момент платформа сразу переписывала кеш по новой, или как- то проверяла его принадлежность базе. А работа с хранилищем- была обусловлена тем, что оно брало данные о конфигурации именно из кеша.
Я пробовал:
1. удалять из списка базу добавлять
2. очишать кэш
3. удалять платформу , устанавливать новую
4. удалять антивирусы файрволы
5. обновлять платформу до последней версии
А помогло это решение, у меня была проблема со структурой конфигурации, при тестировании с галочку проверка логической целостности давал ошибку потока на регистре "товары на складах" (1С Розница), ппц убил на это дело больше 1го часа.
Конфа уже была снята с поддержки , поэтому я в этом регистре добавил реквизит новый все сохранил , а потом опять его удалил.
Может кому тоже поможет если структура конфы порушилась
С уважением , Айбек Кыдырулы
Выгрузить конфигурацию через меню: "Конфигурация" - "Сохранить конфигурацию в файл".
Снять с поддержки.
Загрузить сохраненную на первом шаге конфигурацию обратно.
И ошибка исчезла.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 121635
Создание 21.03.12 01:13
Обновление 21.03.12 09:28
Просмотры 36229
Загрузки 0
Рейтинг
143
Комментарии 40
Код открыт Не указано
Рубрики Корректировка данных
Кому
Системный администратор
,
Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)