Ошибка формата потока. Решение с описанием проблемы

28.09.26

База данных - Администрирование СУБД

Ошибка формата потока. Страшная, но симпатишная своей загадочностью. 1С ничего толком не объясняет и не подсказывает. Ниже решение, которое мне помогает решать данную проблему почти на 100%. Всё очень просто. Данная ошибка возникает (на моей практике) только у клиент серверного варианта. просто потому что с другим форматом не работаю. Рекомендация: Старайтесь избегать динамического обновления, особенно если у вас возможны кратковременные проблемы с 220 и LAN. Далее описание лечения:

Специально написал методику устранения ошибки в виде программы. Думаю, так проще читать самую суть, не отвлекаясь на лирику и переживания.

// Config - основная конфигурация информационной базы. 
// Эта конфигурация соответствует реальной структуре данных и используется 1С:Предприятием 8.0 в режиме Предприятия.
// ConfigSave - конфигурация, редактируемая Конфигуратором. 
// Конфигурация из ConfigSave переписывается в Config при выполнении "Обновления конфигурации базы данных" в Конфигураторе, 
// а наоборот - при выполнении в Конфигураторе операции "Конфигурация - Конфигурация базы данных - Вернуться к конфигурации БД".
Если ОшибкаФорматаПотокаПриЗапускеПредприятия() Тогда
	СделатьАрхивПоврежденнойБазы(Средствами1С = Истина, СредствамиСУБД = Ложь);
	СделатьАрхивПоврежденнойБазы(Средствами1С = Ложь, СредствамиСУБД = Истина);
	Если СУБД = "MS SQL" Тогда
		// Необходимо развернуть ближайший бэкап базы на том же сервере что и поврежденная. 
		// Со времени публикации статьи поля таблицы могут измениться, поэтому посмотрите состав полей и скорректируйте скрипт
		// Если перевести на русский язык: Скрипт удаляет сбойную таблицу config поврежденной базы и затем создает копию таблицы 
		// из рабочей базы в поврежденной.
		GO
		DROP TABLE [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[config]
		GO
		SET ANSI_NULLS ON
		GO
		SET QUOTED_IDENTIFIER ON
		GO
		CREATE TABLE [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[config](
		[FileName] [nvarchar](128) NOT NULL,
		[Creation] [datetime] NOT NULL,
		[Modified] [datetime] NOT NULL,
		[Attributes] [smallint] NOT NULL,
		[DataSize] [int] NOT NULL,
		[BinaryData] [image] NOT NULL,
		PRIMARY KEY CLUSTERED
		(
		[FileName] ASC
		)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
		) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
		GO
		INSERT INTO [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[config]
		SELECT * FROM [БЭКАПНАЯ_БАЗА].[dbo].[config]
		GO 	
	ИначеЕсли СУБД = "PostgreSQL" Тогда
		copy config to '/home/user/config_err.txt в поврежденной базе
		copy config to '/home/user/config_backup.txt в базе поднятой из последнего бэкапа
		delete from config в поврежденной базе
		copy config from '/home/user/config_backup.txt в поврежденной базе
	КонецЕсли;
ИначеЕсли ОшибкаФорматаПотокаПриЗапускеКонфигуратора() Тогда
	// Ошибка возникает при прерванном сохранении конфигурации в БД.
	СделатьАрхивПоврежденнойБазы(Средствами1С = Ложь, СредствамиСУБД = Истина);
	// Полностью очищаем таблицу
	Если СУБД = "MS SQL" Тогда
		GO
		DELETE FROM [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[configsave]
	ИначеЕсли СУБД = "PostgreSQL" Тогда
		// Сохраним сбойную таблицу
		copy configsave to '/home/user/configsave_err.txt 
		// Очистим
		delete from configsave	
	КонецЕсли;	
КонецЕсли;

Используемые ресурсы:

Информация по таблицам: https://helpf.pro/faq/view/673.htm

Информация по скриптам: //infostart.ru/public/116123/

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

Если есть вопросы, то в в комментарии, пожалуйста. По возможности отвечу.

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

Вступайте в нашу телеграмм-группу Инфостарт

Ошибка формата потока config configsave не запускается конфигуратор в режиме предприятия 1С

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бухгалтерский учет Бесплатно (free)

После миграции с MS SQL на PostgreSQL закрытие месяца в 1С:ERP стало идти 8 часов вместо 12 минут. Рассказываем, как мы нашли причину в оценке Hash Join, которую планировщик завышал в миллионы раз, и как исправили её так, что проблемный запрос теперь выполняется за 18 секунд вместо часа.

19.10.2026    950    Tantor    0    

10

Администрирование СУБД HighLoad оптимизация Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Большинство материалов о компрессии в PostgreSQL отвечают на вопрос «во сколько раз удалось уменьшить базу». Мы предлагаем посмотреть на проблему с другой стороны — какой ценой достигается эта экономия? В статье разбираем архитектурные компромиссы различных подходов к компрессии страниц, объясняем, почему при разработке CSM в Tantor Postgres отказались от погони за максимальным коэффициентом сжатия, и показываем результаты нагрузочных испытаний на реальных базах 1С.

01.10.2026    1441    Tantor    6    

17

DevOps и автоматизация разработки Администрирование СУБД Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

В корпоративных инсталляциях «1С:Предприятие 8.3» под управлением PostgreSQL всё чаще проявляются архитектурные пределы масштабирования: рост числа пользователей, обязательная маркировка, плотный поток API-интеграций и высокая стоимость простоя. Вводная часть цикла разбирает ключевые факторы современной эксплуатационной нагрузки и формирует инженерную методологию эволюционной модернизации без остановки продуктивного контура. Материал основан на практическом кейсе «Торговый контур» и показывает, как определить целевые метрики (p95, MTTR, APDEX), выстроить наблюдаемость, стабилизировать работу кластера и подготовить инфраструктуру к дальнейшему масштабированию. Публикация задаёт фундамент для последующих частей, посвящённых телеметрии, оптимизации PostgreSQL, CI/CD и архитектурному росту.

1 стартмани

10.09.2026    1519    Ninel_S    0    

6

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

В рамках 18 релиза СУБД Tantor Postgres мы рассказывали об оптимизациях, которые помогают планировщику сделать более точный выбор между Nested Loop и Hash Join. В следующем релизе у нас планируются оптимизации, которые позволят ускорить выполнение как Nested Loop, так и Hash Join. Сегодня мы расскажем об одном из таких методов - фильтре Блума.

31.08.2026    6116    Tantor    3    

18

Администрирование СУБД Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Мы подготовили для сообщества Infostart.ru практическое занятие, в котором каждый желающий сможет: научиться собирать реальные данные о процессах кластера 1С; выявлять «перестарков» — процессы старше периода и без соединений; выполнять безопасный перезапуск (с dry-run и подтверждением); настраивать автоматическую проверку через systemd на Linux; отправлять уведомления (Telegram, почта) при обнаружении проблем; работать с логами, ротацией, профилями кластеров и конфигурацией; развернуть полноценный учебный проект AdminClusterMonitor у себя в тестовой среде.

30.08.2026    1722    Ninel_S    2    

6

Администрирование СУБД Системный администратор 1С:Предприятие 8 Бесплатно (free)

На infostart.ru вышел разбор Ивана Недомолкова «Сервер 1С падает: настройка сбора дампов (logcfg.xml), лимиты памяти и передача дампа в поддержку» - это хорошая инструкция, как ловить и разбирать падение rphost постфактум: logcfg.xml, procdump, анализ дампа. Но там нет ответа на вопрос «а почему кластер вообще прибил процесс сам, ещё до всякого краша». Мы дополняем разбор тремя сводными таблицами лимитов памяти и автомасштабирования кластера - и заодно фиксируем, чем в этой части лицензия ПРОФ урезана относительно КОРП.

12.08.2026    2363    Ninel_S    5    

6

Администрирование СУБД Системный администратор Разработчик Бесплатно (free)

5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.

11.08.2026    3401    jul.dolganova    9    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. jusper 06.09.19 13:14 Сейчас в теме
Полезная статья. Спасибо
2. Aspire1C 878 10.06.20 15:28 Сейчас в теме
Спасибо. Помогло. А то уже думал придется снова все писать, что в хранилище не поместил за пару дней)
3. Rashid80 33 26.06.20 10:25 Сейчас в теме
Для последних версий:

Если СУБД = "MS SQL" Тогда
// Необходимо развернуть ближайший бэкап базы на том же сервере что и поврежденная.
// Со времени публикации статьи поля таблицы могут измениться, поэтому посмотрите состав полей и скорректируйте скрипт
// Если перевести на русский язык: Скрипт удаляет сбойную таблицу config поврежденной базы и затем создает копию таблицы
// из рабочей базы в поврежденной.
GO
DROP TABLE [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[config]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[config](
[FileName] [nvarchar](128) NOT NULL,
[Creation] [datetime] NOT NULL,
[Modified] [datetime] NOT NULL,
[Attributes] [smallint] NOT NULL,
[DataSize] [int] NOT NULL,
[BinaryData] [image] NOT NULL,
[PartNo] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[FileName] ASC,
[PartNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[config]
SELECT * FROM [БЭКАПНАЯ_БАЗА].[dbo].[config]
GO
itline67; juker; Юрий3; +3 – Ответить
4. arvin 01.10.20 10:53 Сейчас в теме
Спасибо. Помогла очистка configsave.
5. John_Dow 15.10.20 13:23 Сейчас в теме
Столкнулся тут хитрой ситуацией.

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

Как итог база работает, в конфигуратор заходит, конфигурацию выгрузить можно, но сохранить любые изменения конфигурации не дает, хоть монопольно хоть динамический вываливается с ошибкой "Нарушена целостность структуры конфигурации".
Реструктуризация и проверка логической целостности не помогало - вываливалось с ошибками.
Загрузка рабочей конфигурации из ночного бакапа тоже не помогала.

Как итог выяснилось что в базе поля от первого обновления остались, таблица добавилась, но в структуре метаданных о них информации нет. ПолучитьСтруктуруХраненияБазыДанных возвращает наличие таблиц и полей, но с пустыми описаниями.


Сравнил что же у нас добавилось

use WorkBase

SEL ECT     sc.TABLE_NAME, sc.COLUMN_NAME, 'Deleted columns' AS EXPR1
FR OM          INFORMATION_SCHEMA.COLUMNS sc
WHERE     (NOT EXISTS
          (SELECT     sc2.TABLE_NAME, sc2.COLUMN_NAME
           FR OM       BackupBase.INFORMATION_SCHEMA.COLUMNS sc2
           WH ERE     sc2.TABLE_NAME = sc.TABLE_NAME AND sc2.COLUMN_NAME = sc.COLUMN_NAME))
ORDER BY LOWER(sc.TABLE_NAME), LOWER(sc.COLUMN_NAME)
Показать


лучше проверить в обе стороны, ну или делать через джойн двух таблиц


Определили какая таблица добавилась и какие поля. Проверили что они пустые.
Удалили эти объекты
   -  убираем реигстр полностью ошибочный
	DR OP   TABLE [WorkBase].[dbo].[_InfoRg36682]
	-- убираем поля из справочника1
	ALT ER   TABLE [WorkBase].[dbo].[_Reference86] DROP COLUMN _Fld36690; 
	-- убираем поля из справочника2
	ALT ER   TABLE [WorkBase].[dbo].[_Reference229] DROP COLUMN _Fld36691; 
	ALT ER   TABLE [WorkBase].[dbo].[_Reference229] DROP COLUMN _Fld36692;  
	ALT ER   TABLE [WorkBase].[dbo].[_Reference229] DROP COLUMN _Fld36693RRef; 

Показать

Далее на всякий случай почистил серверный кэш данной базы (не знаю играло роль или нет но факт есть факт)
И затем описанным в статье способом подменил не только таблицу config, но и таблицы Files и Params. В остальных служебных таблицах разницы в содержимом не было.

После этого конфигурация начала сохраняться. Для проверки были добавлены и удалены тестовые реквизиты и тестовый регистр сведений.

Может кому то поможет.
P.S. Позднее возникло предположение что возможно помогла бы не чистая загрузка конфигурации, а сравнение и объединение с бакапной конфигураций, но проверять не было возможности.
6. websamson 307 20.11.20 05:57 Сейчас в теме
Вылетала ошибка формата потока при печати внешней печатной формы. Сохранил ее на диск, добавил произвольный реквизит, сохранил. Ошибка ушла
7. enzito 08.12.20 09:35 Сейчас в теме
Зачем городить. Делаю в таком порядке. Все действия делаются в sql:

1.DELETE FROM [ИмяБазы].[dbo].[ConfigSave]

Если бага не ушла, разворачиваю РАБОЧУЮ копию. И перехожу к пункту 2

2.
use ИмяБазы
go

truncate table [dbo].[Config]
truncate table [dbo].[ConfigSave]
truncate table [dbo].[DBSchema]
truncate table [dbo].[Params]
--truncate table [dbo].[Files]
go

ins ert into [dbo].[Config] sel ect * from [КопияБазы].[dbo].[Config]
ins ert in to [dbo].[DBSchema] sel ect * fr om [КопияБазы].[dbo].[DBSchema]
ins ert in to [dbo].[Params] sele ct * fr om [КопияБазы].[dbo].[Params]
go
juker; garik79; Nicholas; cleaner_it; Slypower; dammit666; гвость; Sergafan10; +8 – Ответить
8. user681872_kuleshov.av 19.01.21 12:49 Сейчас в теме
(7)
use ИмяБазы
go

truncate table [dbo].[Config]
truncate table [dbo].[ConfigSave]
truncate table [dbo].[DBSchema]
truncate table [dbo].[Params]
--truncate table [dbo].[Files]
go

ins ert into [dbo].[Config] sel ect * from [КопияБазы].[dbo].[Config]
ins ert in to [dbo].[DBSchema] sel ect * fr om [КопияБазы].[dbo].[DBSchema]
ins ert in to [dbo].[Params] sele ct * fr om [КопияБазы].[dbo].[Params]
Показать


Механизм рабочий.
НО, рабочая копия базы имеется со старой версией конфигуратара, а при выполнеии этого запроса версия конфигуратора откатывается назад.
На счёт данных проверяю, всё ли работает должным образом
13. sas95 09.04.22 20:54 Сейчас в теме
При выполнения.

ins ert into [dbo].[Config] sel ect * from [КопияБазы].[dbo].[Config]
ins ert in to [dbo].[DBSchema] sel ect * fr om [КопияБазы].[dbo].[DBSchema]
ins ert in to [dbo].[Params] sel ect * fr om [КопияБазы].[dbo].[Params]

Конфигуратор запускался но сама база уже не запускалась.
А при переносе чисто Config

ins ert in to [dbo].[Config] sel ect * fr om [КопияБазы].[dbo].[Config]

завелась база, так как на тот момент от резерва конфа не сильно была доработана из резерва перенес Config и только после база ожила.
9. nature2002 14 25.01.21 16:00 Сейчас в теме
ИначеЕсли ОшибкаФорматаПотокаПриЗапускеКонфигуратора() Тогда
// Ошибка возникает при прерванном сохранении конфигурации в БД.
СделатьАрхивПоврежденнойБазы(Средствами1С = Ложь, СредствамиСУБД = Истина);
// Полностью очищаем таблицу
Если СУБД = "MS SQL" Тогда
GO
DELETE FROM [ПОВРЕЖДЕННАЯ_БАЗА].[dbo].[configsave]

не помогло. написал что в configsave 0 строк изменено (таблица пустая)
10. hzhz 15 10.02.21 14:48 Сейчас в теме
Есть более простой способ. Просто загрузить файл конфигурации cf предварительно выгрузив его из рабочей конфигурации.
12. buzzzard 51 11.10.21 23:12 Сейчас в теме
(10) Как загрузить CF если конфигуратор не запускается?
11. vl-sher1 44 25.07.21 21:56 Сейчас в теме
Серверная БД, EDT 2021.1.5, платформа 8.3.18.1289. "Ошибка формата потока" после очередного обновления конфы при ее запуске из EDT. Расширений нет, меняли объекты конфы. Помогло
truncate table configsave
После этого поднял EDT и все заработало.
14. juker 255 10.04.22 14:00 Сейчас в теме
(11)Вы динамическое обновление делали?
15. vl-sher1 44 26.05.22 14:55 Сейчас в теме
(14) Увы, уже не помню.
16. ValeriyZ 19 28.09.22 10:10 Сейчас в теме
Стрельнула проблема с потоком на скуль базе. Причем очень странно стрельнула. Все работает, но если очистить кэш - конфигуратор открывается, а конфигурация в нем нет - ошибка формата потока. Помогла такая последовательность действий.
1) В чистой базе восстановил дт из рабочей копии. Заходим в конфигуратор, открываем конфигурацию.
2) Выгружаем конфигурацию.
3) В эту же базу восстановил дт битой текущей базы, конфигурация при этом осталась открытой.
4) Загрузил в нее выгруженную ранее на п.3 конфигурацию.
19. user1424302 21.01.23 13:36 Сейчас в теме
(16)
осстановил дт из рабочей копии. Заходим в конфигуратор, открываем конфигурацию.
2) Выгружаем конфигурацию.
3) В эту же базу восстановил дт


