Восстановление SQL базы 1С 8.2. рухнувшей во время сохранения конфигурации

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

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

Предистория

Два дня назад осуществили переход с 8.1 на 8.2 - меняли конфу УПП 1.2... на 1.3.22.1. Соответственно куча отличий от типовой конфигурации, которые накатывали - повлекло за собой кучу ошибок. Два дня, не ночуя, меняем конфигурацию в режиме нон-стоп. Конфигуратор сохраняется раз 15 в час. Следовало ожидать, что при сохранении, конфигурация может вылететь, что собственно и произошло. Такие проблемы, в конфе 8.1 - всегда разрешались выходом пользователей, которые еще работали в базе, но уже не могли повторно войти и монопольным доступом. В нашей же новой конфигурации 8.2 база сказала нам "Я устал. Я ухожуй" ), в общем проблема описана в анонсе.

Что было предпринято из правильного и неправильного. И совет о том что делать первым делом.

Первым делом мы в суматохе начинаем искать способы решения возникшей проблемы в интернете. Гугл дает буквально 3 статьи на текущий момент по тексту возникающей ошибки.

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

Не стоит говорить о важности бэкапов их регулярности и прочем. Считаю что в плане нас это было хорошим предупреждением, хотя у нас и был бэкап базы после ее сохранения в конфигурации 1.3 но за их регулярностью и тем что они делаются (а винчестер не чистится и прочее) , за этим мало кто следит. Соответственно простите за "капитана очевидность", но если у вас есть свежий бэкап - первым делом и займитесь восстановлением базы из него, не теряйте драгоценное время, за простой которого руководство вас не поблагодарит. Однако можно попытаться оживить "упавшую" базу, что благодаря моей настырности было и предпринято. Отмечу, что другим программистом также были приняты попытки как то оживить базу 1с-вскими способами, но они были безуспешны. Не знаю всего что он делал, но видел попытки запуска 1С в командном режиме сразу с запуском Тестирования и исправления ИБ, которые собственно ничего не запускали.

Я заострил свое внимание на SQL. Небольшой опыт конфигурирования и администрирования баз и типовой набор sql-команд мне знаком, но изложенный ниже способ итак не потребует никаких глубоких знаний и навыков работы с SQL. Я просто подключил логику - если база "упала" в момент сохранения конфигурации, делаем вывод, что в SQL могла порушиться структура одной таблицы (хотя я не знал до этого что конфигурация в 8 версии лежит в одной сиквель таблице) и эта таблица в которой хранится конфигурация базы. а именном таблица dbo.config. Это в последствии я узнал методом "самотыка" и опять же логики, ибо единственное что нашел это местную разработку, мне не помогшую но довольно полезную на будущее, а именно http://infostart.ru/public/61114/ Спасибо автору от учетки моего коллеги, с помощью которого я ее скачал. Итак перехожу к самому важному - попытки(!) восстановления базы ибо гарантий никаких я вам, к сожалению, дать не могу и тому есть ряд предустановок, которых у вас может и не быть или как говорится - это не ваш случай...

Требования и непосредственно само восстановление базы

Итак все что было выше, читать, в случае возникшей проблемы, может и интересно, но необязательно.

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

Исходные данные - SQL база 1С 8.2, конфигурация УПП 1.3.22.1 (полагаю описанный способ подойдет для любой эскюэльной базы 8.2). SQL сервер 2005. Ошибка описанная в анонсе и ошибка возникшая в момент сохранения конфигурации! Самое важное и обязательное требование!!! Копия SQL базы с ТАКОЙ  ЖЕ КОНФИГУРАЦИЕЙ(!) У нас настроен авто-обмен с другой базой и конфигурации их совпадают. Кроме этого, так как нас трое программистов 1С - у каждого есть выгруженный и относительно свежий файл конфы. По факту подойдет любая база, неважно с какими данными, главное чтобы конфигурация в ней соответствовала структуре метаданных базы. Отмечу тот факт, что конфигурация даже немного отличалась от той, с которой база вылетела. Самое основное, на мой взгляд, требование, чтобы отличия в конфигурации не затрагивали метаданные. Не стоит забывать тот факт, что если конфигурация отличается, то в итоге вы получите рабочую базу но с конфигурацией из вашей копии.

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

1. Делаем бэкап рухнувшей базы средствами SQL.

2. Очищаем таблицу dbo.config нашей базы в которой лежит наша порушенная конфа. Это можно сделать из SQL- Profiler, к примеру запустив в нем команду:

Use Base2009

go

Delete From [DBO].[Config]

go

где Base2009 имя рухнувшей базы.

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

3. Копируем таблицу из базы с целой конфигурацией, в нашу порушенную базу. В моём случае обе базы были на одном сервере поэтому команда копирования в SQL-Profiler выглядела так.

insert into [base2009].[Dbo].[Config] select * from [BaseCopy].[Dbo].[Config]

go

где base2009 - имя рухнувшей базы, BaseCopy имя базы с копией конфигуратора

4. Запускаем 1С, и в случае успеха - прыгаем, как я от радости, что удалось оживить базу без каких-либо потерь информации.

