Загрузка .dt или запуск базы обрывается на «Ошибка формата потока»: разбор по шагам

· 11 мин

Содержание

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

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

Откуда берётся ошибка формата потока в 1С

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

Типичные источники повреждения:

  • 📦 Недокачанный или обрезанный файл .dt. Передача через почту, мессенджер, облако или обрыв сети при копировании.
  • 🔢 Разные версии платформы. Выгрузка сделана на более новой платформе, а загружают на более старой.
  • 🗂️ Испорченный кэш на компьютере пользователя. Остаётся после аварийного закрытия 1С, отключения питания или смены версии платформы.
  • 💾 Повреждён сам файл базы 1Cv8.1CD. Ошибки диска, сбой сетевой папки, одновременная работа с базой через нестабильный общий ресурс.
  • ⚙️ Битые служебные данные внутри базы: настройки пользователей, сохранённые варианты отчётов, данные хранилища значений.
  • 🧩 Повреждённый файл обновления .cf или .cfu, внешняя обработка или файл хранилища конфигурации.

Где именно появилась ошибка, подсказывает, куда смотреть:

Когда возникаетНаиболее вероятный источникС чего начать
При Загрузить информационную базу из .dtФайл выгрузки или версия платформыСверка файла, версия платформы
Сразу при запуске базыКэш пользователя или файл 1Cv8.1CDОчистка кэша, затем проверка базы
При открытии конкретного отчёта или формыСохранённые настройки этого объектаСброс настроек пользователя
При обновлении конфигурацииФайл .cf/.cfuПовторное скачивание файла
При работе с хранилищемЛокальный кэш хранилища или файл хранилищаПереподключение к хранилищу
Диагностика: выберите симптом

Первая диагностика: проверяем файл выгрузки и платформу

Начинайте с файла, а не с базы. Это занимает пять минут и ничего не ломает.

Сравните размер и контрольную сумму

  1. На компьютере, где делали выгрузку, откройте свойства файла .dt и запишите размер в байтах, а не в мегабайтах.
  2. Посчитайте хеш файла. В командной строке Windows:
certutil -hashfile D:\Backup\buh.dt SHA256

То же в PowerShell:

Get-FileHash D:\Backup\buh.dt -Algorithm SHA256
  1. Сделайте то же на компьютере, куда файл попал.
  2. Если размер или хеш различаются — файл повреждён при передаче. Никакие настройки 1С тут не помогут, нужна новая копия.

Большие выгрузки надёжнее передавать архивом с контролем целостности (7-Zip, RAR). Архиватор сам сообщит об ошибке CRC при распаковке, и вы не потратите час на загрузку битого файла.

Сверьте версии платформы

Номер версии виден в Конфигураторе: Справка → О программе. Сравните его на исходном и целевом компьютере.

Правило простое: загружайте .dt на платформе с номером не ниже той, на которой делали выгрузку. Если выгрузку сделали на 8.3.24, а у вас стоит 8.3.18, установите новую версию платформы и запускайте Конфигуратор именно ею. В окне запуска в свойствах базы, на последнем шаге, можно указать конкретную версию для этой базы.

Проверьте место на диске и временную папку

При загрузке платформа создаёт временные файлы. Если на системном диске или в каталоге %TEMP% мало места, загрузка может оборваться с ошибкой чтения. Освободите на диске объём не меньше двойного размера .dt и повторите.

Как исправить ошибку при загрузке базы из файла выгрузки

Если файл целый и версия подходит, а ошибка остаётся, переходите к способам ниже по порядку.

Способ 1. Загрузка в новую пустую базу

Не загружайте выгрузку поверх рабочей базы, пока не убедились, что файл читается.

  1. В окне запуска нажмите Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации.
  2. Укажите новый пустой каталог на локальном диске, не в сетевой папке.
  3. Откройте новую базу в Конфигураторе.
  4. Выполните Администрирование → Загрузить информационную базу и выберите файл.

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

Способ 2. Загрузка из командной строки

