Администрирование · 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С на компьютере
- 2Откройте проводник и введите в адресной строке %APPDATA%\1C
- 3Удалите или переименуйте папки кэша внутри каталогов 1cv8 и 1cv82
- 4Повторите то же в каталоге %LOCALAPPDATA%\1C\1cv8
- 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С или в клиент-серверный вариант — это устраняет целый класс проблем.
Дополнительные меры: поставьте источник бесперебойного питания на компьютер с базой; добавьте папки 1С и базы в исключения антивируса; настройте регулярное резервное копирование — хотя бы ежедневное для активно используемой базы; следите за свободным местом на диске; не выключайте компьютер кнопкой питания, пока открыта 1С.
Часто задаваемые вопросы
Пропадут ли данные, если удалить кэш 1С?
Нет. Кэш содержит только служебные временные данные платформы — он пересоздаётся автоматически при следующем запуске. Все документы, справочники и настройки хранятся в самой базе и не затрагиваются.
Ошибка появляется только при открытии одного документа. Что это значит?
Скорее всего, повреждена конкретная запись в таблице документов или связанных регистрах. Запустите тестирование и исправление: платформа либо восстановит запись, либо пометит её как повреждённую, и документ придётся ввести заново по бумажным или учётным данным.
Можно ли работать с файловой базой по сети, если пользователей двое?
Технически можно, но риск повреждения сохраняется даже с одним пользователем, если сеть нестабильна. Минимизируйте риск: проводное подключение вместо Wi-Fi, ИБП, исключения в антивирусе и ежедневные копии базы.
chdbfl.exe зависла или работает очень долго — это нормально?
На больших базах (несколько гигабайт) проверка может идти час и дольше, при этом окно утилиты не всегда показывает прогресс. Если процесс не завершился за разумное время и жёсткий диск неактивен, прервите работу и восстанавливайте базу из копии.
Ошибка появилась после обновления платформы. В чём причина?
Возможен конфликт версий: базу открывали новой платформой, а затем снова старой, либо кэш был создан другой версией. Очистите кэш и убедитесь, что все пользователи работают на одной версии платформы.
Что важно запомнить
Начинайте с очистки кэша — это решает большинство случаев за пару минут. Перед chdbfl.exe и тестированием всегда делайте резервную копию. Если база повреждена из-за работы по сети, исправление без смены архитектуры даст лишь временный результат — переходите на серверный вариант и настройте регулярное резервное копирование.