Что ломает информационную базу 1С и как вернуть данные

· 9 мин

Содержание

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

Ниже не инструкция по вредительству, а разбор рисков с точки зрения администратора. Каждое действие, которое ломает базу, — это и подсказка, где у вас слабое место. Для каждого случая указано, как его распознать и чем восстанавливать.

Где база 1С уязвима: файловый и клиент-серверный вариант

Риски сильно зависят от того, как хранится база.

ВариантГде лежат данныеГлавные угрозы
ФайловыйОдин файл 1Cv8.1CD в каталоге базыОбрыв питания, сетевая папка, антивирус, переполнение диска
Клиент-серверныйТаблицы СУБД (MS SQL Server, PostgreSQL)Сбой диска СУБД, обрыв транзакций, ошибки обслуживания, кэш сервера 1С

Файловая база — это одна большая «коробка». Повреждённая страница внутри 1Cv8.1CD может сделать недоступным весь файл. В клиент-серверном варианте повреждение обычно локальное: страдает одна таблица или индекс, остальное читается.

Файловый вариант разумен до 10–15 одновременных пользователей и при работе в локальной сети без Wi-Fi. Дальше риск повреждения растёт быстрее, чем выгода от простоты.

Физическое повреждение файла базы и диска

Это самый частый сценарий для файловых баз. Процесс 1С пишет страницу в 1Cv8.1CD, и запись обрывается на середине.

Что к этому приводит:

  • ⚡ Отключение питания без ИБП или «жёсткая» перезагрузка кнопкой.
  • 🌐 Обрыв сети при работе с файловой базой на общей папке: клиент на соседнем компьютере пишет в файл по SMB, связь пропадает.
  • 📶 Wi-Fi и VPN для файловой базы. Кратковременные потери пакетов, которые браузер не замечает, для файла базы критичны.
  • 💽 Заполненный диск. Файлу базы и временным файлам не хватает места, запись прерывается.
  • 🔧 Изношенный диск с переназначенными секторами, неисправный RAID-контроллер без батареи кэша.
  • 🧲 Копирование файла 1Cv8.1CD при открытых сеансах. Копия получается несогласованной, и при восстановлении из неё база может не открыться.

Типичные тексты ошибок после таких сбоев:

  • Файл базы данных поврежден
  • Ошибка формата потока
  • Нарушение целостности структуры конфигурации

Копировать каталог файловой базы можно только когда в ней никто не работает. Надёжнее делать резервную копию выгрузкой .dt или средствами планировщика с монопольным доступом.

Обновление конфигурации, прерванное на середине

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

Как ломают базу при обновлении:

  1. 🛑 Снимают задачу 1cv8.exe в диспетчере задач, потому что «долго висит». На больших базах реструктуризация идёт десятки минут и даже часы — это нормально.
  2. 🔌 Перезагружают сервер посреди обновления.
  3. 📦 Ставят обновление не по цепочке: пропускают обязательные промежуточные релизы. Платформа примет файл, но обработчики обновления не отработают, и данные останутся в несогласованном виде.
  4. 🧩 Обновляют конфигурацию, снятую с поддержки, «поверх» доработок без сравнения и объединения. Доработки теряются, а ссылки на удалённые объекты остаются в данных.
  5. 🔀 Запускают обработчики обновления (первый запуск в режиме 1С:Предприятие) и закрывают программу, не дождавшись конца. Отложенные обработчики потом можно дозапустить, но первичные должны пройти полностью.

Признак логического повреждения после обновления — база открывается, но в журнале регистрации ошибки, отчёты дают пустые или странные суммы, при открытии документов появляется Объект не найден.

Перед обновлением всегда делайте выгрузку .dt или резервную копию СУБД. Это единственный гарантированный путь назад, если обновление оборвётся.

Сбои СУБД: MS SQL Server и PostgreSQL

В клиент-серверной базе данные хранит СУБД, и её повреждения 1С видит как ошибки чтения таблиц.

