1с postgresql ошибка формата потока

oshibka-formata-potoka-postgres-000.pngОшибка формата потока — одна из самых неприятных ошибок в работе 1С и вызывает панический ужас у многих администраторов и пользователей данной учетной системы. Ее появление обычно говорит о серьезных повреждениях базы данных и, чаще всего, наиболее верным решением будет восстановить базу из резервной копии. В случаях, когда это нежелательно или невозможно придется заняться восстановлением базы, но большинство инструкций в сети рассматривают данный вопрос только на примере MS SQL Server, а PostgreSQL если и касаются, то очень вскользь. Поэтому в данной статье мы постараемся исправить данный пробел.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Начнем с того, что именно обозначает эта ошибка. Разработчики немногословны, никаких подробностей сообщение об ошибке не содержит:

oshibka-formata-potoka-postgres-001.png

Столь же скупа и информация для технической поддержки:

oshibka-formata-potoka-postgres-002.pngОбычно это вызывает у пользователей и неподготовленных администраторов тихую панику, особенно если под рукой нет актуальной резервной копии. А судорожные попытки восстановления базы, обычно без понимания смысла выполняемых действий приводят как правило к ее полному разрушению.

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

1:Tools (Зеркало на Инфостарте)
MD5: 448277422B59EFA426CC51E4F3A52F53

В остальных случаях придется заниматься восстановлением непосредственно базы. В этом месте мы сразу внесем ясность и разделим сущности: информационная база 1С — это хранилище данных на уровне логики 1С:Предприятия которое описывается конфигурацией информационной базы. Т.е. именно здесь содержатся документы, справочники, регистры и т.д. и т.п., а повреждение конфигурации информационной базы делает невозможной работу с ними на этом уровне абстракции. База данных СУБД — это набор таблиц в которых хранятся как данные, так и конфигурация информационной базы 1С.

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

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

Все это достаточно сложно и не всегда приносит требуемый результат, поэтому проще и надежнее заменить конфигурацию информационной базы на заведомо исправную используя инструменты СУБД, в нашем случае PostgreSQL. В зависимости от используемой ОС (Windows или Linux) некоторые аспекты работы с PostgreSQL могут отличаться и это будет оговорено отдельно, в остальных случаях указанные команды применяются вне зависимости от платформы.

Перед тем как начинать работу с PostgreSQL в Linuх последовательно повысим свои права для суперпользователя и затем войдем в систему от имени пользователя postgres:

sudo -s
su postgres

Если утилита sudo не установлена (такой вариант может быть в Debian), то:

su -
su postgres

В первом случае вам потребуется ввести пароль от текущей учетной записи, во втором — от учетной записи суперпользователя (root).

Затем обязательно сделаем копию информационной базы средствами СУБД. Получить список баз данных в кластере СУБД можно командой:

psql -l

В Windows вам потребуется ввести пароль пользователя postgres.

oshibka-formata-potoka-postgres-003.pngВыяснив имя необходимой базы данных выгрузим ее дамп командой:

#Linux
pg_dump basename > ~/basename.psql

#Windows
pg_dump basename > D:backupbasename.psql

Где basename — имя нужной базы данных. Обратите внимание, что в Windows мы можем явно задать путь выгрузки дампа, а в Linux выгружаем его в домашнюю директорию пользователя postgres, т.е. /var/lib/postgresql.

Для дальнейших действий нам потребуется развернуть на этом же сервере СУБД еще одну базу с точно такой же конфигурацией информационной базы, это может быть как старый бекап поврежденной базы, так и другая база такой же конфигурации, чистая установка или демо база. Главное, чтобы конфигурация новой базы с точностью до релиза совпадала с конфигурацией поврежденной.

После чего откроем интерактивный терминал PostgreSQL в котором будем производить все последующие действия:

psql

В Windows вы можете получить сообщение:

ПРЕДУПРЕЖДЕНИЕ: Кодовая страница консоли (866) отличается от основной
страницы Windows (1251).
8-битовые (русские) символы могут отображаться некорректно.

В этом случае выполните:

 ! chcp 1251

Теперь подключимся к исправной базе:

с newbasename

где newbasename — имя исправной базы данных. При этом в строке приглашения появится имя подключенной базы.

Из нее мы выгрузим таблицу config в которой находится основная конфигурация информационной базы.

