Борьба с сообщением «Ошибка формата потока» в 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/
Ошибка формата потока — одна из самых неприятных ошибок в работе 1С и вызывает панический ужас у многих администраторов и пользователей данной учетной системы. Ее появление обычно говорит о серьезных повреждениях базы данных и, чаще всего, наиболее верным решением будет восстановить базу из резервной копии. В случаях, когда это нежелательно или невозможно придется заняться восстановлением базы, но большинство инструкций в сети рассматривают данный вопрос только на примере MS SQL Server, а PostgreSQL если и касаются, то очень вскользь. Поэтому в данной статье мы постараемся исправить данный пробел.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Начнем с того, что именно обозначает эта ошибка. Разработчики немногословны, никаких подробностей сообщение об ошибке не содержит:
Столь же скупа и информация для технической поддержки:
Обычно это вызывает у пользователей и неподготовленных администраторов тихую панику, особенно если под рукой нет актуальной резервной копии. А судорожные попытки восстановления базы, обычно без понимания смысла выполняемых действий приводят как правило к ее полному разрушению.
К возникновению данной ошибки приводит повреждение основной конфигурации информационной базы. Реже — кеша конфигурации информационной базы, в последнем случае устранить ошибку можно путем очистки кеша, для этого можете воспользоваться нашей утилитой 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.
Выяснив имя необходимой базы данных выгрузим ее дамп командой:
#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С:Предприятие в любой конфигурации хотя бы раз видел перед глазами окно с ошибкой «Ошибка формата потока».
Данное окно входит в ТОП-3 самых распространенных ошибок 1С:Предприятие. Оно неприятно из-за своей не информативности. Непонятно: где, в чем ошибка? Естественной реакцией будет нажатие кнопки «Перезапустить», но с высокой вероятностью можно утверждать, что перезапуск проблему не устранит, и пользователь снова увидит данное окно.
В этой статье будут объяснены причины возникновения, разновидности и способы устранения «Ошибки формата потока» 1С.
Почему 1С 8 пишет «Ошибки формата потока»?
Программа 1С:Предприятие создана таким образом, что в процессе работы постоянно стремится оптимизировать скорость выполнения операций. С этой целью на компьютере пользователя создается «кэш», в котором хранится часто используемая информация, например: расположение и формы окон, служебные данные пользователя, настройки отборов, шрифтов и т.д. Кэширование позволяет сократить количество обращений к серверу и, тем самым, повысить скорость работы 1С:Предприятие.
Но что произойдет, если файл “кэша” будет записан с ошибкой/ошибками, в результате неправильного завершения сеанса работы, либо скачка напряжения, либо сбоя сети (для клиент-серверного варианта работы 1С)? При следующей попытке обращения к “кэшу” 1С не сможет прочитать файл и появится окно “Ошибка формата потока”. “Битый кэш” является самой частой причиной возникновения этой ошибки.
Кроме некорректно записанного кэша могут быть также некорректно записаны документы (или справочники, или любой другой объект) в информационную базу и это тоже может стать причиной возникновения рассматриваемой в данной статье ошибки.
Виды ошибки формата потока
Условно ошибку формата потока 1С можно поделить на 2 вида:
- Первый вид — это ошибка, возникающая при старте 1С. Она является результатом некорректного завершения сеанса работы, отключения электричества; либо появляется после обновления 1С. В данном случае ошибку нужно искать в кэше.
- Второй вид — это ошибка, возникающая в процессе работы с 1С,например, при открытии справочника, или при проведении документа, или при формировании отчета или при обновлении. В таком случае ошибку нужно искать в информационной базе.
В зависимости от вида ошибки можно выбрать наиболее подходящий вариант ее устранения. Но можно использовать и все способы по очереди, пока один из них не сработает. Способы не нанесут вреда вашей базе 1С 8. Впрочем, если действовать как настоящий профессионал — стоит сначала сделать бэкап, а уже потом бороться с “Ошибкой формата потока”.
Как устранить “Ошибку формата потока”?
Рассмотрим ТОП способов решения :
1. Почистить кэш 1С
Данный способ подробно был рассмотрен в нашей статье “Как очистить Кэш в 1С”. Вкратце напомним. Для удаления файлов кэша вручную необходимо найти папки, где кэш хранится. Для операционных систем Win7 и выше временные файлы хранятся по адресу C:UsersUsernameAppDataRoaming1C и C:UsersUsernameAppDataLocal1C в папках, начинающихся с «1cv8». В Windows XP, в папке пользователя по адресу Local SettingsApplication Data1C. Если папка AppData не видна — настройте видимость скрытых папок. Ниже на рисунке показано, как выглядят файлы кэша – папки с длинными непонятными именами (в нашем случае файл всего один). Для очистки кэша нужно удалить эти папки.
Важно! Удалять папки можно только тогда, когда завершены процессы работы с 1С:Предприятие.
2. Запустить тестирование и исправление 1С
В режиме конфигуратора нужно кликнуть по пункту меню “Администрирование” и затем “Тестирование и исправление”.
Должны быть отмечены первые два пункта “реиндексация таблиц информационной базы” и “проверка логической целостности информационной базы”. Нажмите кнопку “Выполнить”. Система сама проверит базу, найдет ошибки, исправит их и предоставим вам отчет о проделанной работе. При необходимости отметьте также третий пункт “проверка ссылочной целостности информационной базы”.
3. Запуск«chdbfl.exe»
Если нет возможности зайти в конфигуратор, тогда запустите программу «chdbfl.exe», которая находится: «C:Program Files (x86)1cv88.3……bin». Выберите файл Базы Данных, отметьте галочкой “Исправлять обнаруженные ошибки” и нажмите кнопку “Выполнить”. Дальше система все сделает за вас. Система сама проверит базу, найдет ошибки и исправит их. Во время работы программы «chdbfl.exe» не должно быть активных сеансов работы с 1С.
4. Выгрузить и загрузить информационную базу в .dt
В режиме конфигуратора выберите пункт меню “Администрирование” и кликните “Выгрузить информационную базу”. После этого выберите место куда хотите сохранить файл базы (.dt), задайте файлу имя и нажмите “Сохранить”.
После этого создайте новую пустую базу у себя на компьютере (либо на сервере). Зайдите в конфигуратор новой базы, нажмите “Администрирование”, затем “Загрузить информационную базу”. Выберите подготовленный ранее файл и нажмите “Открыть”.
5. Выгрузить и загрузить данные XML.
Данный способ может повлечь потерю данных, поэтому его рекомендуется использовать только опытным пользователям. Способ схож с предыдущим и заключается в том, что сначала база выгружается, (только не в .dt, как в предыдущем способе, а в специальный формат .XML). Затем база загружается обратно. Делается это с помощью встроенной обработки “Выгрузка и загрузка данных XML”.
6.Обновление 1С
Причиной рассматриваемой ошибки может стать наличие активных сеансов пользователей, работающих в разных версиях платформы 1С. Например, в базе есть активный сеанс пользователя с платформой 1С 8.3.5…., а пытается подключиться другой, с версией 8.3.4…. Если на компьютере установлены несколько версий — убедитесь, что в окне редактирования информационной базы выбрана нужная вам “правильная” версия.
7. Другие способы
В 99% случаев вышеописанные способы борьбы с “Ошибкой формата потока” эффективно сделают свою работу и ошибка “уйдет”. В оставшемся 1% придется применять более сложную диагностику, иногда выходящую за рамки 1С, например: почистить временные файлы компьютера, а не только кэш 1С; проверить жесткий диск на битые сектора при помощи утилиты “chkdsk.exe”; проверить компьютер антивирусом. Можно даже попробовать запустить базу 1С на другом компьютере и таким образом локализовать проблему, убедившись, что ошибка кроется именно в информационной базе, а не в железе и не в Операционной Системе.
Данная статья создана в помощь столкнувшимся с ошибкой 1С “Ошибка формата потока”, здесь были рассмотрены и объяснены причины ее появления, её условные виды и способы устранения. Ошибка выглядит страшно и непонятно из-за своей неопределенности, но, как видим, устранить данную ошибку по силам каждому. Заключив соглашение о техническом обслуживании 1С, работы по устранению сбоев устраняются в кратчайший срок специалистами ГК «Интегрус».
Присоединяйтесь к нам, чтобы каждую неделю получать полезные и рабочие материалы для улучшения вашего бизнеса.
Кейсы и стратегии от экспертов рынка.
Содержание:
1. Ошибка формата потока при запуске базы
2. Ошибка формата потока при обновлении
3. При внесении изменений в закрытую базу данных
Рис. 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, тут же возникает предложение поставить программу и базу на техническую поддержку, мы, конечно же, соглашаемся с этим. Затем появляется окно сравнения/объединения, и если мы сейчас нажмем на кнопку «Выполнить», то уничтожим все доработки в нашей базе – обязательно убираем галочку «Сохранять настройки автоматически», нам нужно только поставить базу на техническую поддержку.
Мы почти закончили. Осталось только разобраться, что это за странный значок появился:
Рис. 3 Оповещение о снятой с поддержи базе 1С
Для того чтобы этот значок поменять на привычный «желтый кубик», вызываем команду «Настройка поддержки» и меняем статус со «Снят с поддержки» на «Редактируется». Также не забываем нажать галку «Установить для подчиненных объектов» и, опять-таки, нажимаем на кнопку «Обновить конфигурацию базы данных».
Вот и все! В итоге мы получили то же самое, что у нас и было изначально только мы заменили конфигурацию поставщика 1С с битой версии на нормальную. И уже в ней попробовать выполнить обновление. И на это раз всё должно получиться!
Специалист компании «Кодерлайн»
Никита Брежницкий
Описание ошибки:
Ошибка возникла в процессе динамического обновления конфиуграции клиент-серверной базы, работающей на MS SQL 2008. Релиз платформы 1С: Предприятие 8.3.9.2033
Найденные решения:
Как уже было отмечено, ошибка возникла в момент выполнения динамического обновления конфигурации базы. После этого попасть с базу не представлялось возможным ни с одного рабочего места. При попытке запустить базу 1С 8 в режиме «Конфигуратор» ошибка «Ошибка формата потока» возникала сразу же:
При попытке запустить базу в режиме «1С: Предприятие» система позволяля выполнить авторизацию пользователя, но затем все-равно возникала ошибка.
Оставалось понятным одно, что изменения все-таки не сохранились.
Т.к. свою работу в момент возникновения ошибки и проблемы вел удаленно на сервере, то подумал, что ошибка возникла только у меня. И, первым делом, попробовал избавиться от нее стандартным действием, которое в последнее время часто помогает (на фоне все более частого возникновения различных «глюков» в работе 1С 8 с базами) — удаление/добавление базы из списка баз, чтобы удалить локальный кэш базы (временные файлы, связанные с базой). Но это не помогло. Уже после этого узнал, что проблема запуска 1С на всех рабочих местах. А это значит, что проблема базы, а не какого-то локального кэша.
В попытке решить проблему были предприняты следующие действия, описание которых в большинстве своем можно встретить на просторах интернета:
— Очистка логово базы на MS SQL
— Установка более новой версии плафтормы 1С: Предприятие.
— Попытка запуска базы с командной /RollbackCfg
В итоге помогла рекомендация в некотором роде крайней меры, т.к. перед выполнением рекомендуется сделать копию базы, а у меня сделать копию уже было не с чего — работоспособность базы была под вопросом. Более раняя копия датировалась прошлой ночью (события развернулись под конец дня).
Помогла рекомендация для SQL-ной базы — удалить все записи в таблице configsave (delete from configsave).
Как это сделать?
Выполняем запрос: delete from [ИмяНашейБазы].[dbo].[ConfigSave]
См скрин:
После этого база стала доступна. Естественно не сохраненные дорабокти конфигурации не сохранились, но это уже было не важно, т.к. работа все базы была восстановлена. И на фоне такой нештатной ситуации, ставящей под вопрос как целостность базы так и ее работу вообще, повторное восстановление несохраненного кода и доработок конфиуграции казалось «лекгим наказанием».
Если данная приведенная информация не помогла устранить «Ошибку формата потока», то предлагается воспользоваться общей инструкцией по устранению данной ошибки: «Ошибка формата потока» в 1С: Предприятие 8. Общее руководство по устранению.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
11-12-2017
Журавлев А.С.
(Сайт www.azhur-c.ru)