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

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)

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

01.10.2026    561    Tantor    4    

11

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

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

31.08.2026    5684    Tantor    3    

17

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

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

11.08.2026    3002    jul.dolganova    9    

23

Администрирование СУБД Пароли Системный администратор 1С 8.3 1С:Розница 2 1С:Управление производственным предприятием Абонемент ($m)

Пароль пользователя СУБД лежит в 1CV8Clst.lst обратимо: кто читает папку srvinfo - достаёт пароли SQL всех баз кластера, минуя права 1С. Обработка показывает, у каких баз пароль извлекается, помечает слабые и выдаёт план защиты. К СУБД не подключается, ничего не пишет - только читает файл.

10 стартмани

06.08.2026    1746    16    nedomolkov.ivan    0    

7

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

Прогнал набор диагностических скриптов на двух рабочих базах: боевой с 580 сеансами и малонагруженной. Разбираю пять находок: статистика 97-дневной давности, 598 запросов со сканами, журнал транзакций в 73 % от данных, tempdb в один файл и 81 % ожиданий на параллелизме, который чинить не надо. Плюс три грабли, из-за которых самописный диагностический скрипт падает на чужом сервере. Семь рабочих скриптов внутри, копируются в SSMS как есть.

05.08.2026    2295    nedomolkov.ivan    8    

9

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

Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.

04.08.2026    2686    nedomolkov.ivan    0    

9

Администрирование СУБД 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

База 1С:ERP размером 646 Гб, полное маскирование за 5 часов - без создания промежуточной незащищенной копии. Разбираем бесплатный pg_anon на сквозном примере с реального продуктива.

27.07.2026    3923    Tantor    16    

16

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

Если вы работаете с 1С на PostgreSQL и жалуетесь на тормоза — скорее всего, дело в join predicate pushdown, которого в стандартном PostgreSQL нет. В MS SQL Server этот механизм работает «из коробки», и при миграции именно запросы к виртуальным таблицам 1С бьют по производительности сильнее всего. В этой статье — реальный кейс от Postgres Professional с разбором плана выполнения, ручным экспериментом и доработкой планировщика СУБД, которая ускорила запросы от 22 до 54 000 раз.

16.06.2026    10589    postgres_professional    15    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 950 21.11.22 14:08 Сейчас в теме
(7) Второй способ помог. Не запускался конфигуратор вообще.
18. Nicholas 950 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
Но раз уж столько комментов - добавлю и свой кейс )
Для отправки сообщения требуется регистрация/авторизация