#Linux
COPY config TO '/var/lib/postgresql/config_OK.txt';
#Windows
COPY config TO 'D:/backup/config_OK.txt';

Обратите внимание, при указании пути для операционной системы Windows вы также должны использовать прямой, а не обратный слеш. Также служба СУБД должна иметь права на запись в целевую аудиторию, проще всего это сделать выдав полные разрешения для пользователя Все.

Переподключимся к поврежденной базе:

с basename

На всякий случай, также сохраним содержимое таблицы config:

#Linux
COPY config TO '/var/lib/postgresql/config_ERR.txt';
#Windows
COPY config TO 'D:/backup/config_ERR.txt';

После чего очистим сбойную таблицу:

DELETE FROM config;

И загрузим в нее данные из исправной информационной базы:

#Linux
COPY config FROM '/var/lib/postgresql/config_OK.txt';
#Windows
COPY config FROM 'D:/backup/config_OK.txt';

Для выхода из терминала PostgreSQL введите:

q

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

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

DELETE FROM configsave;

Как видим, устранение ошибки формата потока средствами СУБД PostgreSQL достаточно несложно, однако требует некоторых навыков работы с данной СУБД. Но если вы будете внимательно и вдумчиво следовать нашей инструкции, то проблем у вас возникнуть не должно.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Содержание:

1.       Ошибка формата потока при запуске базы

2.       Ошибка формата потока при обновлении

3.       При внесении изменений в закрытую базу данных

Оповещение 1С об ошибке формата потока данных

Рис. 1 Оповещение 1С об ошибке формата потока данных


Приветствую, коллеги! Если Вы читаете это, полагаю, оповещение об ошибке формата потока, представленное ниже, уже должно быть Вам знакомо. В статье я расскажу о том, когда в системе 1С может возникать ошибка формата потока, по каким причинам это происходит и как исправить ошибку. Надеюсь, описанное далее поможет решить Вашу проблему. Цели наши ясны как белый день – далее затягивать вступление нет смысла, а потому перейдем сразу к делу! 

1.   Ошибка формата потока при загрузке базы


Ошибка формата потока может возникать в двух случаях: при загрузке базы и при ее обновлении. Начнем, пожалуй, с первого – возникновения ошибки при загрузке базы. Обычный перезапуск программы в таких случаях, как правило, не помогает. Чаще всего ошибка формата потока при загрузке базы связана с проблемами в кэше или наличием так называемой битой информацией внутри системы. Обычно это спровоцировано неправильным выключением системы, например, отключением электричества. Также эта ошибка может быть вызвана действием антивируса или возникать при попытке подключиться к одной и той же информационной базе из разных версий платформы 1С:Предприятие.

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

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

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

Второй способ — это удаление всех сопутствующих файлов в папке с базой. Проще это сделать переносом самого файла, в котором хранится наша база. Он имеет расширение 1cd и называется 1.8. Как правило, этот файл по размеру превышает остальные. Его-то и выделяем, после чего переносим в новую созданную папку.

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

Если есть доступ к конфигуратору, необходимо запустить процедуру тестирования и исправления ошибок информационной базы. Еще раз убеждаемся, что мы сделали резервную копию информационной базы. Также если у нас открывается конфигуратор, можно воспользоваться возможностью выгрузить и загрузить информационную базу через dt file.

Так как при выгрузке dt файла происходит сжатие таблиц информационной базы, этот способ также может помочь устранить ошибку. Если конфигуратор не запускается или после тестирования ошибка возникает вновь, то необходимо проверить на наличие ошибок сам файл информационной базы. Проверяется он стандартной утилитой ChekdbfL, которая идёт в комплекте вместе с установленной платформой 1С:Предприятие. Расположена это утилита в папке «Program files → bin».

Запускаем утилиту и в поле имя файла б. д. выбираем наш файл с базой. Не забываем установить флаг «Исправлять обнаруженные ошибки». По завершению система сообщит нам об обнаруженных и исправленных ошибках, после чего можно снова запускать 1С.  

2.   Ошибка формата потока при обновлении


Также ошибка формата потока данных в 1С может досаждать своим появлением не только при открытии базы, но и при её обновлении.

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

В первую очередь произвести тестирование и исправление базы. Запускаем соответствующую обработку, проставляем все галочки и здесь переключатель обязательно ставим в положение тестирования и исправления. Насчет ссылок – поставить на «Не изменять», нажимаем на кнопку «Выполнить» и довольно долго ждем.

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

