Почему 1С 8.3 пишет «Ошибка формата потока» и как вернуть базу в строй
Содержание
Ошибка потока данных в 1С 8.3 (на экране обычно Ошибка формата потока) почти всегда лечится очисткой локального кэша: закройте 1С, удалите папки с GUID-именами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 и запустите базу заново. Если не помогло — сбросьте пользовательские настройки, затем проверьте версии платформы на клиенте и сервере, сеть и антивирус.
Частое заблуждение — считать, что база «сломалась» и её надо восстанавливать из копии. Чаще повреждена не база, а то, что 1С кэширует у себя на компьютере или на сервере. Платформа читает испорченный двоичный файл, не может разобрать его структуру и сообщает, что поток данных имеет неверный формат.
С чего начать: где именно ломается поток
Прежде чем что-то чистить, определите, у кого и когда появляется ошибка. От этого зависит, куда смотреть.
- 👤 У одного пользователя на одном ПК — почти наверняка локальный кэш или его настройки.
- 👥 У одного пользователя на любом ПК — испорчены его настройки, хранящиеся в самой базе.
- 🏢 У всех пользователей сразу — сервер 1С, кэш кластера, повреждение конфигурации или базы.
- 📄 Только при открытии одного отчёта или обработки — сохранённые настройки этого отчёта или внешний файл
.erf/.epf. - 🌐 Периодически, «через раз» — сеть, VPN, антивирус, проверяющий трафик.
- 💾 При загрузке
.dtили открытии файловой базы — повреждённый файл выгрузки или1Cv8.1CD.
Запишите точный текст сообщения целиком, включая строки ниже первой. Нажмите в окне ошибки «Подробно» — там бывает имя модуля или формы, на которой всё упало. Это сильно сокращает поиск.
Сбой соединения с сервером: версии, порты и сеть
Если база клиент-серверная, первым делом сравните версии. Клиент и сервер 1С должны быть одной и той же сборки до последней цифры, например оба 8.3.24.1691. Версию клиента покажет окно Справка → О программе, версию сервера — консоль администрирования или имя каталога в C:\Program Files\1cv8\.
После обновления сервера часто остаётся пара ПК со старой платформой. Они подключаются, получают от сервера данные нового формата и не могут их прочитать.
Как клиент находит сервер
Цепочка подключения такая:
- Клиент обращается к агенту сервера (
ragent) на порт1540. - Агент передаёт его менеджеру кластера (
rmngr) на порт1541. - Менеджер выделяет рабочий процесс (
rphost) из диапазона портов, по умолчанию1560–1591. Диапазон задаётся в свойствах рабочего сервера.
Если брандмауэр или сетевое оборудование режет соединение посередине передачи, клиент получает обрывок данных. Это тоже даёт ошибку формата потока или разрыв соединения.
Проверьте доступность портов с проблемного ПК:
Test-NetConnection srv1c -Port 1540
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560
Все три должны вернуть TcpTestSucceeded : True. Если нет — откройте порты на сервере и на промежуточном оборудовании.
Нестабильный канал
Через VPN и мобильный интернет пакеты теряются и приходят с задержками. Тонкий клиент к серверу 1С на таких каналах работает плохо. Для удалённых сотрудников надёжнее веб-клиент через опубликованную базу или работа через терминальный сервер .
Параметры кластера и агента сервера 1С
Когда ошибка у всех, причина часто в сеансовых данных кластера. Сервер хранит их на диске, и при аварийной остановке службы или нехватке места файлы портятся.
Очистка сеансовых данных сервера
Остановка службы оборвёт сеансы всех пользователей сервера, несохранённые документы будут потеряны. Делайте это вечером или в выходной, предупредив людей заранее.
- Остановите службу
1C:Enterprise 8.3 Server Agent(в 64-битной версии в названии есть(x86-64)). - Откройте каталог кластера. По умолчанию это
C:\Program Files\1cv8\srvinfo\reg_1541\. - Найдите папки с именами вида
snccntxи набором символов после. - Перенесите их в отдельную папку (не удаляйте сразу — так проще откатиться).
- Запустите службу и подключитесь к базе.
Служба при старте создаст эти каталоги заново. Сами базы, их список в кластере и настройки администраторов при этом не трогаются: они лежат в других файлах.
Не удаляйте файлы 1CV8Clst.lst и 1CV8Reg.lst — в них список баз и настройки кластера. Без них кластер придётся регистрировать заново.
Перезапуск рабочих процессов
Рабочий процесс, который долго работает и накопил много памяти, тоже может отдавать испорченные данные. В свойствах рабочего сервера в консоли администрирования есть параметры перезапуска процессов по времени и по объёму памяти. Включите плановый перезапуск, например раз в сутки ночью, и задайте разумный лимит памяти.
💡 Если параметр перезапуска включён, сеансы переводятся на новый процесс без разрыва — это безопаснее ручного завершения rphost в диспетчере задач.
Реестр Windows и права доступа к каталогам 1С
Служба сервера 1С берёт параметры запуска из реестра. Неверный путь или порт там приводит к тому, что агент стартует не с тем каталогом кластера или не с тем диапазоном.
Где лежат параметры службы
Ключ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\, в нём раздел с именем службы агента. Нужный параметр — ImagePath. Нормальное значение выглядит так:
"C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Что проверить:
- 🔢 версия в пути совпадает с установленной и с версией клиентов;
- 📁 путь после
-dведёт на существующий каталогsrvinfo; - 🔌 порты не заняты другой программой (в том числе второй установленной службой 1С).
Перед правкой реестра экспортируйте ключ службы: правый клик → «Экспортировать». Неверное значение ImagePath не даст службе запуститься.
После изменения перезапустите службу в нерабочее время.
Права учётной записи службы
Служба обычно работает от пользователя USR1CV8. Ему нужен полный доступ:
- к каталогу
srvinfoи всем вложенным папкам; - к каталогу временных файлов этого пользователя;
- к папке, куда сервер пишет технологический журнал.
Если прав нет, сервер не может дописать файл кэша до конца. В следующий раз он читает недописанный файл — и получает ошибку потока.
На клиенте тот же принцип: у пользователя Windows должны быть права на запись в %APPDATA%\1C и %LOCALAPPDATA%\1C. Проблема появляется после переноса профиля или когда папки создавал администратор под своей учётной записью.
Очистка кэша и временных файлов 1С на компьютере пользователя
Это главный способ, и начинать лучше с него. Кэш хранит копию конфигурации, метаданные форм и настройки. При обрыве связи, сбое питания или переполнении диска он записывается не полностью.
Способ 1. Параметр /ClearCache
Самый мягкий вариант — он не требует лезть в папки.
- В окне запуска 1С выберите базу и нажмите «Изменить».
- Пройдите до последней страницы мастера.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Нажмите «Готово» и запустите базу.
После успешного входа уберите параметр, иначе кэш будет сбрасываться при каждом запуске и база начнёт открываться медленнее.
Способ 2. Ручное удаление папок кэша
- Закройте все окна 1С, проверьте в диспетчере задач, что нет процессов
1cv8.exeи1cv8c.exe. - Нажмите
Win+R, введите%APPDATA%\1C\1cv8и нажмите Enter. - Удалите папки с длинными именами из букв и цифр (GUID), например
a3c1f2e0-.... - Повторите для
%LOCALAPPDATA%\1C\1cv8. - Запустите базу.
Не трогайте файлы ibases.v8i и 1cestart.cfg в %APPDATA%\1C\1CEStart — там список баз. Если удалить их, базы пропадут из окна запуска.
Для автоматизации, когда кэш надо сбросить на нескольких ПК, подойдёт простой bat-файл:
@echo off
taskkill /im 1cv8c.exe /f
taskkill /im 1cv8.exe /f
for /d %%i in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%i"
for /d %%i in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%i"
echo Кэш 1С очищен
pause
Команда taskkill закрывает 1С без сохранения. Запускайте файл, только когда пользователь закончил работу.
Способ 3. Сброс настроек пользователя в базе
Если ошибка «ходит» за пользователем по компьютерам, испорчены его настройки внутри базы: варианты отчётов, состав форм, панели. В БП 3.0, ЗУП 3.1 и УТ 11 это делается в Администрирование → Настройки пользователей и прав → Настройки пользователей. Выберите пользователя и очистите настройки — целиком или только отчётов.
Если ошибка возникает на одном отчёте, сначала попробуйте в нём сменить вариант или выбрать «Стандартные настройки». Это быстрее и не задевает остальное.
Файловая база: временные файлы рядом с 1Cv8.1CD
В файловой базе испортиться может и сама база, и её служебные файлы. Если ошибка у всех, кто открывает эту базу:
- Убедитесь, что все вышли из базы.
- Сделайте копию папки с базой целиком.
- Запустите Конфигуратор и выполните
Администрирование → Тестирование и исправлениес галочками проверки логической и ссылочной целостности.
Для серьёзно повреждённого файла 1Cv8.1CD есть утилита chdbfl.exe в каталоге bin платформы. Запускайте её только на копии базы.
Логи сервера и клиента: как найти точную причину
Когда простые шаги не помогли, нужны факты. Их дают три журнала.
| Источник | Где смотреть | Что ищем |
|---|---|---|
| Журнал регистрации | Администрирование → Обслуживание → Журнал регистрации или в Конфигураторе | события с уровнем «Ошибка» в момент сбоя, имя пользователя и компьютера |
| Технологический журнал | каталог, указанный в logcfg.xml | события EXCP с текстом исключения |
| Журнал Windows | eventvwr.msc → «Приложение» | падения процессов rphost, rmngr, 1cv8c |
Включение технологического журнала
Создайте файл logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\. Минимальная настройка для поиска исключений:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_logs" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history задаёт, сколько часов хранить логи. Платформа подхватывает файл сама, перезапуск не нужен. У учётной записи службы должны быть права на запись в каталог логов.
Не оставляйте журнал включённым надолго: при большой нагрузке он быстро занимает десятки гигабайт. Соберите данные за день-два и удалите или переименуйте logcfg.xml.
В записях EXCP ищите строку с текстом ошибки и смотрите, какой процесс её выдал и с каким клиентом он работал. Если исключение возникает у разных клиентов при обращении к одному объекту, проблема в данных базы, а не в кэше.
Антивирусы, драйверы и другие редкие причины
Если ошибка возвращается после очистки кэша, ищите того, кто вмешивается в файлы или трафик.
Антивирус
Антивирус может блокировать запись файла кэша или проверять сетевой трафик между клиентом и сервером. В обоих случаях 1С получает неполные данные.
Добавьте в исключения антивируса:
- каталог установки платформы
C:\Program Files\1cv8\; - каталог кластера
srvinfoна сервере; - папки
%APPDATA%\1Cи%LOCALAPPDATA%\1Cна клиентах; - каталог файловой базы и сетевую папку, где она лежит;
- процессы
1cv8.exe,1cv8c.exe,ragent.exe,rmngr.exe,rphost.exe.
Проверить гипотезу просто: на время отключите веб-защиту и проверку сетевого трафика на одном ПК. Если ошибка исчезла — дело в антивирусе.
Сетевые драйверы и оборудование
На отдельных компьютерах причиной бывают сетевая карта с устаревшим драйвером, режим энергосбережения адаптера или аппаратные функции разгрузки. Обновите драйвер с сайта производителя карты. В свойствах адаптера отключите разрешение на отключение устройства для экономии энергии.
Файловая база в сетевой папке
Если база лежит на сетевом ресурсе, ошибки формата потока возникают при обрывах SMB-соединения: ноутбук уснул, Wi-Fi переключился на другую точку. Для работы нескольких человек по сети файловую базу лучше перевести на сервер 1С или опубликовать на веб-сервере.
Внешние отчёты и выгрузки
Внешний отчёт, сохранённый в Конфигураторе более новой платформы, может не открыться на старой. Выгрузка .dt, прерванная при копировании, тоже даёт ошибку при загрузке. Сравните размер файла с исходным и при сомнении сделайте выгрузку заново.
Частые ошибки при исправлении
- ❌ Сразу восстанавливать базу из копии. Теряются данные за день, а причина была в кэше на одном ПК.
- ❌ Удалять весь каталог
srvinfo. Вместе с кэшем пропадает список баз и настройки кластера. - ❌ Чистить кэш при открытой 1С. Часть файлов занята, удаление проходит не полностью, ошибка остаётся.
- ❌ Оставлять
/ClearCacheв параметрах навсегда. Каждый запуск идёт с нуля, база открывается заметно дольше. - ❌ Обновлять сервер без обновления клиентов. Получаете ошибку у всех, кто не успел поставить новую платформу.