Слетела база 1С: как вернуть данные и что делать в первую очередь

· 10 мин

Содержание

Восстановление базы 1С после сбоя начинают с копии повреждённой папки или файла 1Cv8.1CD, и только потом что-то чинят. Дальше порядок такой: свежая резервная копия есть — загружаете её. Копии нет или она старая — запускаете тестирование и исправление в Конфигураторе. Конфигуратор не открывает файловую базу — проверяете файл утилитой chdbfl.exe.

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

Признаки того, что база 1С повреждена, и первые действия

Повреждение редко выглядит как «пропало всё». Обычно база перестаёт открываться или падает на одном и том же действии.

Типичные симптомы:

  • 🛑 при запуске выходит Файл базы данных поврежден или Неверный формат хранилища данных;
  • 🧩 Конфигуратор пишет Нарушение целостности структуры конфигурации;
  • 🔁 Ошибка формата потока при открытии базы или конкретной формы;
  • 📉 отчёты показывают странные остатки, хотя документы проведены правильно;
  • 👻 в документах вместо контрагента или номенклатуры стоит <Объект не найден>.

Частые причины: отключение питания во время записи, обрыв сети при работе с файловой базой в общей папке, заполненный диск, антивирус, который блокирует файл 1Cv8.1CD, сбой жёсткого диска.

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

Что сделать до любых исправлений

  1. Попросите всех пользователей выйти из программы. В клиент-серверной базе проверьте сеансы в консоли кластера.
  2. Скопируйте каталог файловой базы целиком на другой диск. Для клиент-серверной базы сделайте резервную копию средствами СУБД.
  3. Проверьте свободное место на диске. Если его меньше размера базы, исправление может оборваться на середине.
  4. Запишите точный текст ошибки. Он понадобится, если придётся звать специалиста.

Никогда не запускайте исправление на единственном экземпляре повреждённой базы. Если утилита удалит нужные данные, вернуться будет не к чему.

Какой способ восстановления базы 1С выбрать

СпособКогда подходитЧто можно потерять
Загрузка резервной копииКопия свежая, сбой серьёзныйВсё, что ввели после копии
Тестирование и исправлениеБаза открывается в КонфигуратореБитые записи и объекты
chdbfl.exeФайловая база не открывается вовсеПовреждённые страницы файла
Выгрузка данных в новую базуКонфигуратор открывается, режим «Предприятие» — нетОбычно ничего, если выгрузка прошла
Специалист или сервис восстановленияНи один способ не сработалЗависит от степени повреждения

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

Способ 1. Восстановление базы 1С из резервной копии

Это самый предсказуемый вариант: вы точно знаете, на какой момент вернутся данные.

Файловая база: копия папки

Если копия сделана простым копированием каталога:

  1. Закройте базу у всех пользователей.
  2. Переименуйте повреждённую папку, например в Buh_broken. Не удаляйте её.
  3. Скопируйте папку из резервной копии на место старой под прежним именем.
  4. Запустите базу и проверьте последние документы.

Копия в формате .dt

Файл .dt — это выгрузка базы из Конфигуратора. Загружают его так:

  1. Откройте базу в режиме Конфигуратор.
  2. Выберите Администрирование → Загрузить информационную базу.
  3. Укажите файл .dt и подтвердите загрузку.

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

Встроенное резервное копирование в конфигурации

В БП 3.0, ЗУП 3.1 и других конфигурациях на БСП для файловых баз есть раздел Администрирование → Обслуживание → Резервное копирование и восстановление. Если копирование там было настроено, в этом же разделе есть команда восстановления из выбранной копии.

Клиент-серверная база

Для базы на MS SQL Server или PostgreSQL данные восстанавливают средствами СУБД: из полной копии и, если есть, журналов транзакций. Это работа администратора СУБД. Со стороны 1С после восстановления достаточно проверить, что база открывается и последние документы на месте.

💡 Если резервная копия старше одного-двух дней, сначала попробуйте способ 2 на копии повреждённой базы. Нередко исправление возвращает всё без потерь, и резервная копия не понадобится.