Находим его на жёстком диске по пути C:/program files(86)/1cv8, затем переходим в папку bin, где и находится обработка chdbfl.

Для общего сведения chdbfl — это сокращение от Chek database files, так что белиберда вполне логична.

Здесь нам нужно выбрать файл с нашей базой данных. Находим каталог с ошибочной базой и выбираем файл с базой данных, после чего обязательно ставим галочку «Исправлять обнаруженные ошибки» и нажимаем на кнопку «Выполнить». В данном случае ошибок не должно быть обнаружено вообще никаких.  

3.   При внесении изменений в закрытую базу данных


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

Включение возможности редактирования первоначально закрытой базы данных

Рис. 2 Включение возможности редактирования первоначально закрытой базы данных

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

То есть конфигурационный файл нашей базы на самом деле представляет собой пару конфигурации – типовая конфигурация 1С (на замке), и основная, открытая для доработок.

Ошибка формата потока данных может быть связана с тем, что зашитая в нашу конфигурацию типовая конфигурация 1С «битая». Ее нужно просто заменить, и тогда мы избавимся от нашей проблемы.

В первую очередь нам понадобится «здоровая» типовая конфигурация 1С. Определяем версию нужного нам релиза базы, и, чтобы получить файл конфигурации cf из нее, выполняем команду: «Конфигурация → сохранить конфигурацию в файл».

Теперь нам нужно битый файл конфигурации заменить на «здоровый». Для этого, во-первых, нужно его полностью уничтожить в нашей базе: «Конфигурация → Поддержка → Настройка поддержки», нажимаем на кнопку «Снять c поддержки», тем самым уничтожая конфигурацию поставщика 1С. В результате у нас осталась только одна база – скопированная и открытая для внесения изменений.

Далее необходимо обновить конфигурацию базы данных, чтобы получить базу 1С, снятую с поддержки. Но обновить мы её не сможем – придется поставить базу на поддержку.  Для этого используем команду «Сравнить/объединить с конфигурацией из файла». Выбираем наш «здоровый» файл конфигурации cf, тут же возникает предложение поставить программу и базу на техническую поддержку, мы, конечно же, соглашаемся с этим. Затем появляется окно сравнения/объединения, и если мы сейчас нажмем на кнопку «Выполнить», то уничтожим все доработки в нашей базе – обязательно убираем галочку «Сохранять настройки автоматически», нам нужно только поставить базу на техническую поддержку.


Мы почти закончили. Осталось только разобраться, что это за странный значок появился:

Оповещение о снятой с поддержи базе 1С

Рис. 3 Оповещение о снятой с поддержи базе 1С

Для того чтобы этот значок поменять на привычный «желтый кубик», вызываем команду «Настройка поддержки» и меняем статус со «Снят с поддержки» на «Редактируется». Также не забываем нажать галку «Установить для подчиненных объектов» и, опять-таки, нажимаем на кнопку «Обновить конфигурацию базы данных».

Вот и все! В итоге мы получили то же самое, что у нас и было изначально только мы заменили конфигурацию поставщика 1С с битой версии на нормальную. И уже в ней попробовать выполнить обновление. И на это раз всё должно получиться!

Специалист компании «Кодерлайн»

Никита Брежницкий

   anchar007

27.09.19 — 15:33

Пытаюсь развернуть DT рабочей базы на тестовой машине.

DT весит 9 Гб, а сама база примерно 110 Гб. База клиент-серверная, сервер на debian, стоит postgresql 9.6 и сервер 1С 8.3.13.1513 х64. Клиентская терминальная машина на Windows, на ней стоит 8.3.13.1513 х64.

Запускаю загрузку базы из DT, проходит 5 минут, база начинает весить 2,3 Гб и всё, выходит ошибка «В информационную базу загружены не все данные 1с. Ошибка формата потока»

Пробовал загрузить 4 разных DT-файла. Все вылетают с такой ошибкой.

В чем может быть проблема? Почистить кэш не предлагать))

   sikuda

1 — 27.09.19 — 15:37

   anchar007

2 — 27.09.19 — 15:39

(1) забыл сказать, что маленькие по размеру базы разворачиваются без проблем

   rphosts

3 — 27.09.19 — 15:40

а точно версия у того что в ДТ = 1С 8.3.13.1513 ?

   Провинциальный 1сник

4 — 27.09.19 — 15:41