Пакетный режим исключает влияние интерфейса и кэша пользователя. Подставьте свою версию платформы и пути:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\NewBuh" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log"

После завершения откройте restore.log. В нём бывает больше подробностей, чем в окне с ошибкой.

Для клиент-серверной базы вместо /F используется /S "сервер\имябазы", плюс /N и /P для пользователя и пароля.

Способ 3. Новая выгрузка с исходной базы

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

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

Способ 4. Резервная копия файла базы

Для файловой базы восстановление можно сделать без .dt: возьмите из резервной копии каталог базы с файлом 1Cv8.1CD. Положите его в новую папку и добавьте в список баз как существующую. Потеряются данные, внесённые после даты копии, поэтому этот способ последний.

СпособКогда подходитРиски
Новая пустая базаФайл целый, старая база под подозрениемНет
Командная строкаНужно исключить интерфейс и кэш, получить логНет
Новая выгрузкаИсходная база живаНужен монопольный доступ к исходной базе
Каталог из резервной копииВыгрузку получить нельзяПотеря данных после даты копии

Ошибка формата потока после обновления платформы или конфигурации

После установки новой версии платформы

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

  1. Закройте все окна 1С на компьютере.
  2. Откройте папки %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 (адрес можно вставить в строку проводника).
  3. Внутри — папки с именами вида 8f2a91c4-... (GUID). Каждая относится к одной базе. Если не знаете, какая нужна, удалите все папки с такими именами.
  4. Запустите базу снова. Первый запуск будет дольше обычного: кэш строится заново.

Файлы ibases.v8i и папки без GUID в имени не трогайте: там список баз и общие настройки.

Альтернатива без ручного удаления — запуск с параметром /ClearCache. Его можно дописать в свойствах базы в окне запуска, в поле дополнительных параметров запуска, выполнить один вход и убрать.

При обновлении конфигурации

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

Когда ошибка у всех пользователей клиент-серверной базы

Если кэш на компьютерах уже чистили, а ошибка у всех, возможен испорченный кэш сервера 1С. Его очищают удалением папок snccntx* в каталоге кластера (обычно srvinfo\reg_1541\<GUID базы>) при остановленной службе агента сервера.

Остановка службы сервера 1С обрывает сеансы всех пользователей всех баз этого сервера. Делайте это вне рабочего времени и предупредите людей заранее. Остальные файлы в каталоге srvinfo не удаляйте.

Хранилище конфигурации, обмены и сохранённые данные

Хранилище конфигурации

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

  • 🔌 Переподключитесь. Конфигурация → Хранилище конфигурации → Отключиться от хранилища, затем подключитесь снова. Локальная копия перечитается.
  • 🧹 Очистите кэш пользователя так же, как после обновления платформы: локальная информация о хранилище тоже лежит в профиле.
  • 🗄️ Проверьте сам файл хранилища. Хранилище тоже хранится в файле .1CD. Скопируйте его и проверьте копию утилитой chdbfl.exe (о ней ниже). Если файл повреждён, восстановите его из резервной копии каталога хранилища.

Отключение от хранилища сбрасывает связь с захваченными объектами. Незафиксированные изменения сохраните заранее: выгрузите конфигурацию в файл .cf.

Обмены и внешние файлы

В обменах данными ошибка формата потока обычно связана не с XML-сообщением, а с двоичными данными внутри него — значениями типа ХранилищеЗначения, картинками, присоединёнными файлами. Если ошибка возникает на конкретном сообщении, найдите по протоколу обмена объект, на котором загрузка остановилась, и проверьте его в базе-источнике.

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

Сохранённые настройки пользователя

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

В конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) это делается в разделе Администрирование → Настройки пользователей и прав → Настройки пользователей: выберите пользователя и очистите настройки отчётов или внешнего вида.

Тестирование и исправление базы

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

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