Способ 2. Тестирование и исправление базы в Конфигураторе

Это штатный механизм платформы. Он работает для файловых и клиент-серверных баз и требует монопольного доступа: пока он идёт, в базе никого не должно быть.

Как запустить

  1. Откройте базу в режиме Конфигуратор.
  2. Выберите Администрирование → Тестирование и исправление.
  3. Отметьте проверки и режим, нажмите «Выполнить».

Какие флажки ставить

  • Реиндексация таблиц информационной базы — перестраивает индексы. Безопасна, лечит многие ошибки при открытии форм.
  • Проверка логической целостности — ищет нарушения во внутренней структуре данных.
  • Проверка ссылочной целостности — находит ссылки на несуществующие объекты, те самые <Объект не найден>.
  • Пересчёт итогов — заново считает итоги регистров. Помогает, когда отчёты показывают неверные остатки.
  • Сжатие таблиц — убирает пустое место. Для восстановления не обязательно, только увеличивает время.
  • Реструктуризация таблиц — пересоздаёт таблицы. Самая долгая операция, включайте, если более мягкие проверки не помогли.

Режим: тестирование или исправление

Сначала запустите режим «Тестирование» — он только показывает ошибки и ничего не меняет. Посмотрите отчёт: если ошибок пара десятков и они касаются одного-двух справочников, переходите к исправлению.

В режиме «Тестирование и исправление» программа спрашивает, что делать с проблемами:

СитуацияВариантыЧто выбрать обычно
Ссылки на несуществующие объектыСоздавать объекты / Очищать ссылки / Не изменятьСоздавать объекты
Частичная потеря данных объектовСоздавать объекты / Удалять объекты / Не изменятьСоздавать объекты

Вариант «Создавать объекты» безопаснее: программа создаёт объекты-заглушки, и документы сохраняют связи. Потом заглушки можно найти и заменить настоящими элементами. Вариант «Очищать ссылки» и «Удалять объекты» уничтожает данные безвозвратно.

Пакетный запуск

Если базу нужно проверить ночью или по расписанию, исправление запускают из командной строки:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -BadRefCreate -BadDataCreate /Out"D:\Logs\check.txt"

Вместо 8.3.xx.xxxx подставьте номер установленной платформы. Результат проверки попадёт в файл, указанный после /Out.

Способ 3. Утилита chdbfl.exe для файловой базы

Когда файловая база не открывается даже в Конфигураторе, остаётся проверка самого файла 1Cv8.1CD. Для этого в комплекте платформы есть утилита chdbfl.exe. С клиент-серверными базами она не работает.

Где найти

Утилита лежит в каталоге bin установленной платформы:

C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe

Если папки 1cv8 нет, проверьте C:\Program Files (x86)\1cv8 — там стоит 32-разрядная платформа.

Как проверить и исправить файл

  1. Убедитесь, что базу никто не открыл: утилита требует, чтобы файл был свободен.
  2. Запустите chdbfl.exe двойным щелчком.
  3. В поле с именем файла БД укажите путь к 1Cv8.1CD — именно к копии, а не к рабочему файлу.
  4. Сначала запустите проверку без флажка «Исправлять обнаруженные ошибки» и посмотрите результат.
  5. Если ошибки есть, включите флажок и запустите ещё раз.
  6. После успешного исправления откройте базу в Конфигураторе и выполните тестирование и исправление из способа 2.

chdbfl.exe исправляет ошибки, удаляя повреждённые страницы файла. Если пострадали страницы с документами, они пропадут. Поэтому перед запуском — копия файла.

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

Способ 4. Если база не открывается: как вытащить данные

Бывает, что Конфигуратор открывается, а режим «Предприятие» — нет. Или база работает, но падает на одном разделе. В таких случаях данные переносят в чистую базу.

Выгрузка в .dt

  1. Откройте базу в режиме Конфигуратор.
  2. Выберите Администрирование → Выгрузить информационную базу и сохраните файл .dt.
  3. Создайте новую пустую базу в окне запуска.
  4. Загрузите в неё файл .dt через Администрирование → Загрузить информационную базу.

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