Вы что, в файловую базу пытаетесь 110 гигов загрузить?

   ДенисЧ

5 — 27.09.19 — 15:42

(4) » стоит postgresql 9.6 и сервер 1С 8.3.13.1513 х64″

   anchar007

6 — 27.09.19 — 15:43

(3) точно. DT был сделан с базы под платформой 1513 и разворачивается тоже на 1513, только на другом компе

   spiller26

7 — 27.09.19 — 15:43

(0) Файл подкачки смотри на сервере

   spiller26

8 — 27.09.19 — 15:44

(0) 8.3.13.1513 глючный релиз

   shuhard

9 — 27.09.19 — 15:45

(0) ТиИ в источнике выгрузки  сделан ?

4-ре файла выгружены 4 раза из одной и той же базы ?

   anchar007

10 — 27.09.19 — 15:46

(7) NAME TYPE    SIZE USED PRIO

    none virtual   6G   0B    0

Как понять сколько нужно?

   anchar007

11 — 27.09.19 — 15:47

(8) ещё пока качаю новую платформу

   anchar007

12 — 27.09.19 — 15:48

(9) ТиИ не делал в источнике, надо чтобы все вышли часов на 8, а это проблематично.

Все 4 файла сделаны с одной базы, в разные дни. Но с базой вроде пока проблем не наблюдается

   DeeK

13 — 27.09.19 — 15:49

аминь

   s_newbi

14 — 27.09.19 — 15:50

Если в базе есть ошибки, то она не загрузится из dt’ника

Все кто делает резервные копии — dt’никами сильно рискуют остаться без базы.

   dezss

15 — 27.09.19 — 15:50

А почему делаешь через DT, а не через средства SQL?

   Dmitry1c

17 — 27.09.19 — 15:53

(0) а кто бекапы 100гиговой базы в дт решил делать?

   s_newbi

18 — 27.09.19 — 15:54

(15) а как средствами SQL получить 1CD?

   anchar007

19 — 27.09.19 — 15:55

ок, попробую через pgadmin сделаю копию

   piter3

20 — 27.09.19 — 15:55

(18) то есть все-таки файловая)

   rphosts

21 — 27.09.19 — 15:56

(17) нууу, может они не умеют делать бэкапы средствами постги

   rphosts

22 — 27.09.19 — 15:56

(18) какое нафиг 1CD!

   rphosts

23 — 27.09.19 — 15:57

(20) т.е. у ТС каша в голове

   piter3

24 — 27.09.19 — 15:57

(23) тяпница,бывает)

   Масянька

25 — 27.09.19 — 15:58

(13) Поддерживаю.

Бекапы делают трусы (С)

   anchar007

26 — 27.09.19 — 15:59

(23) да вы че, там чел какой то про 1CD спросил, это не я. Я пока копию через pgadmin делаю))

   rphosts

27 — 27.09.19 — 15:59

(26) о, точно

   rphosts

28 — 27.09.19 — 16:00

+ (26)но бэкап и ресторе нужно делать скриптами а не оболочками

   timurhv

29 — 27.09.19 — 16:00

(21) ну бывает скинут bak от MSSQL 2017 и как его грузить в PostgreSQL или MSSQL 2014?

   shuhard

30 — 27.09.19 — 16:01

(12)[Все 4 файла сделаны с одной базы, в разные дни. Но с базой вроде пока проблем не наблюдается]

это тебе кажется

   Фрэнки

31 — 27.09.19 — 16:02

а что только я один не понимаю, зачем ему эту всю хрень нужно затащить на клиентскую машину, если ее можно и нужно развернуть как лишнюю базу на том же сервере и в нем тестить все себе интересное на сервере?

   shuhard

32 — 27.09.19 — 16:03

(26)[ Я пока копию через pgadmin делаю]

т.е. смысл поста был в троллинге форума =)

   dmpl

33 — 27.09.19 — 16:04

(31) Тестить? На боевом сервере? В приличных местах за это а-та-та сделают.

   Фрэнки

34 — 27.09.19 — 16:04

(32) ну да. совсем зеленые о существовании пгадмина самостоятельно не догадываются.

   Фрэнки

35 — 27.09.19 — 16:05

(33) а им не похрен где тестить? чего такого страшного в запуске теста на отдельной базе, ну пускай даже на том же сервере?

   anchar007

36 — 27.09.19 — 16:07

