Восстановление SQL базы 1С 8.2. после неудачного сохранения конфигурации
База данных - Архивирование (backup)
Поводом к написанию данной статьи, послужило падение базы во время сохранения конфигурации, при динамическом обновлении. Казалось бы сколько уже раз предупреждали - "Не делайте динамическое обновление на 8.2!", но иногда, без него просто не обойтись.
Итак ничего не предвещало беды, но вдруг во время сохранения конфигурации, 1С выдала ошибку про поврежденный Config и благополучно закрылась. Думая, что проблема решится очень просто, я заново открыл Конфигуратор и прочитал следующее сообщение:
"Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?" "Да, Нет"
Все еще пребывая в радостном расположении духа, я нажал на "Да". 1С-ка немного задумалась и выдала новое сообщение:
"Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию."
И после нажатия на кнопку "Ок" это окно закрылось вместе с конфигуратором. Вот тут-то я и начал подозревать, что все будет не так просто.
Первым делом я полез на mista и infostart в поисках если не решения, то хотя бы причины данной проблемы, но почти все советовали одно и тоже: "Восстанавливай базу из бэкапа". Бэкап, конечно же имелся, но с одним нюансом - больше чем за половину дня, 2000 пользователей, сделали кучу документов и прочей полезной работы, а бэкап был только по состоянию на утро, да и восстановление базы, размером более 100 Гб, занимает ну оооочень продолжительное время.
Продолжая копать глубже, я наткнулся вот на эту замечательную статью VanDiesel1. Вот только этот метод не работает, если базы находятся в разных кластерах, но немного подумав я все же нашел решение. Прочитав статью я узнал, что все дело в "испортившихся" таблицах dbo.Config и dbo.ConfigSave.
Итак, отставить панику!
1. Проверяем есть ли у нас конфигурация идентичная рухнувшей. В моем случае, их было целых 4, так как работаем через Хранилище Конфигурации. Можно использовать и не совсем идентичную конфигурацию, но будьте готовы к тому, что тогда все изменения придется вносить заново (если конечно у вас нет Хранилища Конфигурации).
2. Далее заходим в SQL Management Studio и очищаем таблицы dbo.Config и dbo.ConfigSave рухнувшей базы с помощью нехитрого запроса (для того чтобы его написать, нажмите "New Query" или "Новый Запрос", ну а чтобы выполнить - "Execute" и "Выполнить" соответственно):
Truncate table dbo.Config
Truncate table dbo.ConfigSave
3. Все, теперь осталось "залить" эти же таблицы из хорошей конфигурации. Как я уже написал выше, способ предложенный VanDiesel1 мне не помог, так как рабочая база и все базы с хорошими конфигурациями, находились в разных кластерах. Почитав мануал к SQL Management Studio, я наткнулся на такую возможность, как импорт таблиц из одной базы в другую и незамедлительно решил ей воспользоваться. Итак в SQL Management Studio становимся на испорченную базу и щелкаем правой кнопкой мыши, далее Tasks -> Import Data.
Откроется визард в котором:
- a) На второй странице указываем сервер и базу из которой мы будем брать данные.
- b) На третьей указываем базу приемник.
- с) На четвертой выбираем "Копировать данные из таблиц".
- d) На пятой отмечаем галками таблицы dbo.Config и dbo.ConfigSave.
- e) На шестой смотрим, чтобы не было ошибок и процесс загрузки прошел успешно.
4. Вот собственно и все, можно пробовать запускать 1С.
P.S. В ходе поиска решения узнал, что этот способ восстановления, является недокументированным 1С и все действия, вы выполняете на свой страх и риск, а документированный способ - это восстановление из бэкапа.
Надеюсь эта статья, кому-нибудь поможет сэкономить время и нервы.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.
24900 руб.
20.08.2024 83258 432 171
Инструменты администратора БД Роли и права Системный администратор Разработчик Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)
Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!
23180 руб.
06.12.2023 25071 85 14
Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
17000 руб.
10.11.2023 28738 103 46
Поиск данных Инструменты администратора БД Корректировка данных Разработчик Бухгалтер Пользователь 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 6170 28 8
Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)
Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.
6000 руб.
15.04.2026 4166 12 0
Инструментарий разработчика Инструменты администратора БД Системный администратор Разработчик Аналитик 1С:Предприятие 8 1С 8.3 1С 8.5 1C:ERP 1С:УТ 1С:ДО 1С:Бухгалтерия 3.0 1С:ERP. Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Россия Платные (руб)
Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.
5000 руб.
14.01.2013 217335 1252 0
Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).
14640 руб.
29.04.2020 52955 145 164
Файловый обмен (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 47845 33 15
но в своё оправдание скажу, я пока не сталкивался с такими ситуациями и тьфутьфутьфу. Но я зашел на портал, увидел и прочел эту публикацию, и мне показалось это полезным и с более-менее подробным описанием, чего сейчас мало.
Безусловно, я как и многие начинающие или профессионалы своего дела, посещали и изучали Ваш ресурс, но по всей видимости стоит уделить ему больше внимания, что бы не попадать впросак.
Спасибо и Вам и Автору.
во-вторых, твоя статья не помогает в описанной автором ситуации. От твоего опуса пользы - как от козла молока.
Вот что написано у тебя:
При старте 1С:Предприятие проверяет наличие в информационной базе таблицы
1. Config
2. ConfigSave
3. Files
4. Params
5. _YearOffset
6. DBSchema
и в случае отсутствия какой-нибудь из них выдается сообщение «информационная база разрушена».
1. Проверяем есть ли у нас конфигурация идентичная рухнувшей. В моем случае, их было целых 4, так как работаем через Хранилище Конфигурации. Можно использовать и не совсем идентичную конфигурацию, но будьте готовы к тому, что тогда все изменения придется вносить заново (если конечно у вас нет Хранилища Конфигурации).
2. Далее заходим в SQL Management Studio и очищаем таблицы dbo.Config и dbo.ConfigSave рухнувшей базы с помощью нехитрого запроса (для того чтобы его написать, нажмите "New Query" или "Новый Запрос", ну а чтобы выполнить - "Execute" и "Выполнить" соответственно):
Truncate table dbo.Config
Truncate table dbo.ConfigSave
3. Все, теперь осталось "залить" эти же таблицы из хорошей конфигурации. Как я уже написал выше, способ предложенный VanDiesel1 мне не помог, так как рабочая база и все базы с хорошими конфигурациями, находились в разных кластерах. Почитав мануал к SQL Management Studio, я наткнулся на такую возможность, как импорт таблиц из одной базы в другую и незамедлительно решил ей воспользоваться. Итак в SQL Management Studio становимся на испорченную базу и щелкаем правой кнопкой мыши, далее Tasks -> Import Data.
Откроется визард в котором:
a) На второй странице указываем сервер и базу из которой мы будем брать данные.
b) На третьей указываем базу приемник.
с) На четвертой выбираем "Копировать данные из таблиц".
d) На пятой отмечаем галками таблицы dbo.Config и dbo.ConfigSave.
e) На шестой смотрим, чтобы не было ошибок и процесс загрузки прошел успешно.
4. Вот собственно и все, можно пробовать запускать 1С.
Пригодится, если случится подобное. Но, по-хорошему, ситуация рабочая, и если программист 1С не решит такую проблему без сторонней помощи - то ему незачОт.
Кто поумнее, динамическим обновлением стараются не злоупотреблять.
Во-вторых, в крупных конторах обязанности программиста 1С и администратора баз данных - зачастую разделены, и программист 1С не имеет доступ к администрированию SQL-сервера. Поэтому без помощи админа, программист подобную проблему не сможет решить.
Давайте чуть поменьше пафоса и распальцовок, ок?
Статья безусловно полезная.
(13) (14) Действительно, доступа к серверам нет в крупных конторах. Но тогда и статью незачем выкладывать. Коллизия. Или выкладывать статью, но тогда она пригодится программистам 1С.
(18) WanGoff, статья пригодится, если база источник и база приемник, будут находится в разных кластерах на разных серверах, что я и отметил 2 раза. И да, Вы правы, она еще может пригодиться если программист впервые сталкивается с такой проблемой и нет времени, на ее детальное изучение. Если вдруг что-то падает, а администратор БД находится в отпуске, то сисадмины быстро дают доступ. :)
DELETE FROM [dbo].[Config]
WHERE FileName = 'commit' or FileName = 'dbStruFinal'
ну если вы не видите связи между "СУТЬЮ" моей рекомендации и своей, хотите найти различие в количестве "запятых", продолжать дальше нет смысла
я не против что периодически велосипед изобретается заново, авторство "на хорошую идею" не может быть
но пройдет несколько лет, и вы сами столкнетесь с тем как прочитаете у очередного "изобретателя" написанное здесь, вся история развивается по кругу....
выяснив, что ночной архив становится неактуальным уже через пару часов - завели лог файл на БД MS SQL и в течении дня архивируем логи с интервалом в 20 мин :-)
Тогда максимум что теряется - это 20 или менее минут работы, и восстановление не занимает длительного времени.
При этом "БазаПустышка" - пустая база - просто подключенная к "Хранилищу конфигурации" -
- т.е. собственно перед копированием делал Обновление этой конфигурации из Хранилища .
НО начиная с релиза движка 8.2.17(проверял начиная с 8.2.17.169) - все это НЕ АКТУЛЬНО.... глюков больше нет!
В работе проверяли как еще )) и да вроде как на официальном было написано что исправили ДеМоническое обновление в 8.2.17.
Несколько месяцев 8.2.17.169 - Динамические (уже не ДеМонические можно назвать) обновления (несколько прогеров) очень частые - глюков со слетом конфигурации нет вообще.
ЗЫ:
Напрямую в ЦЕНТРАЛЬНОЙ БАЗЕ ничего не пишем - ВСЕ через "Хранилище Конфигурации" , у каждого прогера своя БД.
зачем Полный БэкапКаждый раз? если падает только таблица конфигурации...
если уж предусматривать такую возможность то делаем как в (24) sanfoto, т.е. НЕПИШЕМ СРАЗУ в центральной а юазаем "Хранилище конфигурации" или пишем код в "Отдельной БД".
ПС:
Хотя бэкапы у нас Всетаки делаются))
1)Полный бакап раз в Сутки -
2)и Транзакшен-лог каждый час...есно все автоматом))
ПС2:
У нас программа работает 24/7 выхода нет - кроме динамического обновления - кого касается тот перезапустит программу(или мы сами "нуждающимся" поможем перезапустить))) ).
PS: до хранилища конфигурации пока не доросли.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 194802
Создание 18.07.13 19:32
Обновление 22.01.14 15:02
Просмотры 41881
Загрузки 0
Рейтинг
106
Комментарии 45
Код открыт Не указано
Рубрики Архивирование (backup) Инструменты администратора БД
Кому
Системный администратор
,
Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)