Что приводит к повреждению

  • 💾 Сбой дисковой подсистемы под файлами данных (.mdf, .ldf у MS SQL; каталог данных у PostgreSQL).
  • 📈 Переполнение журнала транзакций у MS SQL в модели восстановления Full без резервного копирования журнала. Диск кончается, запись встаёт.
  • 🧹 Ручная правка таблиц запросами в обход 1С. Платформа ожидает согласованности ссылок и итогов; прямой UPDATE или DELETE её нарушает.
  • ⚙️ Неподходящая сборка PostgreSQL. Для 1С используют сборки с патчами под платформу; ванильная сборка может не поддерживать нужные типы данных.
  • ⏹️ Аварийная остановка службы СУБД во время записи. Журнал транзакций обычно спасает, но при сбое диска — нет.

Модель восстановления и журнал транзакций

У MS SQL Server от модели восстановления зависит, до какого момента можно откатиться.

МодельЧто даётЧего требует
SimpleВосстановление только на момент полной копииМинимум обслуживания
FullВосстановление на любой момент времениРегулярного резервного копирования журнала, иначе он растёт до заполнения диска

Частая ошибка — включить Full «для надёжности» и не настроить копирование журнала. Через несколько месяцев файл .ldf занимает весь диск, и база встаёт.

Как проверить базу на стороне СУБД

Для MS SQL Server проверка целостности выполняется командой:

DBCC CHECKDB ('ИмяБазы') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Для PostgreSQL полную проверку даёт попытка выгрузить базу утилитой pg_dump: если страница таблицы повреждена, выгрузка остановится на ней с ошибкой. Для проверки индексов B-tree есть расширение amcheck.

Параметр REPAIR_ALLOW_DATA_LOSS у DBCC CHECKDB удаляет повреждённые страницы вместе с данными. Используйте его только на копии базы и только если резервной копии нет.

Ошибки администрирования и прав доступа

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

Права на уровне Windows и Linux

  • 🔐 У пользователя нет прав на запись в каталог файловой базы. 1С не может создать файл блокировки 1Cv8.1CL и временные файлы, сеансы падают на записи.
  • 👤 Служба сервера 1С работает от учётной записи без прав на каталог кластера srvinfo. Сервер не может сохранить данные сеансов.
  • 🗂️ Одну файловую базу открывают разные версии платформы. Разные релизы платформы 8.3 работают с базой корректно, но запуск конфигуратора старой версии на базе после обновления формата чреват ошибками.

Права пользователей внутри 1С

  • 👑 Роль «Полные права» у всех. Любой пользователь может удалить помеченные объекты, сменить настройки учёта или запустить обработку групповой правки реквизитов.
  • 🗑️ Удаление помеченных объектов без контроля ссылок вне рабочего времени, когда никто не проверяет результат.
  • 🧪 Внешние обработки «из интернета» для «исправления проводок», которые пишут в регистры напрямую.

Кэш и служебные файлы сервера 1С

Устаревший сеансовый кэш сервера иногда даёт ошибки, похожие на повреждение базы. Его чистят удалением файлов snccntx* в каталоге кластера.

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

Внешние воздействия: антивирусы, шифровальщики, синхронизация

  • 🦠 Шифровальщики. Самая разрушительная угроза: файл 1Cv8.1CD и резервные копии рядом с ним шифруются целиком. Спасает только копия, недоступная с заражённого компьютера.
  • 🛡️ Антивирус в режиме постоянной проверки каталога базы. Он открывает файл для сканирования в момент записи 1С. Каталоги баз, кэша 1С и данных СУБД стоит добавить в исключения.
  • ☁️ Облачная синхронизация (Яндекс Диск, OneDrive и подобные) каталога файловой базы. Клиент синхронизации перезаписывает файл старой версией или копирует его в середине записи.
  • 🔁 Восстановление снимка виртуальной машины с сервером СУБД без остановки службы. Снимок «на лету» может быть несогласованным.

