Конфигурация 1С сломалась после сбоя: пять способов вернуть рабочую версию

· 9 мин

Содержание

Чтобы восстановить конфигурацию 1С, чаще всего хватает команды Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД в Конфигураторе: она отменяет несохранённые изменения основной конфигурации. Если же повреждена сама база или конфигурация БД, восстанавливают из выгрузки .dt, из файла .cf или из хранилища конфигурации.

Способ выбирают по тому, что именно сломалось. Неудачная доработка лечится откатом за минуту. Прерванное обновление — загрузкой .cf прошлого релиза. Разрушенный файл базы — загрузкой .dt или бэкапа СУБД. Ниже каждый вариант разобран по шагам, от безопасного к радикальному.

Диагностика: что сломано и насколько всё плохо

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

Что поврежденоКак это выглядитЧем восстанавливать
Основная конфигурация (не сохранена в БД)Конфигуратор показывает изменения, база в режиме «Предприятие» работает как раньшеВозврат к конфигурации БД
Конфигурация базы данныхПрограмма не запускается или падает на открытии форм после обновленияЗагрузка .cf прошлого релиза, хранилище
Данные и структура таблицОшибки чтения, Ошибка формата потока, отказ открывать базуТестирование и исправление, .dt, бэкап СУБД

Минимальная диагностика занимает 10–15 минут:

  1. 🔍 Запустите Конфигуратор и откройте Конфигурация → Проверка конфигурации. Отметьте логическую целостность и поиск некорректных ссылок.
  2. 🔍 Сравните основную конфигурацию с конфигурацией БД: Конфигурация → Сравнить конфигурации…. Если различий нет, проблема не в незаписанных изменениях.
  3. 🔍 Посмотрите журнал регистрации: Администрирование → Журнал регистрации в Конфигураторе. Отфильтруйте события по уровню «Ошибка» за время сбоя.
  4. 🔍 Для файловой базы проверьте размер 1Cv8.1CD и свободное место на диске. Обрыв записи при заполненном диске — частая причина разрушения файла.

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

Перед любым восстановлением сделайте копию текущего состояния — даже сломанного. Выгрузка .dt или копия папки с 1Cv8.1CD позволит вернуться назад, если выбранный способ сделает хуже.

Диагностика: выберите симптом

Способ 1. Вернуть конфигурацию к состоянию базы данных

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

Если программист наломал дров и не успел обновить БД, откат делается так:

  1. Откройте базу в режиме Конфигуратор.
  2. Выберите Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД.
  3. Подтвердите действие.

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

Возврат необратим. Если среди изменений есть нужные, сначала сохраните основную конфигурацию в файл: Конфигурация → Сохранить конфигурацию в файл…. Потом нужные куски можно будет перенести через сравнение и объединение.

Этот способ не поможет, если изменения уже записаны в БД. Тогда переходите к загрузке файла.

Как восстановить конфигурацию 1С из резервной копии: .dt, .cf и .cfu

Три формата часто путают, хотя восстанавливают они разное.

ФайлЧто внутриЧто восстанавливаетРиск для данных
.dtКонфигурация и все данныеБазу целиком на момент выгрузкиДокументы, введённые после выгрузки, теряются
.cfТолько конфигурацияПрограммную часть, данные остаютсяЕсли структура сильно отличается, часть данных может быть удалена при реструктуризации
.cfuТолько разница между релизамиНичего сама по себе, это файл обновленияПрименяется к конкретному предыдущему релизу

Загрузка конфигурации из файла .cf

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

  1. Сделайте выгрузку текущей базы: Администрирование → Выгрузить информационную базу….
  2. Откройте Конфигурация → Загрузить конфигурацию из файла… и выберите нужный .cf.
  3. Согласитесь с заменой основной конфигурации.
  4. Выполните Конфигурация → Обновить конфигурацию базы данных (клавиша F7).
  5. Изучите окно реорганизации: какие объекты и реквизиты будут удалены. Если в списке есть таблицы с данными — остановитесь и проверьте, тот ли файл вы взяли.

