Ошибка динамического обновления 1с sql

Недавно,  при динамическом  обновлении конфигурации  sql -базы  на платформе 8.2   возник сбой, после которого, перестал запускаться  конфигуратор, выдавая…

  Недавно,  при динамическом  обновлении конфигурации  sql -базы  на платформе 8.2   возник сбой, после которого, перестал запускаться  конфигуратор, выдавая сообщение «Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?», если ответить Да, то появлялось второе сообщение «Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.»

Данная проблема я не встречал ни разу на платформе 8.3

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

Поиск решения вопроса в интернете дал мне надежду. Очень помогла статья на сайте 42clouds  Незавершенная операция обновления конфигурации БД

Как известно, вся информационная база представляется в базе данных в виде набора таблиц. Среди них есть несколько таблиц, которые обязательно присутствуют в представлении любой информационной базы ( подробнее можно посмотреть на диске ИТС Размещение данных 1С:Предприятия 8) . Из всех этих таблиц для нас имеет значения только 2 таблицы из них:

  •  dbo.Config  –  основная конфигурация информационной базы. Эта конфигурация соответствует реальной структуре данных и используется 1С:Предприятием 8.0 в режиме Предприятия данные переносятся в эту таблицу  после обновления
  • dbo.ConfigSave –  конфигурация, редактируемая Конфигуратором. Конфигурация из ConfigSave переписывается в Config при выполнении “Обновления конфигурации базы данных” в Конфигураторе, а наоборот – при выполнении в Конфигураторе операции “Конфигурация – Конфигурация базы данных – Вернуться к конфигурации БД”

Согласно информации в интернете проблема   связана с испорченной таблицей dbo.Config и предлагается 2 варианта решения:

Вариант 1: Воспользоваться возможностью скопировать таблицу dbo.Config из идентичной базы в неработающую 

Вариант 2  Удалить все найденные изменения. Для этого вам необходимо выполнить 3 запроса:

  1.  delete from config where FileName = ‘commit’
  2. delete from config where FileName = ‘dbStruFinal’
  3. delete from config where FileName = ‘dynamicCommit’

Я выполнил все 3 запроса, но говоря, что иногда достаточно выполнить только первый запрос.

В других статьях в интернете предлагают другой вариант по шагам:

  1. Делать бэкап рухнувшей базы средствами SQL.
  2. Очистить таблицу dbo.config рухнувшей базы SQL- Profiler запустить команду:
Use BaseName go Delete From [DBO].[Config] go

где BaseName – это имя рухнувшей базы.

Обнаружена незавершенная операция сохранения конфигурации

Ошибка возникает после динамического обновления.

При запуске 1с сначала выходит диалог с ошибкой «При обновлении данных после последней реструктуризации произошла критическая ошибка. Повторить обновление». 

Если попытаться обновить, бывает два варианта сценария

  • все применяется корректно, но потребуется завершить работу пользователей для обновления
  • обновление не проходит: выходит сообщение («Обнаружена незавершенная операция сохранения конфигурации«)

Причины и обстоятельства

Такие ошибки возникают обычно на старых версиях платформы. В настоящее они время проявляются очень редко (на 8.3 не встречалось ни разу).

Также замечу: в последней платформе 8.3.8 появилось долгожданное динамическое обновление в клиент-серверном режиме без перезапуска конфигуратора (ранее такое было только на файловых базах).

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

Что же делать при такой ошибке?

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

Если копий нет, то в случае если конфигурация типовая и правки не затрагивают структуру данных, то разворачивайте типовую конфигурацию.

Далее, производите замещение конфигурации из «копии» в «исправляемую» базу

Для этого Запускаете SQL Management Studio и выполняете такой запрос:

delete  from [ИмяИсправляемойБазы].[dbo].[Config]

GO

insert into [ИмяИсправляемойБазы].[dbo].[Config]
SELECT [FileName]
      ,[Creation]
      ,[Modified]
      ,[Attributes]
      ,[DataSize]
      ,[BinaryData]
  FROM [КопияБазы].[dbo].[Config]
GO

В 99% случаев он вам поможет (мне помогало 3 раза). Исправление занимало от 5 до 20 минут.

Далее восполняете пробелы в коде. Если конфигурация подключена к хранилищу, необходимо синхронизировать захваченные объекты (отпустить и захватить заново), внести правки.

Если версия файловая произведите тестирование утилитой «C:Program Files (x86)1cv88.*.*.*binchdbfl.exe».