Было так же, чистил кэш, платформу сносил не помогло, зашел под другим user , все работает )
17. Nicholas 951 21.11.22 14:08 Сейчас в теме
(7) Второй способ помог. Не запускался конфигуратор вообще.
18. Nicholas 951 21.11.22 15:17 Сейчас в теме
Мой метод решения.

Не запускался конфигуратор, но пользователи в базе могли работать.

Рабочей резервной копии не оказалось. Поэтому сделал CF ровно того же релиза, что и рабочая база. Развернул пустую базу на том же SQL сервере, загрузил в нее получившийся CF.

Затем на SQL выполнил скрипт как в (7), но только для таблицы Config:

use ИмяБазы

truncate table [dbo].[Config]
truncate table [dbo].[ConfigSave]

ins ert in to [dbo].[Config] sel ect * fr om [ПустаяБаза].[dbo].[Config]
go


Параметры, в этом случае, копировать нельзя, т.к. копия базы пустая.
20. automatizator 170 02.10.25 15:24 Сейчас в теме
Тоже, - не запускался конфигуратор, но пользователи в базе могли работать.

Помогло удаление из стартового списка базы и добавление той же базы вновь.
Не говорите, сам в шоке...
21. check2 413 26.06.26 15:46 Сейчас в теме
К сожалению не помогло (без претензий) - не открывался конфигуратор, в польз. режиме было ОК, было соединение агентом к этой базе в момент, когда ИБП помер и отрубил ПК. Конфигуратор открывался, но ошибка возникала в момент открытия дерева конфигурации.
Вылечилось очисткой кэша метаданных (хотя configsave я в PG тоже прибила) но завелась база только после очистки кэша я грохнула оба каталога с ИД базы как в roaming, так и в local
Но раз уж столько комментов - добавлю и свой кейс )
Для отправки сообщения требуется регистрация/авторизация