(35) ну не.. вдруг че не так пойдет. Плюс лишняя нагрузка на сервер

   shuhard

37 — 27.09.19 — 16:07

(35) в ресурсах

в отключенном отладчике

   Затейник

38 — 27.09.19 — 16:07

Вот соседняя ветка, уверяла Переход с Микрософта на Линукс что с postgres проблем нет, особенно с бекапами.

   Фрэнки

39 — 27.09.19 — 16:08

(37) да, про отладчик я не подумал.

   Фрэнки

40 — 27.09.19 — 16:10

(36) я бы, пока суть да дело, а если есть готовые ДТ, то проверил бы из них загрузку в соседнюю базу на том же сервере, чтоб лобовым способом проверить, что проблемы в ДТ нету.

   ansh15

41 — 27.09.19 — 17:05

(11) Новый PostgreSQL тоже не забудь скачать. Сейчас это 10.9-5.1С.

   dmpl

42 — 27.09.19 — 17:32

(35) Можно случайно перепутать тестовую базу и боевую. Можно неосторожним движением уронить процесс сервера 1С:Предприятия или SQL-сервера.

   Провинциальный 1сник

43 — 29.09.19 — 07:35

(39) (37) А что за отладчикофобия? Проверял специально, влияние параметра включенной отладки на сервере на производительность влияет на уровне погрешности. Конечно, когда процесс трассируется с подключенным отладчиком, это другое дело. Но повторяю, сам по себе признак разрешения отладки не мешает работе.

   PR

44 — 29.09.19 — 08:33

(0) Сколько места на системном диске?

   ink-nsk

45 — 30.09.19 — 06:59

1С то ломанная?

Либо она считает себя таковой. :)))))

   hhhh

46 — 30.09.19 — 07:06

согласен с (44). Что на системном диске свободного места меньше чем 110 гиг

   Смотрящий

47 — 30.09.19 — 07:25

(0) У тебя битый DT. Точнее битые данные в исходной базе.

1С, формируя dt-шник, выгружает в него конфу, в трех экземплярах, потом льет сырые данные. Никаких проверьк не производится. DT-ник выгрузится всегда.

Обратная ситуация при загрузке, 1с проверяет корректность загружаемых данных; и, если они битые (кривой уникид, число не влезает в разрядность, циклические ссылки и т.п.) то получаешь ошибку формата потока.

Проще всего данные поправить в исходной базе. И перевыгрузить dt-шник.

   anchar007

48 — 30.09.19 — 08:33

(47) Да, на самом деле оказался битый dt. Все 4 dt-шника, которые я пробовал загружать были сделаны скриптами. И все оказались битые. Выгрузил вручную через конфигуратор и загрузил без ошибок

   unregistered

49 — 30.09.19 — 08:55

(43) >> А что за отладчикофобия?

Это тема отдельно холивара. И даже если считать, что включение отладки не влияет на производительность (ну или пренебречь этим влиянием), остаётся проблема, когда разработчик начинает отлаживать процесс в боевых базах на продуктивном rphost-е. А этим грешат 99.9% разработчиков, где включена отладка на продуктиве.

   unregistered

50 — 30.09.19 — 08:56

(48) DT — не является резервной копией для клиент-серверных баз. Это аксиома. А зачем было доказывать аксиому?…

   Фрэнки

51 — 30.09.19 — 09:11

(50) ну как бы у него аксиома получилась двоякая — ДТ вручную Конфигуратором работает, а хз откуда взятые скрипты создавали ДТ битый.

з.ы. И зачем нужно было годами делать как бы архивы, которые никто никогда не тестил на загружаемость ?

   Фрэнки

52 — 30.09.19 — 09:13

(49) точно! Если включил отладчик на продуктиве, то значит рано или поздно, так или иначе, но пользоваться им начнешь :-)

   Nyoko

53 — 30.09.19 — 09:59

(48) Это хорошо конечно, а почему средствами SQL не сделать сразу?

   Провинциальный 1сник

54 — 30.09.19 — 10:09

(52) Продуктив продуктиву рознь. В 90% случаев это допустимо. Более того, часто даже необходимо подключиться отладкой к пользовательскому сеансу, чтобы выяснить что там у него не так.

   braslavets

55 — 30.09.19 — 10:46

(0) Свободное место в %temp% на сервере 1с

   ptiz

56 — 30.09.19 — 11:01