При отсутствии конфигурации/копии:

  • смотрите записи таблицы dbo.ConfigSave, при наличии — очищайте (пробуйте запустится)
  • смотрите записи таблицы Config, на поле «FileName», если есть со значением «commit»,»dbStruFinal» или «dynamicCommit»  — удаляйте
  • либо в этой же таблице смотрите записи с именами подобными %_dynupdate_ % (здесь потребуется «по манипулировать» с датами и именами, но у меня не получалось)

Не помогло?

В остальных случаях придется поднимать и откатывать копии базы данных или транзакции (при полной модели восстановлении).

При небольшом документообороте может оказаться проще откатить базу на несколько минут назад — быстрее восстановить работоспособность (внести данные заново), чем поднимать другие копии.

Рекомендации

  • Используйте полную модель восстановления
  • Чаще делайте копии и базы, и конфигурации (в идеале: перед каждым обновлением)
  • Используйте хранилище для разработки
  • Держите рядом копию базы (это сэкономит время для восстановления)
  • При подозрительных ошибках в момент обмена с хранилищем не обновляйте базу при работающих пользователях

В моем случае возникла ошибка snegopat-а при обмене с хранилищем, а затем такая же в момент обновления — с вытекающими проблемами.

Избегай конкретных обещаний. Текст должен быть чарующе неопределенным.

Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?

Опубликовано: 16.02.2018 /

Переезжали мы на новый сервер. На нем SQL и 1C. В сравнении со старыми был намного круче. И тест Гилева это тоже подтвердил: против 10-15 на старых серверах выдавал 39. Поэтому мы сразу после покупки перенесли базу и начали работу.

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

«Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?» «Да, Нет»

После нажатия кнопки «Да» появляется следующее:

«Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.»

Первое, что решил сделать — CHECKDB на в Managment Studio —  после 2х часов ожидания (база 500 ГБ) — все ОК.

На просторах сети нашел информацию, что такая же ошибка бывает при динамическом обновлении. 

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

Решение:

  1. То, чего не хватало для решений из сети:

sp_configure ‘allow updates’, 1
reconfigure with override
go

 2.  Переводим базу в режим восстановления

alter database [db_name] set EMERGENCY, SINGLE_USER

3. Выполняем тестирование базы:

dbcc checkdb(‘db_name’, REPAIR_ALLOW_DATA_LOSS )

4. Выводим базу из режима восстановления:

alter database [db_name] set ONLINE, MULTI_USER

5. В принципе, если уверены что с самой базой все ок, то можно не делать 2-4 пункты. Далее выполняем два запроса в профайлере SQL:

delete from config where FileName = ‘commit’
delete from config where FileName = ‘ dbStruFinal’

Эти записи и отвечают за динамическое обновление — можно не бояться их удалять.

В рабочих версиях баз запросы:

select * from Config WHERE FileName = ‘commit’

select * from Config WHERE FileName = ‘dbStruFinal’

будут пустые.

6. возвращаем настройки:

sp_configure ‘allow updates’, 0
go

7. После этого удалось запустить конфигуратор и база заработала. 

Также база может заработать после удаления первого флага.

Еще из решений, которые есть в сети, полная замена таблицы Config.

Что у меня использовалось:

Платформа 1С: 1С:Предприятие 8.3 (8.3.10.2466)

SQL: Microsoft SQL Server 2008 R2 Standard Edition (64-bit) 10.50.6220.0

Также обратил внимание, что проблема повторяется на всех версиях платформ и SQL.

Всем удачи с решением таких проблем. Если есть трудности, обращайтесь, помогу.

p.s. бекап был, но терять даже несколько часов работы не очень хотелось

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

1. Например можно словить:
Ошибка СУБД:
ERROR:  relation «_reference5029» does not exist

2. Если изменилась (или удалилась) функция — будет фатальная ошибка или отсутствие контроля целостности данных.

3. Еще одна неприятная ситуация возникает при некорректной работе с кэшем метаданных.
Кэш метаданных расположен в папке <Имя пользователя OS>Local SettingsApplication Data1C1Cv81
В нем необходимо стереть подпапки Config, ConfigSave, DBNameCache, SICache.
В результате легко получить ошибку «Ошибка потока формата».

Примечание.
UUID информационной базы можно посмотреть в файле
C:Documents and Settings<Имя пользователя>Application Data1C1Cv81ibases.v8i.

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

Возможные проблемы:
1. Основная проблема в работе с КЭШ.
1.1. У пользователя может не обновиться кэш на клиенте.
1.2. Кэш на сервере может не обновиться.
1.3. Кэш у разработчика может не обновиться (если работают несколько разработчиков)
2. Сталкивались с такой ситуацией когда делаешь штук 5 демонических обновлений а потом обычное. При обычном все демонические пропадают. Т.е. все что нажито непосильным трудом…
3. Сама ошибка заключатся в том, что в момент записи в таблицу «Config» что-то произошло, что помешало корректно закончить данную процедуру.