То же самое можно сделать командной строкой: /DumpIB "D:\Backup\buh.dt" для выгрузки и /RestoreIB "D:\Backup\buh.dt" для загрузки в режиме DESIGNER.

Если повреждена конфигурация

Ошибка Нарушение целостности структуры конфигурации касается не данных, а программной части. Варианты:

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

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

Перенос через XML

Если выгрузка в .dt обрывается с ошибкой, данные иногда удаётся забрать по частям. Для этого используют универсальную обработку «Выгрузка и загрузка данных XML». Она выгружает выбранные справочники и документы в XML, а загружают их в новую базу той же конфигурации и того же релиза.

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

Способ 5. Когда отдавать базу специалисту

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

Куда обращаться:

  • 🏢 к партнёру 1С, который обслуживает вашу организацию по договору ИТС: восстановление базы часто входит в линию консультаций или делается как платная разовая работа;
  • 🔧 к программисту 1С, который дорабатывал конфигурацию: у него может быть копия и знание доработок;
  • 💽 в сервис восстановления данных, если сломан сам диск — это задача по железу, а не по 1С.

Ориентировочно разовая работа по восстановлению базы у партнёра стоит от 3–5 тыс. руб. за простой случай до десятков тысяч, если нужен ручной перенос данных. Точную цену назовут после диагностики.

Что передать специалисту, чтобы не терять время:

  • копию повреждённой базы (папку или копию СУБД), а не рабочий экземпляр;
  • точный текст ошибки и снимок экрана;
  • что делали до сбоя и какие способы уже пробовали;
  • номер платформы и название, релиз конфигурации.

Как не потерять базу 1С в следующий раз

Восстановление базы из копии занимает минуты, а ручное спасение — дни. Профилактика стоит дешевле.

  • 💾 Резервные копии по расписанию. Для файловой базы — ежедневная копия папки или выгрузка .dt ночью. Для клиент-серверной — полная копия средствами СУБД раз в сутки и журналы транзакций чаще.
  • 🗂 Правило трёх мест. Хранить копии не только на том же сервере, но и на другом диске и вне офиса.
  • 🧪 Проверка копий. Раз в месяц разворачивайте копию в отдельную базу и открывайте её. Копия, которая не загружается, бесполезна.
  • 🔌 Бесперебойник. Отключение питания во время записи — одна из главных причин повреждения файла 1Cv8.1CD.
  • 🌐 Не держите файловую базу на нестабильной сети. При пяти и более пользователях или работе через Wi-Fi лучше публикация или клиент-серверный вариант.
  • 🛡 Исключения в антивирусе для каталогов баз и кэша 1С.
  • 📏 Свободное место на диске — не меньше двух размеров базы, иначе обрывается и работа, и исправление.
Проверка защиты базы от потери
Выполнено: 0 / 6

Частые вопросы по восстановлению базы 1С

Можно ли вернуть документ, который удалили из базы?
Если документ помечен на удаление, снимите пометку. Если пометку уже удалили обработкой, вернуть его можно только из резервной копии: перенесите документ вручную или выгрузкой из копии.
Сколько длится тестирование и исправление?
Для файловой базы в 2–3 ГБ — обычно от нескольких минут до часа. Реструктуризация и сжатие увеличивают время в разы, поэтому крупные базы проверяют ночью.
Работает ли chdbfl.exe с базой на SQL-сервере?
Нет. Утилита проверяет только файл 1Cv8.1CD файловой базы. Для клиент-серверной базы используют тестирование в Конфигураторе и средства проверки самой СУБД.
Почему после исправления в документах появились элементы без названия?
Это объекты, которые создала программа на месте потерянных ссылок. Найдите их в справочниках и замените на настоящие элементы, иначе отчёты будут показывать суммы по пустым позициям.
Нужно ли перепроводить документы после восстановления?
Если пересчёт итогов прошёл без ошибок, обычно нет. Перепроведение имеет смысл, когда отчёты не сходятся с документами: делают его за закрытый период осторожно, на копии, и сверяют результат.