Правило 3-2-1 работает и для 1С: три копии, на двух разных носителях, одна вне офиса. Копия на том же диске, что и база, от шифровальщика не защищает.

Диагностика и восстановление повреждённой базы

Порядок действий зависит от того, открывается ли база вообще.

Что происходит с базой?

Как понять, когда начались проблемы

Перед восстановлением полезно определить момент сбоя. От него зависит, какую резервную копию брать.

  • 📜 Журнал регистрации (Администрирование → Журнал регистрации в конфигураторе или раздел «Администрирование» в пользовательском режиме). Отберите события с уровнем «Ошибка» и найдите первую запись с текстом о чтении или записи данных.
  • 🖥️ Журнал событий Windows или системный журнал Linux. Ошибки диска, внезапная перезагрузка и остановка службы СУБД видны там с точным временем.
  • 🗄️ Журнал ошибок СУБД. У MS SQL Server — журнал ошибок сервера в Management Studio, у PostgreSQL — лог в каталоге данных.

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

Шаг 1. Сделайте копию в текущем состоянии

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

Шаг 2. Утилита chdbfl.exe для файловой базы

Утилита лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.

  1. Закройте все сеансы базы.
  2. Запустите chdbfl.exe и укажите файл 1Cv8.1CD.
  3. Сначала проверьте без галочки «Исправлять обнаруженные ошибки».
  4. Если ошибки найдены и копия есть — повторите с исправлением.

Шаг 3. Тестирование и исправление в конфигураторе

Путь: Конфигуратор → Администрирование → Тестирование и исправление. Нужен монопольный режим.

Основные проверки:

  • Реиндексация таблиц — восстанавливает индексы.
  • Проверка логической целостности и ссылочной целостности — находит битые ссылки и «объекты не найдены».
  • Пересчёт итогов — исправляет расхождения в регистрах.
  • Сжатие таблиц — для файловой базы.

Для битых ссылок выберите действие «Не изменять» на первом проходе, чтобы увидеть масштаб. Создание объектов-заглушек и удаление ссылок применяйте осознанно: удаление ссылок меняет документы.

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

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

Шаг 4. Выгрузка и загрузка .dt

Если база открывается в конфигураторе, выгрузите её в .dt (Администрирование → Выгрузить информационную базу) и загрузите в новую пустую базу. Это пересобирает файл заново и часто снимает проблемы со структурой страниц. Если выгрузка падает с ошибкой — сначала тестирование и исправление.

Шаг 5. Восстановление из резервной копии

Если ничего не помогло, остаётся последняя рабочая копия. Данные, введённые после неё, придётся вносить заново — по первичным документам, выпискам банка и данным ЭДО.

Защита базы 1С от повреждения
Выполнено: 0 / 8

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

Может ли база повредиться от того, что пользователь закрыл 1С крестиком?
Нет. Закрытие окна корректно завершает сеанс. Опасно снять процесс в диспетчере задач во время записи или реструктуризации.
Сколько ждать, если обновление «зависло»?
На базах в десятки гигабайт реструктуризация идёт часами. Ориентируйтесь на активность диска и процесса 1cv8.exe: пока он читает и пишет, обновление работает.
Помогает ли chdbfl.exe для клиент-серверной базы?
Нет, утилита работает только с файлом 1Cv8.1CD. Для серверной базы используйте средства СУБД и «Тестирование и исправление».
Можно ли восстановить базу после шифровальщика без копии?
Как правило, нет. Расшифровка возможна только для отдельных семейств вирусов, у которых найден ключ. Рассчитывайте на резервную копию, недоступную с заражённой машины.
Нужно ли делать тестирование и исправление регулярно?
Профилактически — раз в квартал на копии базы или после любого аварийного сбоя. Пересчёт итогов полезен перед закрытием года.