Часто программисты не учитывают, что есть список объектов, НЕ доступных для динамического обновления
Регламентные задания
Общие реквизиты
Планы обмена
Реквизиты, предопределенные элементы, иерархия, владельцы, нумерация справочников
Реквизиты, нумерация, движения, последовательности, ввод на основании документов
Перечисления
Тип значений характеристик, реквизиты, нумерация, предопределенные элементы планов видов характеристик
Реквизиты, нумерация, субконто,  предопределенные элементы планов счетов
Реквизиты, нумерация, расчет,  предопределенные элементы планов видов расчета
Реквизиты, регистраторы регистров сведений, накопления, бухгалтерии, расчета
Реквизиты, нумерация, расчет,  предопределенные элементы планов видов расчета
Реквизиты, адресация, нумерация задач
Реквизиты, нумерация,  ввод на основании бизнес-процессов

Были известны случаи, когда «демоническое обновление» останавливало работу всей системы, а исправление последствий отнимало уйму времени или базы восстанавливали из копии, потеряв часть данных.

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

Если вы работаете с часто изменяемой печатной формой и не хотите постоянно выгонять пользователей, используйте внешние обработки.
Хорошей практикой считается все плановые изменения вносить например раз в неделю, например во вторник. К этому дню все правки тестируются не только по отдельности, но и в общем взаимодействии. Если во вторник информационная система ухудшила свою работу, значит сразу понятно, что надо откатить последний релиз к предыдущему. А это означает бэкап не только базы, но и бэкап cf перед внесением изменений.

Если Вы словили проблему связанную с динамическим обновлением, то обязательно очистите сеансовые данные с рестартом службы сервера 1С.
Если проблема не ушла, то запускайте сеанс 1С с ключом /ClearCache .

Народное творчество. Порочность динамического обновления воспета народом в интернете:
«Здравствуйте, меня зовут Алексей и я делаю динамическое обновление.
Раньше, я делал динамическое обновление по три или даже целых пять раз в день.
Я мог не спросить пользователей, не сделать бекап средствами СУБД и динамически обновить базу ради изменения макета печатной формы счета на оплату.
Но потом случилось горе и в одно прекрасное обновление база просто не запустилась.
Это был ч0рный день в моей жизни.
Я потерял друзей, коллеги отвернулись от меня.
Жена меня бросила и дети не хотят со мной разговаривать.
Попа болела после долгого и многозначительного разговора с начальством.
И я решил изменить свою жизнь.
Я теперь занимаюсь спортом
Стал посещать бассейн.
Питаюсь правильно и соблюдаю правила дорожного движения.
Сегодня у меня праздник.
Я  уже 30 дней не делаю динамического обновления без архивации базы данных средствами СУБД.
Я практически готов полностью отказаться от динамического обновления.
Вообще не обновлять динамически.

Преодолеть зависимость от динамического обновления мне помогли 12 простых шагов:

12 ШАГОВ , РАЗРАБОТАННЫЕ САМИМИ ДИНАМИЧЕСКИМИ ОБНОВЛЯЛЬЩИКАМИ
1. Признать свое бессилие перед поведением платформы 1с при динамическом обновлении.
2. Согласиться с утверждением, что без посторонней помощи не обойтись.
3. Мысленно перепоручить себя некой Высшей силе, которая поможет.
4. Проанализировать свои поступки.
5. Признать перед собой и кем-то еще свои ошибки.
6. Не сомневаться, что бекап перед динамическим обновлением сработает.
7. Просить высшие силы избавить от недостатков.
8. Составить список всех людей, кому причинили зло, и захотеть загладить свою вину перед ними.
9. Лично возместить этим людям ущерб, нанесенный вами и вашим динамическим обновлением.
10. Продолжать самоанализ и, при малейших ошибках, сразу признавать, что вы их таки совершили.
11. Не переставать размышлять и благодарить помощника из пункта 3.
12. Достигнув пробуждения, благодаря пунктам 1-11, помогать другим динамическообновлялщикам.