Где взять .cf прошлого релиза, если своей копии нет: в каталоге шаблонов. По умолчанию это %APPDATA%\1C\1cv8\tmplts\1c\, дальше папка конфигурации и номер релиза. Внутри лежит 1Cv8.cf — это эталон типовой поставки.

Каталог шаблонов можно открыть из окна запуска: при добавлении новой базы «Создание из шаблона» показывает установленные релизы. Если нужного релиза там нет, его дистрибутив скачивают с портала поддержки по договору ИТС.

Для доработанной конфигурации типовой .cf вернёт программу без ваших изменений. Их придётся переносить отдельно, через объединение.

Загрузка базы из выгрузки .dt

Самый надёжный и самый затратный способ: база возвращается в момент выгрузки целиком.

  1. Убедитесь, что в базе нет пользователей. Загрузка .dt требует монопольного доступа.
  2. Выберите Администрирование → Загрузить информационную базу….
  3. Укажите файл и дождитесь окончания. На базе 10–20 ГБ это может занять от получаса до нескольких часов.
  4. Сообщите бухгалтерии, какие дни придётся ввести заново.

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

Восстановление пакетным запуском

Если Конфигуратор не открывается в интерактивном режиме, выручают параметры командной строки:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"" /LoadCfg "D:\Backup\1Cv8.cf" /UpdateDBCfg /Out "D:\Backup\log.txt"

Для загрузки выгрузки вместо /LoadCfg и /UpdateDBCfg используют /RestoreIB "D:\Backup\base.dt". Номер версии в пути замените на установленный у вас. Результат смотрите в файле, заданном /Out.

Сравнение и объединение конфигураций: вернуть доработки

Когда нужно не просто откатиться, а сохранить часть изменений, используют объединение. Типичный случай: типовая база обновлена, доработки затёрты, а старый .cf с доработками у вас есть.

  1. Загрузите в основную конфигурацию рабочую версию (типовую или текущую).
  2. Откройте Конфигурация → Сравнить, объединить с конфигурацией из файла… и укажите .cf с доработками.
  3. В дереве сравнения снимите все флажки, затем отметьте только свои объекты: обработки, формы, модули, реквизиты.
  4. Для модулей откройте детальное сравнение и перенесите процедуры точечно, а не модуль целиком.
  5. Нажмите «Выполнить», проверьте синтаксис (Конфигурация → Проверка конфигурации) и обновите БД.

Флажок «объединить» на всём корне перенесёт и старый код типовых объектов. Это вернёт вас к прошлому релизу с его ошибками. Отмечайте объекты вручную.

Тот же механизм помогает, если конфигурация была снята с поддержки и обновления больше не ставятся. Объединение с типовым .cf того же релиза с режимом постановки на поддержку возвращает связь с поставщиком.

Перед объединением конфигураций
Выполнено: 0 / 5

Откат к версии из хранилища конфигурации

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

  1. Откройте Конфигурация → Хранилище конфигурации → История хранилища.
  2. Найдите версию до сбоя по дате и комментарию.
  3. Через контекстное меню сохраните выбранную версию в файл .cf.
  4. Загрузите этот файл в рабочую базу или объедините с текущей конфигурацией, как описано выше.

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

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

Хранилище хранит только конфигурацию. Данные из него не восстановить: для них нужны .dt или бэкапы СУБД.

Серверная база: консоль кластера и резервная копия СУБД

В клиент-серверном варианте конфигурация лежит в таблицах СУБД (MS SQL Server или PostgreSQL). Поэтому к способам выше добавляется восстановление средствами самой СУБД.

Подготовка в консоли администрирования кластера

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

Завершение сеансов обрывает работу пользователей без сохранения. Предупредите их заранее и делайте это в нерабочее время.

Восстановление из бэкапа СУБД

