К статье
Практический материал

Администрирование · 9 мин

1С выдаёт ошибку формата потока: что делать

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

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

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

Перед любыми действиями с базой сделайте резервную копию: для файловой базы достаточно скопировать файл 1Cv8.1CD, для серверной — выполнить выгрузку через конфигуратор или средствами СУБД. Это займёт несколько минут, но защитит от необратимых последствий.

Почему возникает ошибка формата потока

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

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

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

Ошибка только у одного пользователяСкорее всего, проблема в локальном кэше

Очистите кэш на этом компьютере

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

Сделайте копию и запустите тестирование и исправление

Ошибка при открытии конкретного объектаПовреждены данные конкретной таблицы или записи

Проверьте базу утилитой chdbfl.exe

Ошибка после сбоя сети или светаВысок риск физического повреждения файла базы

Не запускайте базу до создания резервной копии

Шаг 1. Очистка кэша 1С

Кэш платформы находится в профиле пользователя Windows. Закройте все сеансы 1С и удалите содержимое папок кэша. Обычно это каталоги %APPDATA%\1C\1cv8 и %APPDATA%\1C\1cv82, а также %LOCALAPPDATA%\1C\1cv8. Внутри вы увидите папки с длинными именами из букв и цифр — это кэш конкретных баз, привязанный к их идентификаторам.

Удалить можно все такие папки — при следующем запуске платформа создаст кэш заново. Если боитесь удалить лишнее, просто переименуйте папки: эффект тот же, а вернуть всё назад можно за секунду. Сам кэш не содержит пользовательских данных, его удаление безопасно.

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

Очистка кэша 1С
  1. 1
    Закройте все сеансы 1С на компьютере
  2. 2
    Откройте проводник и введите в адресной строке %APPDATA%\1C
  3. 3
    Удалите или переименуйте папки кэша внутри каталогов 1cv8 и 1cv82
  4. 4
    Повторите то же в каталоге %LOCALAPPDATA%\1C\1cv8
  5. 5
    Запустите 1С и проверьте, открывается ли база

Шаг 2. Проверка физической целостности файловой базы

Если очистка кэша не помогла и база файловая (один файл 1Cv8.1CD), следующий шаг — проверка утилитой chdbfl.exe. Она входит в состав платформы и лежит в папке bin установленной версии, например C:\Program Files\1cv8\<версия>\bin\chdbfl.exe. Утилита проверяет физическую структуру файла базы и может исправить повреждения на уровне страниц данных.

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

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

Если база открывается в конфигураторе, выполните штатное тестирование и исправление: меню «Администрирование» → «Тестирование и исправление». Отметьте проверки «Реиндексация таблиц», «Проверка логической целостности» и «Проверка ссылочной целостности». Режим выберите «Тестирование и исправление», а для объектов с ошибками — сначала «Не изменять», чтобы оценить масштаб проблемы без риска.

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

Для клиент-серверной базы (SQL Server, PostgreSQL) chdbfl.exe не применяется — там используются средства СУБД: проверка целостности, восстановление из бэкапа, а также выгрузка базы в файл .dt через конфигуратор, если она ещё открывается.

Шаг 4. Восстановление из резервной копии или выгрузка в .dt

Когда исправить базу не удаётся или цена исправления слишком высока, остаётся восстановление из резервной копии. Для файловой базы это замена файла 1Cv8.1CD копией, для серверной — восстановление бэкапа средствами СУБД. После восстановления потери ограничиваются периодом с момента создания копии, и эти данные придётся вводить повторно.

Промежуточный вариант: если база местами работает, попробуйте выгрузить её в файл .dt («Администрирование» → «Выгрузить информационную базу») и загрузить в новую пустую папку. При выгрузке-загрузке данные пересоздаются заново, и часть повреждений структуры «рассасывается». Однако если повреждены сами данные, выгрузка тоже завершится ошибкой — это, кстати, дополнительный диагностический признак.

Маршрут решения

Как выбрать действие

Ошибка только у одного пользователя или на одном компьютереОчистите локальный кэш 1С
Ошибка у всех, файловая базаСделайте копию 1Cv8.1CD и прогоните chdbfl.exe
chdbfl не помог, но конфигуратор открываетсяЗапустите тестирование и исправление, сначала в режиме без изменений
База не открывается нигде и исправить не выходитВосстановите последнюю рабочую резервную копию
Клиент-серверная базаПроверяйте целостность средствами СУБД и восстанавливайтесь из бэкапа СУБД

Как предотвратить повторение ошибки

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

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

Типичные ошибки
01
Запуск исправления без резервной копии — повреждённые записи удаляются безвозвратно
02
Хранение файловой базы на сетевом диске при работе нескольких пользователей — главный источник повторных повреждений
03
Игнорирование ошибки после первого 'удачного' исправления — без смены условий эксплуатации она возвращается
04
Очистка кэша при открытых сеансах 1С — кэш пересоздаётся с теми же повреждениями

Часто задаваемые вопросы

Пропадут ли данные, если удалить кэш 1С?

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

Ошибка появляется только при открытии одного документа. Что это значит?

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

Можно ли работать с файловой базой по сети, если пользователей двое?

Технически можно, но риск повреждения сохраняется даже с одним пользователем, если сеть нестабильна. Минимизируйте риск: проводное подключение вместо Wi-Fi, ИБП, исключения в антивирусе и ежедневные копии базы.

chdbfl.exe зависла или работает очень долго — это нормально?

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

Ошибка появилась после обновления платформы. В чём причина?

Возможен конфликт версий: базу открывали новой платформой, а затем снова старой, либо кэш был создан другой версией. Очистите кэш и убедитесь, что все пользователи работают на одной версии платформы.

Итог

Что важно запомнить

Начинайте с очистки кэша — это решает большинство случаев за пару минут. Перед chdbfl.exe и тестированием всегда делайте резервную копию. Если база повреждена из-за работы по сети, исправление без смены архитектуры даст лишь временный результат — переходите на серверный вариант и настройте регулярное резервное копирование.