Я однажды sql profiler на рабочей базе включил и забыл закрыть. Полдня не могли понять, почему всё медленнее вдвое стало :)

   anchar007

57 — 30.09.19 — 12:17

(53) Для этого надо отдельную тему создавать. Из SQL база никак не хотела разворачиваться. Я выгружал бэкап рабочей базы через pgadmin, создавал новую базу в pgadmin на тестовом сервере, восстанавливал данные из бэкапа в эту новую базу, и через какое-то время pgadmin писал ошибку, что не удалось загрузить данные и большой список ошибок. Пробовал через pgadmin сделать копию 100% рабочей базы на том же тестовом сервере и восстановить её в другую базу на этом же сервере — те же самые ошибки (что то там про то, что не создан какой то оператор и какой-то не верный тип). Долго разбирался с кодировками и прочей хренью на линуксе, но всё было ок, русские локали работали и пустая база создавалась с русской кодировкой. Решил обновить postgresql с 9.6 на 10, но хрен там… У версии debian, которая установлена на серваке какие-то проблемы с новым 10-ым postgresql из-за библиотеки libssl.so

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

   Джо-джо

58 — 30.09.19 — 12:52

(5) нахуа тогда dt-шник?

   Провинциальный 1сник

59 — 30.09.19 — 13:13

(57) Что-то мне помнится, что для восстановления бэкапа постгреса надо сначала базу создать из 1с, а потом уже восстанавливать бэкап поверх существующей базы. Что-то там с определяемыми типами, которые создаются в контексте базы, и эти определения не сохраняются в бэкапе.

  

shuhard

60 — 30.09.19 — 13:16

(57)[ те же самые ошибки (что то там про то, что не создан какой то оператор и какой-то не верный тип)]

дык это 100500 раз описано, да есть фичи

Борьба с сообщением «Ошибка формата потока» в 1С:Предприятие 8

шаман 1с

Шаманы IT — кто они?

За что мне нравиться 1С:Предприятие 8.1 — с ним не соскучишься. Итак, сегодня мы будем учиться пляскам с бубном. Есть мнение, что бубны сисадминов в этом случаи не годятся. Это не правда, тоже подойдут.

Когда нужен бубен?

При работе с 1С:Предприятие 8.1 по некоторым независящим от нас с Вами причинам вы можете столкнуться с сообщением об ошибке «Ошибка формата потока».
Например это может произойти так: После запуска chdbfl.exe выдал ошибки во внутреннем файле превышена длина кода, потом показал что ошибки исправлены. После этого запустить конфигурацию не удалось, стала выходить ошибка «ошибка формата потока……».

Самый распространенный ответ-рекомендация: Попробовать перенести базу на другой компьютер и там запустить.

Звучит загадочно, не правда ли? :)))

Постарайтесь ответить на вопросы: После выполнения каких действий стала появляться эта ошибка?
Эта ошибка появляется при запуске с любого компьютера или только с одного? Например может быть характерна такая ситуация: у клиента при попытке запуска конфигурации в режиме предприятия в клиент-серверном режиме под некоторыми пользователями приложение падает с сообщением «Ошибка формата потока», под остальными пользователями все работает нормально.

Начните с http://www.gilev.ru/disableipv6/

Частными случаями этой рекомендации можно считать например такие решения:

  • удаление из списка баз и повторное добавление
  • очищение данных из каталога «C:Documents and SettingsпользовательApplication Data1C1Cv81»
  • простое копирование содержимого каталога bin в новый каталог

Общей причиной возникновения такой ситуации можно считать сбои железа (в одном случае пропала сеть, отключилось электричество), софта и т.д. (и не обязательно 1С).

    • Отключите файрволы и антивирусы
      • Например, известны примеры, когда помогало только УДАЛЕНИЕ Eset Smart Security. Просто отключение его ничего не давало. (Примечание. Коллеги предлагают в настройках снять флаг»Включить  фильтрацию  содержимого протоколов уровня приложений». Если фильтрация всё же нужна и отключать ее не хочется, здесь же можно указать, чтобы файрвол фильтровал только «Порты HTTP и POP3». )

Скриншот настройки

  • Скопировать базу с исходного источника другой флешкой 🙂

В случаи, если есть возможность зайти в режиме конфигуратора, то также есть смысл проверить целостность данных:

  • для файловой версии использовать проверку целостности chdbfl.exe
  • тестирование и исправление средствами конфигуратора
  • выгрузка/загрузка конфигурации