Резервную копию SQL восстанавливает администратор сервера: в MS SQL Server — через Management Studio, в PostgreSQL — утилитой pg_restore или из дампа psql. Восстанавливать удобнее в новую базу данных, а потом зарегистрировать её в кластере как отдельную информационную базу и проверить.

Плюс этого способа — точность. При полной модели восстановления MS SQL с журналами транзакций базу можно вернуть на конкретную минуту до сбоя.

Если копии СУБД нет, но конфигурация застряла после прерванного обновления, порядок тот же, что и в файловом варианте: Конфигуратор, возврат к конфигурации БД, загрузка .cf.

Не правьте служебные таблицы 1С (Config, ConfigSave и другие) запросами SQL. Такие советы встречаются на форумах, но ошибка в них разрушает базу без возможности починки средствами платформы.

Тестирование и исправление

Для логических ошибок в любой базе есть Администрирование → Тестирование и исправление в Конфигураторе. Начните с режима «Только проверка», а исправление запускайте после выгрузки .dt. Для файловой базы физическую целостность 1Cv8.1CD проверяет утилита chdbfl.exe из каталога bin платформы — запускайте её на копии файла, при закрытой базе.

Профилактика: как не восстанавливать конфигурацию заново

Автоматически «откатить» конфигурацию платформа не умеет. Автовосстановление — это на деле регулярные копии, которые делаются без участия человека.

  • 📦 Ежедневная выгрузка .dt по расписанию через пакетный запуск с /DumpIB. Храните не одну, а цепочку: 7 ежедневных, 4 еженедельных, несколько ежемесячных.
  • 📦 Бэкап СУБД для серверных баз: полная копия раз в сутки плюс журналы транзакций каждый час.
  • 🧩 Расширения вместо правки типовой. Доработки в расширении не теряются при обновлении и снимаются одним отключением.
  • 🗂 Хранилище конфигурации для любой базы, где ведётся разработка.
  • 🔄 Флажок резервной копии при обновлении. Мастер обновления в типовых конфигурациях предлагает создать копию перед установкой релиза — не снимайте его.
  • 🧪 Тестовая копия. Обновление и доработки сначала на копии, потом в рабочей базе.
  • 💽 Свободное место на диске. Держите запас не меньше двух размеров базы: при реструктуризации 1С создаёт временные таблицы.

Раз в квартал проверяйте, что копии реально разворачиваются. Загрузите последнюю .dt в пустую тестовую базу и откройте пару отчётов. Копия, которую ни разу не восстанавливали, ничего не гарантирует.

Для файловых баз в БП, ЗУП и УТ есть встроенная настройка в разделе Администрирование → Обслуживание: там задают расписание резервного копирования и каталог хранения копий.

Частые вопросы

Можно ли восстановить конфигурацию из файла .cfu?
Нет. Файл .cfu содержит только изменения между двумя релизами и применяется к определённой предыдущей версии. Для восстановления нужен полный .cf или .dt.
Удалятся ли данные при загрузке .cf?
Документы и справочники останутся, если структура в файле совпадает с текущей. Если в загружаемой конфигурации нет каких-то реквизитов или объектов, при обновлении БД их данные будут удалены. Окно реорганизации показывает это до подтверждения.
Что делать, если пароль администратора в Конфигуратор потерян?
Восстановите базу из выгрузки, где пароль известен, или обратитесь к тому, кто администрировал базу. Сбрасывать пользователей правкой файлов базы опасно: это легко ломает базу.
Сколько времени занимает восстановление?
Возврат к конфигурации БД — минуты. Загрузка .cf с обновлением БД — от 10 минут до часа. Загрузка .dt на базе в десятки гигабайт — несколько часов, закладывайте нерабочее время.
Нужно ли после восстановления запускать обновление в режиме «Предприятие»?
Да, если вы загрузили другой релиз. При первом входе типовая конфигурация выполнит обработчики обновления. Дождитесь их завершения, прежде чем пускать пользователей.