Через Конфигуратор

  1. Убедитесь, что в базе никто не работает : для этой операции нужен монопольный доступ.
  2. Откройте Администрирование → Тестирование и исправление.
  3. Отметьте Проверка логической целостности информационной базы и Проверка ссылочной целостности информационной базы.
  4. Выберите режим Тестирование и исправление.
  5. Для битых ссылок безопаснее выбрать Создавать объекты, а не Удалять ссылки: так вы потом увидите, что было повреждено.
  6. Нажмите Выполнить и дождитесь окончания. Для базы в несколько гигабайт это может занять час и больше.

Утилитой chdbfl.exe

Если база не открывается даже в Конфигураторе, используйте утилиту chdbfl.exe из папки bin установленной платформы, например C:\Program Files\1cv8\8.3.24.1548\bin\chdbfl.exe.

  1. Закройте все сеансы базы.
  2. Запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD копии базы.
  3. Сначала запустите проверку без галки исправления. Посмотрите, сколько ошибок нашлось.
  4. Если ошибки есть — отметьте исправление обнаруженных ошибок и запустите ещё раз.
  5. Откройте базу в Конфигураторе и выполните тестирование из предыдущего блока.

Утилита работает только с файловыми базами. Для клиент-серверной базы проверку структуры выполняют средствами СУБД, а логику 1С — тем же тестированием в Конфигураторе.

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

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

  • 🔋 Источник бесперебойного питания на компьютере или сервере, где лежит файловая база. Отключение питания во время записи — классический путь к битому 1Cv8.1CD.
  • 🌐 Файловая база в сети — только на стабильном ресурсе. Wi-Fi и VPN с обрывами для работы нескольких пользователей с файловой базой не подходят. При 5 и более одновременных пользователях стоит подумать о клиент-серверном варианте.
  • 🛡️ Исключения в антивирусе для каталога баз и папок кэша. Сканирование файла базы в момент записи может привести к повреждению.
  • 🗓️ Регулярные выгрузки .dt по расписанию, через пакетный режим с параметром /DumpIB, с хранением нескольких последних копий. Одна копия, перезаписываемая каждую ночь, не спасёт, если база испортилась два дня назад.
  • 🔁 Проверка копий. Раз в месяц загружайте свежую выгрузку в тестовую базу. Копия, которую ни разу не открывали, — это надежда, а не копия.
  • 🔢 Одинаковая версия платформы у всех пользователей одной базы и на сервере.
  • 🧮 Хеш рядом с файлом. При каждой передаче .dt между людьми или компьютерами передавайте и контрольную сумму.

Пример команды для ночной выгрузки (файловая база, пользователь с правами администратора):

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpIB "E:\Backup\buh_%date:~-4%%date:~3,2%%date:~0,2%.dt" /Out "E:\Backup\dump.log"

Пароль в bat-файле храните на компьютере с ограниченным доступом. Перед выгрузкой по расписанию все пользователи должны выйти из базы.

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

Можно ли открыть .dt архиватором и вытащить данные?
Нет. Файл выгрузки читает только платформа 1С. Если он повреждён, данные из него штатными средствами не извлечь — нужна другая копия.
Ошибка появилась после копирования базы на флешку. Что не так?
Флешка в FAT32 не принимает файлы больше 4 ГБ, а копирование при извлечении без безопасного отключения может оставить недописанный файл. Сверьте размер и хеш, при расхождении скопируйте заново.
Поможет ли переустановка платформы?
Редко. Повреждается файл или кэш, а не сама программа. Переустановка нужна, только если вы ставите другую версию, чтобы подогнать её под версию выгрузки.
Тестирование и исправление удалит мои документы?
При режиме Создавать объекты программа не удаляет данные, а создаёт заглушки для битых ссылок. Документы с неустранимыми повреждениями могут потеряться, поэтому копия каталога перед запуском обязательна.
Чем отличается ошибка при загрузке от ошибки при запуске?
При загрузке виноват файл выгрузки или версия платформы. При запуске — кэш пользователя или сам файл базы. От этого зависит, с чего начинать.