5. (Капитан очевидность) проверяем отлаживаем и следим за системой создания бэкапов базы и очень ответственно подходим к процессу обновления конфигурации (делаем это не по сети, а желательно на сервере, по возможности сделав предварительно бэкап). Особенно если версия вашей 1С стала 8.2. Насколько я понял из статей в сети и превых двух дней работы с ней, что она более чувствительна и капризна, по сравнению 8.1 с которой таких проблем не было.

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

З.Ы. Еще раз напомню, что данная функция восстановления является недокументированным 1С-овцами способом восстановления базы (в конкретном случае обрушения базы, произошедшего в процессе сохранения конфы) и все что вы делаете - вы делаете на свой страх и риск, но конкретно в моем случае других путей оживить базу с минимальной потерей существующей информации не было (лог файл потерли и самый свежий бэкап представлял потерю 1.5 дня работы порядка 100 пользователей), поэтому, как говорится мосты были сожжены )

З.Ы.Ы. Это моя первая публикация тут т.к. трусь на других 1С форумах, но нахожу этот ресурс одним из самых полезных в плане выложенных разработок и публикаций, поэтому не судите строго за много ЕСЛИ в данной публикации). Буду очень рад, если реально помог кому-нибудь с восстановлением порушенной базы ибо страшнее этого только ядерная война )

З.Ы.Ы.Ы. Спустя 3 недели проблема повторилась ) На этот раз на решение было потрачены какие-то секунды (если не учитывать время создания бэкапа), и даже пользователей не пришлось выгонять.

_____________________________________________________________________________________________________________

Сегодня прибежал коллега. Та же самая беда. Только база тестовая а не рабочая и сама база ему поскольку постольку - а вот конфигуратор ему важен. Неделю он краптел над ним ни разу не выгрузив в cf файл и не накатив изменения в рабочую базу. Ну что ж - почему бы не поковырятся уже с таблицей?! На этот раз все еще проще. Открываю SQL Managment Studio. Формирую запрос по таблице на поля с текущей датой изменения и временем когда у него вылетела база - результат дает 2 записи. Первая - Поле FileName  = "commit" Ну что же - грохнуть эту запись - и у меня все получилось! Конфигуратор ожил и база опять работает. Что же нужно сделать?! 

Итак в открытом окне SQL Managment Studio ищем нашу базу - открываем Таблицы, ищем в конце списка таблицу с конфой dbo.config на таблице - правую кнопку - Открыть таблицу. Далее в правом окне спускаемся в самой таблице вниз по алфавиту на поле где FileName  = "commit". Встаем на эту запись - правую кнопку мыши - Удалить. В общем удаляем  запись с двоичным файлом. Далее пробуем зайти в конфу. Ошибка та же самая первая появляется. Наверно не получилось?Ё  Нажимаем Ок. И тут, прежде чем выдать как ранее 2-е сообщение о невозможности сохранить -  компьютер задумался. Спустя секунд 30 - О ЧУДО! Конфигуратор открылся. Пробуем сохранить конфигуратор (предварительно сохранив cf файл). Конфигуратор сохраняется. Таким образом и волки сыты и овцы целы. Не уверен насчет полной работоспосбности базы после таких измывательств - так что посоветую сделать реструтуризацию и пересчет итогов уже потом вечером (предварительно конечно же сделав архив). Удачного востановления и положительных эмоций )

Автор: Олег Ряднов

Комментарии

1
  • Штыров Юрий
    Какие страсти!
    А такой простой мысль, как хранение описания всех таблиц, табличных форм etc. не в самой базе данных разработчикам в ум не приходил? Вах! Вах!
    Непосредственное автору хочу подсказать: прежде чем начать что-то вытворять с базой данных, делайте бекап. Принудительно. Просто возьмите себе за правило - делаю и все тут!
    Не понадобится, удаляем.
    Но если понадобится, тупо импортируем данные убитой таблицы, тем паче, что Вы в курсе какая именно погибает первой.
    Ну и еще, используя свой слэнг "одинэсники" полагают, что все читатели смогут продраться сквозь него?
    А программерам, работающим с сиквельским "Один-Эсом" можно только посочувствовать.
    Маловато инструментов "родители" им выдали. Я, например, с ужасом прочитал про какеи-то "накаты конфы" в куда - то в темноту. По причине убиенности ее при обновлении.
    У нас, считаю, не супер, но таких безобразий не имеется. Всегда есть возможность сравнить стандартные описания с доработками клиента и перенесением последних без утраты данных.
    Причем происходит это все визуально. Шлёп! И имеем список расхождений. Ваше - наше.
    Правда, есть в "одном- эсе" и свои "напильники - рубанки", коих у нас нет, но это означает только одно - есть куда двигаться.


Фейковых приложений банков стало на 25% больше: причина и как обезопаситься

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

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора
Общество

Расширят ответственность за участие в деятельности нежелательных организаций

За участие в деятельности любых нежелательных организаций Госдума хочет ввести административную и уголовную ответственность.

Законопроекты

