Администрирование · 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С на компьютере пользователя
- 2Нажмите Win+R, введите %APPDATA%\1C\1cv8 и нажмите Enter
- 3Удалите папки с длинными именами (идентификаторы баз)
- 4Повторите для %LOCALAPPDATA%\1C\1cv8
- 5Запустите 1С и войдите в базу — кэш создастся заново
- 6Проверьте, исчезла ли ошибка формата потока
Шаг 2. Тестирование и исправление в конфигураторе
Если очистка кэша не помогла и база хотя бы открывается в конфигураторе, следующий шаг — штатное тестирование и исправление. Откройте конфигуратор (монопольно, все пользователи должны выйти), перейдите в меню «Администрирование» → «Тестирование и исправление».
Для первого прохода рекомендуется включить проверки «Реиндексация таблиц информационной базы» и «Проверка логической целостности информационной базы». Режим «Проверка ссылочной целостности» включайте осознанно: при обнаружении битых ссылок он может удалять объекты, поэтому предварительно выберите вариант «Не изменять» и сначала просто изучите отчёт.
Процесс на больших базах занимает от десятков минут до нескольких часов. По завершении изучите протокол: там будет указано, какие ошибки найдены и исправлены. После тестирования перезапустите базу и проверьте работу.
Шаг 3. Утилита chdbfl.exe для файловой базы
Когда база не открывается даже в конфигураторе и тестирование запустить нельзя, на помощь приходит утилита chdbfl.exe. Она находится в каталоге установки платформы, например: C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe. Утилита работает напрямую с файлом 1Cv8.1CD и не требует запуска платформы.
Запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD, отметьте флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить». Утилита проверит физическую структуру таблиц и попытается восстановить повреждённые участки. Работа может занять продолжительное время на больших базах.
После завершения проверьте базу: откройте её в конфигураторе, а затем желательно дополнительно прогнать «Тестирование и исправление» — chdbfl восстанавливает физическую целостность, но логические ошибки в данных могут остаться.
C:\Program Files\1cv8\8.3.22.1750\bin\chdbfl.exeШаг 4. Восстановление из резервной копии и выгрузка/загрузка
Если ни кэш, ни тестирование, ни chdbfl не решили проблему, остаются два варианта. Первый — восстановить базу из последней рабочей резервной копии. Оцените потери: сколько данных введено с момента создания копии. Иногда выгоднее восстановить копию и вручную повторно ввести документы за день-два, чем долго бороться с повреждённым файлом.
Второй вариант — выгрузка базы в файл .dt и загрузка в новую пустую базу. Выгрузка/загрузка пересоздаёт структуру файла данных, и часть физических повреждений при этом «отсекается». Но способ работает, только если база ещё открывается в конфигураторе и выгрузка проходит до конца без ошибок. Если выгрузка обрывается — повреждение слишком глубокое, и путь один: резервная копия.
Для клиент-серверных баз дополнительно проверьте журналы СУБД: ошибки на уровне PostgreSQL или MS SQL могут указывать на проблемы с дисковой подсистемой сервера, и тогда сначала нужно устранять аппаратную причину.
Как выбрать действие
Как проверить результат и не допустить повторения
После любого восстановления проверьте базу комплексно: откройте журналы документов, справочники, сформируйте несколько стандартных отчётов (например, оборотно-сальдовую ведомость в бухгалтерской конфигурации). Ошибка может проявляться не при запуске, а при обращении к конкретной повреждённой таблице, поэтому поверхностной проверки «база открылась» недостаточно.
Чтобы ошибка формата потока не возникала снова, устраните типовые причины: не размещайте файловую базу в сетевой папке для одновременной работы нескольких пользователей (это прямой путь к повреждениям), поставьте источник бесперебойного питания на компьютер с базой, добавьте каталоги 1С в исключения антивируса, настройте регулярное автоматическое резервное копирование.
Как проверить результат
База открывается у всех пользователей без ошибок
Ошибка сохраняется у всех — проблема в данных, переходите к ТиИ или chdbfl
Документы, справочники и отчёты открываются и формируются
Ошибка возникает на конкретном объекте — повреждена отдельная таблица
Протокол ТиИ без ошибок после повторного прохода
Ошибки остаются после исправления — нужна резервная копия
Ошибка не возвращается в течение нескольких дней работы
Ошибка возникает регулярно — проверяйте диск, сеть и источник питания
Типичные ошибки при устранении
Отдельно предостережение про «народные» советы из интернета: не стоит удалять отдельные файлы внутри каталога базы (например, служебные файлы рядом с 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С в исключения антивируса, следите за здоровьем диска и настройте автоматическое ежедневное резервное копирование. Именно копия — главная страховка при любых повреждениях.