Механизм работы обновления:
Процесс динамического обновления (и обновления вообще) происходит следующим образом:

  • Анализируется корректность метаданных;
  • проверяется наличие пользователей с административными правами;
  • проверяется необходимость обновления структуры ИБ:
    • если не понятно, что обновления структуры ИБ не требуется, запускается обновление структуры ИБ. При появлении необходимости изменения структуры делается попытка заблокировать ИБ монопольно.
      • если попытка блокировки удалась — процесс обновления продолжается, динамического обновления не происходит;
      • если попытка блокировки не удалась — процесс обновления завершается.
  • если необходимо, то обновляется информация необходимая полнотекстовому поиску;
  • если необходимо, то обновляется информация требующаяся для отложенной загрузки метаданных;
  • если после всех этих действий монопольная блокировка не установлена, делается попытка её установить.
    • если попытка блокировки не удается — пользователю предлагается повторить блокировку или обновить ИБ динамически.
  • выполняется операция обновления ИБ в обычном или динамическом режиме;
    • если это динамическое обновление — в ИБ записывается разность между предыдущим и текущим поколением метаданных и информация необходимая для корректной работы.
    • если это монопольное обновление и перед ним происходили динамические обновления — из информационной базы удаляются сведения об устаревших поколениях.
  • если обновление происходит монопольно или динамически, но клиент подключен к файловой ИБ — конфигуратор просто обновляет свои внутренние структуры и продолжает работу. Процесс обновления ИБ завершен.
  • в случае если обновление происходит динамически, но клиент подключен к клиент-серверной ИБ — конфигуратор уведомляет сервер о том, что поколение метаданных, с которым он сейчас работает, устарело. Сервер запоминает этот факт и при подсоединении первого нового клиента «поднимает» для него самое актуальное поколение метаданных. Уже подключенные клиенты живут в старом поколении до тех пор, пока они подключены к серверу. Так как конфигуратору для продолжения работы после обновления ИБ требуется самое новое поколение, а он подключен к старому, то конфигуратор перезапускается

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

  Skillbox: Профессия 1С-разработчик  

Я
   Iori

05.01.21 — 16:04

при динамическом обновлении SQL базы произошла ошибка: Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?» «Да, Нет»

Если выбрать да, то выводится сообщение:

«Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.»

В результате нет возможности зайти в конфигуратор. Что нужно сделать?

   ДенисЧ

1 — 05.01.21 — 16:05

Восстановить из архивной копии и повторить обновление нединамически

   Iori

2 — 05.01.21 — 16:09

а если копия не сделалась?

   fisher

3 — 05.01.21 — 16:11

(2) Сейчас копию сделать не забудь и эксперименты — на ней. Гугли сабж. Должны понаходиться рецепты ковырения в таблицах Config/ConfigSave

   Iori

4 — 05.01.21 — 16:14

А как сделать копию,если не заходит в конфигуратор?

   fisher

5 — 05.01.21 — 16:17

(4) У тебя ж SQL? Сиквельный бэкап. И рядышком разверни.

   fisher

6 — 05.01.21 — 16:20

https://forum.infostart.ru/forum33/topic179476/

   rphosts

7 — 05.01.21 — 16:33

В консольки СКЛ:

1.Делается копия(бэкап) базы средствами СКЛ.

2.Из бэкапа разворачивается ещё одна база.

3.В развёрнутой БД выполняешь 2 запроса:

delete from config where FileName = ‘commit’

delete from config where FileName = ‘dbStruFinal’

4.Подключаешь БД к серверу 1С.

5.Профит!

6.Если не станешь делать бэкапы перед обновлением — в следующий раз тебе никто помогать не будет, т.к. дуракам не делающим бэкапы помогать — поощрять их дурость.

   hhhh

8 — 05.01.21 — 18:12

(7) он же не обновление делал

   rphosts

9 — 05.01.21 — 18:47

(8) он динамил ИБ  когда в ней юзера сидели

  

Iori

10 — 05.01.21 — 21:57

(7) Бекап средствави скл сделал, а два запроса сделал сразу в рабочей базе. Заработала. Спасибо.

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Описание ошибки:
Ошибка возникла в процессе динамического обновления конфиуграции клиент-серверной базы, работающей на MS SQL 2008. Релиз платформы 1С: Предприятие 8.3.9.2033

Найденные решения:

Как уже было отмечено, ошибка возникла в момент выполнения динамического обновления конфигурации базы. После этого попасть с базу не представлялось возможным ни с одного рабочего места. При попытке запустить базу 1С 8 в режиме «Конфигуратор» ошибка «Ошибка формата потока» возникала сразу же:

1С 8 ошибка формата потока клиент сервер на всех компьютерах

При попытке запустить базу в режиме «1С: Предприятие» система позволяля выполнить авторизацию пользователя, но затем все-равно возникала ошибка.

1С 8 ошибка формата потока на всех рабочих местах SQL серверная база