Тех, кто игнорирует федеральные законы, хотят отстранять от должности

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

Лучшие спикеры, новый каждый день

Ура! Выходные! Главное в майские не забудьте про уплату налогов. Праздничный выпуск 🎈«Ночной бухгалтер» № 1674

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

Иллюстрация: Вера Ревина / Клерк.ру
Валюта

Банкам будет проще получить разрешение на вывоз валюты

Кредитным организациям больше не нужно представлять в ЦБ заключения об установленных критериях повреждений вместе с заявлениями о вывозе ветхих или поврежденных купюр.

Онлайн-кассы

Как в 2024 году будут идти проверки ККТ

В 2024 году в рамках проверок ККТ налоговики будут проводить профилактические и внеплановые контрольные мероприятия.

Опытом делятся эксперты-практики, без воды
Трудовое право

Предложено разрешить больше работать сверхурочно, чем сейчас разрешает ТК

В настоящее время Трудовой кодекс разрешает переработки по 4 часа в течение двух дней подряд, то есть работать по 12 часов в день.

Обзоры новостей

⚡️ Итоги дня: в Питере открылся сезон фонтанов, в Америке поймали аллигатора голыми руками, а врач объяснил, кому нельзя есть шашлык

Подготовили обзор главных событий дня — 27 апреля 2024 года. Все самое интересное, что писали и обсуждали в сети, в одной подборке.

НДФЛ

2 мая заканчивается налоговая декларационная кампания

До этого момента физлицам, ИП, нотариусам, адвокатам и частнопрактикующим специалистам нужно подать в ФНС декларации о доходах по форме 3-НДФЛ за 2023 год.

Бухгалтеры

Обзор сервиса «Клерк.Консультации»: как задать вопрос и на какие темы отвечают эксперты

Есть вопросы? Задайте их экспертам «Клерка»! Вы можете задать 1, 10 или 30 вопросов про налоги, учет, 1С, кадры, работу на маркетплейсах или праву, и уже через несколько часов получите развернутый ответ от наших специалистов. Мы поможем вам быстро решить проблему любой сложности.

Иллюстрация: создано с помощью ИИ OpenAI © Вера Ревина/Клерк.ру
ВЭД

Половина платежей из России в Китай проходит через посредников

Банки КНР опасаются работать с российскими предпринимателями из-за рисков попасть под вторичные санкции США. В итоге бизнес отправляет платежи через посредников, которые просят несколько тысяч долларов.

Декретный отпуск

👍 Увеличат размер декретных для уволенных женщин. Нынешнее пособие не отвечает его целям, говорит эксперт

Минтруд начал разработку проекта с поправками в закон о детских пособиях. Увеличат пособие по беременности и родам для женщин, уволенных при ликвидации компании или закрытии ИП.

Миникурсы, текстовые и видеоинструкции для бухгалтеров
Дробление бизнеса

Как ФНС находит компании с искусственным дроблением бизнеса

Узнайте больше о том, на каком основании налоговые инспекторы могут сделать вывод о дроблении бизнеса. Это поможет предпринимателям защитить себя и свое дело.

Валютные операции

Кабмин на год продлил требования о продаже валютной выручки

Экспортерам увеличили срок зачисления валютной выручки на счета в российских банках до 120 дней.

Советы, законы и личный опыт: подборка телеграм-каналов для бизнеса

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

Советы, законы и личный опыт: подборка телеграм-каналов для бизнеса
Бухгалтеры

🔥 Акция 6+6! Год подписки «Клерк.Премиум» по цене полугода!

Пользуйтесь всеми сервисами «Клерка» год, а заплатите, как за полгода. Купите подписку «Клерк.Премиум» на 12 месяцев, получите доступ к закрытым материалам — разборам законов, онлайн-курсам, справочно-правовой системе, вебинарам со скидкой 40%, а также 2 экспертные консультации в подарок!

Иллюстрация: Вера Ревина/Клерк.ру

68% сотрудников планируют рабочие задачи в блокнотах

Большинство россиян ведет заметки в бумажном виде, тогда как электронными планировщиками пользуются 36% сотрудников.

Как подготовить бизнес к продаже. 6 шагов

Чтобы продать готовый бизнес, недостаточно опубликовать объявление: нужно подготовить отчеты, описать процессы, разобраться с товарными остатками.

1
Бесплатно с Ликвидация бизнеса

Как подать заявление на упрощенную ликвидацию МСП электронным способом

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

Как подать заявление на упрощенную ликвидацию МСП электронным способом

Интересные материалы

Вправе ли компания принять кандидата на бесплатную стажировку

Работу со студентами организуют многие большие компании. Для будущих молодых специалистов они предлагают практику — в период каникул или перед сессией. Но в обиходе есть еще один термин «стажировка». Зачастую работодатели предлагаю ее на небольшое время кандидатам — чтобы оценить деловые качества, соответствие поставленным задачам. Но вправе ли компания взять соискателя на временную бесплатную стажировку?

Иллюстрация: создано с помощью ИИ OpenAI © Вера Ревина/Клерк.ру