Для ранних версий платформы были характерны механизмы, не контролирующие некорректное хранение данных, поэтому обратите внимание на такие решения как:

  • обновили платформу до последней версии (но не просто обновлением, а удалением старой версии, и затем установкой новой)
  • очистка журнала регистрации
  • в клиент-серверном варианте сообщение «Ошибка формата потока» может возникнуть у клиента, когда одно из приложений из набора 1С:Предприятия, выполняющихся на сервере, не имеет достаточно дискового пространства в разделе /tmp для размещения временных файлов
  • проверить обработкой все метаданным все строковые реквизиты (проверяем наличие и удаляем сивмолы 0x1a & 0xFFFF )

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

Или в такой ситуации: Если через COMConnector происходит обращение к клиент-серверной базе данных, то возможной причиной ошибки является передача от клиента (COMConnector-а в клиентском приложении) серверу 1С:Предприятия или наоборот значения типа «Строка», содержащего символы с кодами 0x1F или 0xFFFF. Передача может выполняться как через параметры и результат процедур и функций, исполняемых на сервере, так и в том случае, если такие символы содержатся, например, в строковом значении константы.

Можно также использовать РИБ, если есть возможность создавать планы или они уже есть:

  • выгружать данные с помощью XML

Или еще бывает так:

При попытке открыть форму документа «Поступление товаров услуг» происходит ошибка «Ошибка формата потока». Ошибка возникает как в Конфигураторе так и в Предприятии.
Система работает в файловом режиме. Решение может быть таким: Удалить данную проблемную форму и вставить другую (объединением) и назначить ее основной.

В некоторых случаях можно исследовать проблему с помощью технологического журнала:

<?xml version=»1.0″ encoding=»UTF-8″?>
<config xmlns=»http://v8.1c.ru/v8/tech-log«>
<dump create=»true» location=»C:Program Files1cv81bindumps» prntscrn=»false» type=»2″/>
<log history=»96″ location=»C:Program Files1cv81binlogs»>
<event>
<eq property=»name» value=»EXCP»/>
</event>
<event>
<eq property=»name» value=»EXCPCNTX»/>
</event>
<event>
<eq property=»name» value=»PROC»/>
</event>
<property name=»all»/>
</log>
</config>

Примечание. Для 64х-разрядного сервера приложений каталог отличается от размещения клиента 1С. В этом случаи logcfg.xml нужно размещать в обоих подкаталогах /conf, корректирую пути размещения логов.

В этом случаи будут формировать логи для клиента 1С в подкаталоге 1cv8_ХХХХ:

30:02.8131-0,EXCP,1,process=1cv8,Usr=Гилев В.В.,Exception=Exception,Descr=Ошибка формата потока

  • удалить все записи с таблице configsave

Если ошибка возникает у всех пользователей сразу, то сделайте резервную копию и почистите таблицу delete from configsave

Помогает для различных субд (и MS SQL Server, и Oracle)

Воспользуйтесь обработкой «ВыгрузкаЗагрузкаДанныхXML», с диска ИТС.
Алгоритм спасения простой: выгрузить данные из сбойной базы в файл, затем создать новую пустую базу и вновь, с помощью обработки, загрузить данные из созданного на первом шаге файла.