Оставалось понятным одно, что изменения все-таки не сохранились.

ошибка формата потока в базе 1С 8 клиент-серверный вариант MS SQL

ошибка формата потока при запуске 1С 8 везде после обновления в клиент-серверной базе

Т.к. свою работу в момент возникновения ошибки и проблемы вел удаленно на сервере, то подумал, что ошибка возникла только у меня. И, первым делом, попробовал избавиться от нее стандартным действием, которое в последнее время часто помогает (на фоне все более частого возникновения различных «глюков» в работе 1С 8 с базами) — удаление/добавление базы из списка баз, чтобы удалить локальный кэш базы (временные файлы, связанные с базой). Но это не помогло. Уже после этого узнал, что проблема запуска 1С на всех рабочих местах. А это значит, что проблема базы, а не какого-то локального кэша.

В попытке решить проблему были предприняты следующие действия, описание которых в большинстве своем можно встретить на просторах интернета:

— Очистка логово базы на MS SQL

— Установка более новой версии плафтормы 1С: Предприятие.

— Попытка запуска базы с командной /RollbackCfg

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

Помогла рекомендация для SQL-ной базы — удалить все записи в таблице configsave (delete from configsave).

Как это сделать?
Выполняем запрос: delete from [ИмяНашейБазы].[dbo].[ConfigSave]
См скрин:

ошибка формата потока в 1С 8 sql-ной базе

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

Если данная приведенная информация не помогла устранить «Ошибку формата потока», то предлагается воспользоваться общей инструкцией по устранению данной ошибки: «Ошибка формата потока» в 1С: Предприятие 8. Общее руководство по устранению.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

11-12-2017

Журавлев А.С.
(Сайт www.azhur-c.ru)

Поводом к написанию данной статьи, послужило падение базы во время сохранения конфигурации, при динамическом обновлении. Казалось бы сколько уже раз предупреждали — «Не делайте динамическое обновление на 8.2!», но иногда, без него просто не обойтись.

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

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

«Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?» «Да, Нет»

Все еще пребывая в радостном расположении духа, я нажал на «Да». 1С-ка немного задумалась и выдала новое сообщение:

«Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.»

И после нажатия на кнопку «Ок» это окно закрылось вместе с конфигуратором. Вот тут-то я и начал подозревать, что все будет не так просто.

Бэкап, конечно же имелся, но с одним нюансом — больше чем за половину дня, 2000 пользователей, сделали кучу документов и прочей полезной работы, а бэкап был только по состоянию на утро, да и восстановление базы, размером более 100 Гб, занимает ну очень продолжительное время.

Продолжая копать глубже, я узнал, что все дело в «испортившихся» таблицах dbo.Config и dbo.ConfigSave.

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

Далее заходим в SQL Management Studio и очищаем таблицы dbo.Config и dbo.ConfigSave рухнувшей базы с помощью нехитрого запроса (для того чтобы его написать, нажмите «New Query» или «Новый Запрос», ну а чтобы выполнить — «Execute» и «Выполнить» соответственно):

Truncate table dbo.Config

Truncate table dbo.ConfigSave

Все, теперь осталось «залить» эти же таблицы из хорошей конфигурации. Как я уже написал выше, способ предложенный VanDiesel1 мне не помог, так как рабочая база и все базы с хорошими конфигурациями, находились в разных кластерах. Почитав мануал к SQL Management Studio, я наткнулся на такую возможность, как импорт таблиц из одной базы в другую и незамедлительно решил ей воспользоваться. Итак в SQL Management Studio становимся на испорченную базу и щелкаем правой кнопкой мыши, далее Tasks -> Import Data.

Откроется визард в котором:

  • На второй странице указываем сервер и базу из которой мы будем брать данные.
  • На третьей указываем базу приемник.
  • На четвертой выбираем «Копировать данные из таблиц».
  • На пятой отмечаем галками таблицы dbo.Config и dbo.ConfigSave.
  • На шестой смотрим, чтобы не было ошибок и процесс загрузки прошел успешно.

Вот собственно и все, можно пробовать запускать 1С.

P.S. В ходе поиска решения узнал, что этот способ восстановления, является недокументированным 1С и все действия, вы выполняете на свой страх и риск, а документированный способ — это восстановление из бэкапа.

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

Понравилась статья? Поделить с друзьями:
  • Ошибка датчика фаз газель бизнес
  • Ошибка динамик драйв бмв е70
  • Ошибка двигателя tsi
  • Ошибка дейз 0х00020009
  • Ошибка динамик гарнитура или наушники отключено