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

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

Ошибка формата потока в 1С: как устранить

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

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

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

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

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

Чтобы выбрать правильное действие, нужно понять, какой именно «поток» повреждён. Условно причины делятся на три группы.

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

Вторая группа — повреждение файла самой базы (1Cv8.1CD в файловом варианте) или таблиц в СУБД (в клиент-серверном варианте). Такое случается при отключении питания во время записи, сбоях диска, работе базы по сети через общую папку (что категорически не рекомендуется), ошибках антивируса, который блокирует файл в момент записи.

Третья группа — несовместимость версий. Например, базу открыли более новой платформой, она обновила структуру, а затем её пытаются открыть старой версией. Или на сервере и клиенте установлены разные релизы платформы.

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

С высокой вероятностью повреждён кэш на его компьютере — начните с очистки кэша

Ошибка у всех пользователейПроблема в самой базе

Повреждены данные или метаданные базы — нужно тестирование и исправление или восстановление из копии

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

Например, справочник или журнал документов — поможет chdbfl или ТиИ с реструктуризацией

Ошибка после обновления платформыНесовместимость версий

Проверьте, что на всех рабочих местах и сервере стоит одинаковая версия платформы

Подготовка: обязательная резервная копия

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

Для файловой базы достаточно скопировать каталог базы целиком (в нём находится файл 1Cv8.1CD) в отдельное место. Делайте это, когда в базе никто не работает, иначе копия может получиться неконсистентной. Для клиент-серверной базы используйте штатные средства СУБД (например, pg_dump для PostgreSQL или резервное копирование в MS SQL Server Management Studio) либо выгрузку в dt через конфигуратор, если база ещё открывается.

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

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

Закройте все сеансы 1С на проблемном компьютере. Затем удалите содержимое папок кэша. Проще всего открыть их через строку «Выполнить» (Win+R): введите %APPDATA%\1C\1cv8 и затем %LOCALAPPDATA%\1C\1cv8. Внутри будут каталоги с длинными именами — это идентификаторы баз. Удалите каталог, соответствующий проблемной базе, или все каталоги сразу, если не уверены.

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

Порядок очистки кэша
  1. 1
    Завершите все сеансы 1С на компьютере пользователя
  2. 2
    Нажмите Win+R, введите %APPDATA%\1C\1cv8 и нажмите Enter
  3. 3
    Удалите папки с длинными именами (идентификаторы баз)
  4. 4
    Повторите для %LOCALAPPDATA%\1C\1cv8
  5. 5
    Запустите 1С и войдите в базу — кэш создастся заново
  6. 6
    Проверьте, исчезла ли ошибка формата потока

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

Если очистка кэша не помогла и база хотя бы открывается в конфигураторе, следующий шаг — штатное тестирование и исправление. Откройте конфигуратор (монопольно, все пользователи должны выйти), перейдите в меню «Администрирование» → «Тестирование и исправление».

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

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

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

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

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

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

text
C:\Program Files\1cv8\8.3.22.1750\bin\chdbfl.exe

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

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

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

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

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

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

Ошибка только у одного пользователя, у остальных база работаетОчистите кэш на его компьютере — этого почти всегда достаточно
База открывается в конфигураторе, но ошибка есть у всехЗапустите «Тестирование и исправление» с реиндексацией и проверкой логической целостности
База не открывается даже в конфигураторе (файловый вариант)Используйте chdbfl.exe с флажком исправления ошибок
Ни один способ не помогВосстановите базу из последней резервной копии и повторно введите недостающие данные
Ошибка появилась после обновления платформыПриведите версии платформы на всех рабочих местах и сервере к одному релизу

Как проверить результат и не допустить повторения

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

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

Контрольные точки

Как проверить результат

Запуск базы
Норма

База открывается у всех пользователей без ошибок

Тревожный признак

Ошибка сохраняется у всех — проблема в данных, переходите к ТиИ или chdbfl

Работа с объектами
Норма

Документы, справочники и отчёты открываются и формируются

Тревожный признак

Ошибка возникает на конкретном объекте — повреждена отдельная таблица

Журнал тестирования
Норма

Протокол ТиИ без ошибок после повторного прохода

Тревожный признак

Ошибки остаются после исправления — нужна резервная копия

Повторяемость
Норма

Ошибка не возвращается в течение нескольких дней работы

Тревожный признак

Ошибка возникает регулярно — проверяйте диск, сеть и источник питания

Типичные ошибки при устранении

Типичные ошибки
01
Запуск тестирования и исправления без резервной копии — при неудаче данные теряются безвозвратно
02
Удаление кэша на сервере, когда проблема у одного клиента — лишняя работа без эффекта
03
Работа файловой базы по сети через общую папку — главная причина повторных повреждений
04
Включение сразу всех режимов ТиИ с исправлением — можно потерять объекты с битыми ссылками
05
Игнорирование проверки диска: если повреждения вызваны сбоями HDD или SSD, ошибка будет возвращаться, пока не заменить носитель

Отдельно предостережение про «народные» советы из интернета: не стоит удалять отдельные файлы внутри каталога базы (например, служебные файлы рядом с 1Cv8.1CD) без понимания их роли — часть из них содержит данные, и их удаление приведёт к потере информации. Действуйте только проверенными методами: кэш, тестирование, chdbfl, восстановление из копии.

Итог

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

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

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

Можно ли устранить ошибку формата потока без потери данных?

Да, в большинстве случаев. Очистка кэша вообще не затрагивает данные. Тестирование и исправление и chdbfl изменяют файл базы, но при удачном исходе данные сохраняются полностью. Риск потерь появляется только при режимах, удаляющих объекты с битыми ссылками, или при восстановлении из старой резервной копии — тогда пропадут данные, введённые после её создания.

Ошибка возникает только у одного пользователя. Что делать?

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

Где находится утилита chdbfl.exe?

В каталоге установки платформы 1С: обычно это C:\Program Files\1cv8\<версия платформы>\bin\chdbfl.exe (или Program Files (x86) для 32-разрядной версии). Утилита поставляется вместе с платформой, отдельно скачивать её не нужно. Запускайте версию chdbfl из той же линейки платформы, на которой работает база.

База серверная (SQL), а не файловая. Поможет ли chdbfl?

Нет, chdbfl работает только с файловыми базами (1Cv8.1CD). Для клиент-серверных баз используйте очистку кэша, «Тестирование и исправление» через конфигуратор, а также штатные средства СУБД: проверку целостности базы в MS SQL Server (DBCC CHECKDB) или инструменты PostgreSQL. Параллельно изучите журналы СУБД на предмет ошибок дисковой подсистемы.

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

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

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

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