Можно также попробовать утилиту Сергея Боровика (http://infostart.ru/public/16741/) и экспортировать конфигурацию (если цель — конфигурация, а не база)…

  • Для работы с 1cd файлом
  • Для работы с dt файлом

Если проблема при открытии конфигуратора

Интересно что если найти такой объект в дереве конфигурации можно получить ошибку формата потока без вылета 1С. Хотя, если это html, он может открыться, но при сравнении, при отрытии его объектов, 1С все равно вылетит.
Т.е. достаточно последовательным открытием всех объектов БД ч/з конфигуратор можно найти такой объект, снять его с поддержки и удалить. Но, это ж надо так любить 1С, чтоб тупо сидеть и открывать каждый объект, клацая мышкой. Увы, я не так трепетно отношусь к 1С :). Я полез в меню конфигуратора и попытался там найти, что-то, что будет открывать объекты, типа как при обновлении или сравнении конфигураций. И нашел!!! Это меню Конфигурация -> Выгрузить файлы конфигурации. Причем там есть форма в которой можно отметить не все а те объекты и разделы, которые тебе надо выгрузить.
Т.о. выгружая конфу получая ошибку и сужая диапазон отмеченного, я нашел эти злосчастные поврежденные объекты и удалил их. После этого все прошло как по маслу. Все сравнивалось и объединялось. Теперь по поводу танцев с бубнами описываемых на форумах. Из этих описаний следует одно: Ошибка формата потока — это когда объект базы (объект, здесь более широкое понятие, чем в 1С) поврежден, по различным причинам. И если 1С в режиме работы или конфигурации пытается его открыть мы получаем эту ошибку. Причем бывает так, что и конфигуратор невозможно открыть (Т.е. не откравается объекты необходимые при запуске).
Тогда и спасает внешний файл для тестирования и исправления БД chdbfl.exe, находящийся в папке bin. Бывают повреждаются файлы настроек пользователя 1С в Doc.endSett. Тогда их просто надо удалить с диска. Если повреждены объекты самой конфы, иногда помогает тестирование и исправление ч/з конфигуратор. Но эти два метода тестирования открывают для тестирования не все объекты БД! Важно об этом помнить. Так, уважаемый файл chdbfl.exe, я так понимаю, в основном, позволяет исправить БД, т.о. чтобы ее затем в первую очередь запустить.

Если ошибка возникает в процессе попытки сравнения/обновления базы — удалите объект, на котором происходит сбой — при объединении с конфой обновления проблемный объект будет заново записан в базу. Ошибка связана с особенностями перехода между платформами, особенно если их релизы выходят довольно часто.

см. также http://infostart.ru/public/162933/

в случае когда стандартные отчеты Бухгалтерии 2.0 8.2 при открытии вызывали сообщение об одной и той же ошибке: «Ошибка формата потока». Решение оказалось простым. Для базовой конфигурации потребуется ПК с платформой ПРОФ.

Решение:

1. Открываем конфигуратор.

2. Находим в дереве конфигурации проблемный отчет и сохраняем его командой «Сохранить как внешнюю обработку, отчет…»

3. Окрываем в конфигураторе сохраненный отчет. Далее — кнопка «Действия» — команда «Открыть модуль объекта».

4. Находим в тексте процетуру «ПрименитьНастройку()», удаляем всё ее содержимое или преобразуем всё содержимое процедуры в комментарий сочетанием клавиш [Ctrl+Num/], сохраняем внешний отчет.

5. Запускаем (переключаемся) базу в режиме «Предприятие», открываем наш внешний отчет. Открылся? Закрываем.

6. Удаляем файл внешнего отчета с диска.

см. также https://infostart.ru/public/976582/

image

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

CREATEINFOBASE "Srvr=srv;Ref=sa4;DBMS=PostgreSQL;DBSrvr=/tmp/postgresql/socket;DB=sa4;DBUID=postgres;LicDstr=Y;Locale=ru_RU;CrSQLDB=Y;SchJobDn=N;"
47:13.608000-0,EXCP,1,process=1cv8,OSThread=693,Exception=d294e384-7ea6-49c6-be96-f3a6e3de1242,Descr='LoadComponent(cfgtest):
d294e384-7ea6-49c6-be96-f3a6e3de1242: Ошибка загрузки компоненты cfgtest: '
47:14.019000-0,EXCP,2,process=1cv8,OSThread=693,Exception=9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3,Descr="./src/ClientFileCacheImpl.cpp(280):
9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: Файл не обнаружен 'v8stg64://c:/1/DynamicalWorkCache': ./src/Storage64.cpp(3077)"
47:14.020002-0,EXCP,2,process=1cv8,OSThread=693,Exception=9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3,Descr="./src/ClientFileCacheImpl.cpp(280):
9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: Файл не обнаружен 'v8stg64://c:/3/DynamicalWorkCache': ./src/Storage64.cpp(3077)"
47:15.737001-0,EXCP,1,process=1cv8,OSThread=693,Exception=e88a796d-7758-48a7-9ba7-781e269e9aa4,Descr='./src/ExceptionWriterUIImpl.cpp(224), shown to the user:
e88a796d-7758-48a7-9ba7-781e269e9aa4: Ошибка формата потока'

  • 1h 563 ошибка будерус logano
  • 1f4a08 ошибка бмв f10
  • 1f2802 ошибка bmw 7
  • 1f0530 bmw ошибка f30
  • 1f0515 ошибка бмв f20