Ошибки в 1с и их устранение. Наиболее частые ошибки «1С» и методы их исправления

В начале юридического договора, особенно в ИТ области, обычно есть раздел под названием Термины. В нем объясняется — что значит или включает в себя то или иное ИТ слово.

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

В программистом смысле слово ошибки имеет, наверное, два уточнения..

Что означает термин «ошибка» в программировании и в 1С

Ошибка – это поведение программы, отличающееся от задуманного. Каждый компьютер это уникальный комплекс программ и железа, отличающийся от другого компьютера.

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

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

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

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

Ошибки 1С имеют несколько уровней – во первых сообщения об ошибках 1С могут принадлежать , которая сообщает о невозможности выполнить какие-то действия, которые она должна была выполнить из-за сложившихся обстоятельств.

Второй уровень – это ошибки 1С в программе на языке 1С. Да, платформа выполняет успешно написанную программистом 1С программу, но программа может быть написана некорректно или также не может быть выполнена именно в сложившихся обстоятельствах (на этом компьютере, при таких действиях конкретного пользователя и т.п.).

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

Сообщение об ошибке 1С

1С сообщает об ошибке выполнения программы на языке 1С с помощью типового окошка с текстом ошибки 1С и кнопками ОК и Подробнее.

Причем секрет тут в том, что в этом окошке отображается только краткое сообщение об ошибке 1С, которое зачастую программисту ни о чем не говорит.

Чтобы увидеть полное – нужно нажать на кнопку Подробно. Уже там будет отображена даже строка программы, в которой произошла ошибка 1С. Также можно перейти прямо в конфигуратор к этой строке.

Но пользователи об этом не знают.. И всегда присылают скриншот того первого окошка. Если присылают 🙂

Генерация исключения

Итак, мы рассматриваем ошибку 1С в программировании как способ/возможность программе сообщить пользователю о том, что она не может что-то сделать.

Пример. Нужно открыть файл. Но при открытии возможны ошибки 1С – например у пользователя нет доступа на чтение файла. Мы можем написать так:


Если Файл = Ложь Тогда
Сообщить(«Не удалось открыть файл»);
Иначе
//программа идет дальше, делаем что-то с файлом
КонецЕсли;

В данном примере мы учли, что файл может быть не открыт с помощью конструкции «Если».

Однако у данного примера есть очевидные минусы:

  • Таких вариантов может быть много (не откроется файл, не прочитается файл до конца, пользователь пьян, выключили электричество..)
  • Могут быть неучтенные варианты, про которые программист не подумал.

Поэтому в программировании принято использовать прием под названием «генерировать исключение» — то есть позволить ошибке 1С произойти.

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

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

  • Язык 1С – команда открыть файл
  • Платформа 1С – команда открыть файл
  • Windows API – команда открыть файл
  • Программа на ассемблере – команда открыть файл
  • Опа! Файл не открывается!
  • Программа на ассемблере прервана!
  • Функция Windows API прервана!
  • Платформа 1С выполнение программы прервано!
  • Программа на языке 1С прервана!
  • Пользователь видит сообщение.

Вопрос: кто выводит тогда сообщение об ошибке 1С? Откуда оно берется?

Перехват и обработка исключения

Так мы подходим к следующему приему: перехват исключений, сгенерированных во время выполнения этой цепочки.

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

Пример. Обработаем исключение в языке 1С:
Попытка
Файл = ОткрытьФайл(ИмяФайла);
Строка = Файл.Прочитать();
Исключение
Сообщить(«Файл не удалось открыть: не существует или нет прав доступа»);
КонецПопытки;

В этом примере мы обработали самостоятельно исключение (т.е. исключительную ситуацию или ошибку 1С). Таким образом именно мы сообщаем пользователю о произошедшей «ошибке» — невозможности открыть файл.

Когда мы делаем это самостоятельно – мы можем и не сообщать пользователю ничего, а просто пойти по другому варианту выполнения программы.

Легко заметить, что этот способ можно применять в том числе и на случай, когда в каком-то участке кода может произойти «какая-нибудь» ошибка 1С. Мы ее «ловим» и обрабатываем или сообщаем о ней пользователю.

Что будет, если не перехватить и не обработать ошибку 1С на нашем «верхнем» уровне? Тогда о ней сообщит следующий уровень ниже — платформа 1С. Как она это делает, мы только что говорили и смотрели на скриншоте.

Что будет, если платформа не отработает это? Правильно – это обычно отработает более нижний уровень – Windows. В этом случае программа 1С «упадет», а Windows сообщит – программа совершила недопустимую операцию и будет закрыта.

Что будет, если Windows не отработает это? Вы наверняка это видели – компьютер зависнет или перезагрузится.

Вложенный перехват и транзакции

Как Вы думаете, какие сообщения увидит пользователь при выполнении данного примера?

Попытка
Попытка
ф = 1/0;
Исключение
Сообщить("Конкретная ошибка");
КонецПопытки;
Исключение
Сообщить("Общая ошибка");
КонецПопытки;

Верно! Сработает внутренний обработчик и сообщит «Конкретная ошибка», а внешний не сработает.

Однако с точки зрения программы здесь произошла ошибка 1С, хотя она и была отработана. Где-то там у себя в мозгах платформа запомнила – здесь была ошибка 1С.

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

НачатьТранзакцию();
//создали справочник 1, но на самом деле он не записался в базу данных
Спр1.Записать();
//создали справочник 2, но на самом деле он не записался в базу данных
Спр2.Записать();
ЗафиксироватьТранзакцию();
//эта команда записала в базу данных все, что было сделано начиная с ‘НачатьТранзакцию’

Функция ЗафиксироватьТранзакцию() может быть выполнена только в случае, если с момента вызова НачатьТранзакцию() не произошло ни одной ошибки 1С.

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

Непреднамеренные ошибки 1С

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

В случае, если не удается понять, почему и когда такая ошибка 1С возникает, Вы можете использовать Попытка/Исключение, чтобы обработать ошибку 1С.

Также Попытка/Исключение можно использовать в случае, когда Вы хотели бы создать гарантированно безошибочный участок программы. Вы сможете быть уверены, что если даже ошибка 1С произойдет, то Вы ее отлавливаете и отрабатываете специальным образом.

Преднамеренные ошибки 1С

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

Собственный вызов ошибки 1С

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

Это можно сделать вот так:

Функция СделатьЧтото(Параметр)
Если Параметр = Неопределено Тогда
ВызватьИсключение «Ошибка в функции СделатьЧтото. Не указан параметр»;
КонецЕсли;
КонецФункции

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

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

Более корректные способы сообщения об ошибке 1С

Обычно когда требуется сообщить что-то пользователю, используются .

Однако в типовых конфигурациях, таких как Бухгалтерия, Управление торговлей, УПП – есть специальная функция:
ОбщегоНазначения.СообщитьОбОшибке(«Текст»);

Ее плюсы:

  • Форма сообщения зависит от запущенного клиента
  • Записывает сведения в журнал регистрации
  • В некоторых конфигурациях реализована более красивая форма сообщения об ошибке 1С.

Анализ ошибок

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

В конфигураторе выберите пункт меню Администрирование/Журнал регистрации.

Нажмите кнопку Отбор (как на картинке). Установите отбор событий только по ошибкам 1С.

Журнал отобразит список происходивших ошибок. Кликните на строчку, чтобы рассмотреть конкретное сообщение подробнее.

Случаются ситуации, когда при работе с 1С 8.3 или 8.2 у вас появляется ошибка «Ошибка СУБД: Внутренняя ошибка компоненты dbeng8». Конечно же, описание ее не настолько информативно, как бы нам этого хотелось.

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

Обратите внимание, что прежде, чем приступать к ниже описанным методам, обязательно . Не стоит создавать себе лишних проблем.

В подобных случаях, как и с исправлением чего угодно, всегда лучше начинать от простого к сложному. Поэтому, первым делом нужно установить самую свежую версию платформы 1С. Если же вы уже используете ее, либо по каким-то соображениям не хотите обновлять, можно просто заменить библиотеку «dbeng8.dll», взяв его из каталога с другой установленной программой, как на вашем ПК, так и на другом.

В нашем случае она расположена в каталоге «D:\Program Files (x86)\1cv8\8.3.9.2170\bin», так как именно в нем установлена сама платформа.

Тестирование и исправление в 1С

Зачастую способ с обновлением платформы помогает не всегда, так как ошибка кроется в самой БД. В таком случае, с очень большой вероятностью, вам поможет .

Средствами конфигуратора

Решение проблемы данным способом производится из конфигуратора. Перейдите в меню «Администрирование» и выберите пункт «Тестирование и исправление…».

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

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

Утилита «chdbfl.exe»

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

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

Теперь откроем саму и в поле «Имя файла БД» выберем файл «1Cv8.1CD» из того каталога, адрес которого только что выяснили.

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

Эти и некоторые другие способы рассмотрены также в этом видео:

Ошибка формата потока 1С Предприятие — одна из самых распространенных ошибок, возникающих при работе с 1С программами. Из публикации вы узнаете, как исправляется ошибка формата потока 1С Предприятие 8.3 без обращения к администраторам или партнерам 1С, проверенными на практике способами.

Работаешь в программе 1С, все замечательно, а тут неизвестно из-за чего появилась небольшая форма с уведомлением «Ошибка формата потока» и с вариантами «Завершить работу» в программе или «Перезапустить» программу. Перезапуск, естественно, ни к чему не приводит, ошибка появляется снова…

…из публикации вы узнаете:

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

Почему возникает ошибка формата потока 1С Предприятие 8.3

Что бы выяснить причины появления ошибки формата потока 1С 8.3 необходимо рассмотреть область данных 1С платформы. Тут хотелось бы отметить, что платформа 1С во время работы использует:

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

Причем, платформа 1С Предприятие использует указанные ресурсы постоянно.

А теперь представьте, что произошел скачек электричества, поэтому часть сетевого пакета исказилась и была записана в некорректной форме или отключили электричество и данные, которые писались в кеш 1С записались частично, что в этом случае произойдет?

Первым делом необходимо сделать копию информационной базы 1С на случай порчи рабочей базы при её исправлении.

Эффективный способ исправить ошибку формата потока 1С Предприятие 8.3 для файловых баз данных 1С

Если вы работая в файловой версии 1С Предприятие , стали жертвой этой напасти, то хочу предложить способ от её избавления, работающий в 78% случаев.

  • Для этого необходимо зайти и удалить все файлы и папки, КРОМЕ ФАЙЛА ДАННЫХ 1Cv8.CD . Операция требует сноровки, поэтому будьте осторожны, не переборщите с удалением! 🙂

Путь до каталога базы данных 1С Предприятие 8.3 вы можете посмотреть при запуске программы — он будет расположен внизу окна запуска 1С Предприятие 8.3.

По поводу удаленных файлов не переживайте — это все служебные файлы, которые будут созданы заново в правильном формате при следующем запуске 1С Предприятие 8.3.

  • Если предложенный способ не помог, то для исправления файловых баз в 1С Предприятие 8.3 предусмотрена утилита chdbfl.exe. Проверьте структуру вашей базы, воспользовавшись этой утилитой.

Ошибка формата потока 1С 8.3 не исчезла? Плохо! Читаем дальше.

Стандартные шаги по исправлению ошибки формата потока 1С Предприятие 8.3

На эти темы были написаны подробные публикации, поэтому тут мне добавить нечего. Читайте статьи и делайте всё в точности по написанному.

Если после проделанных с базой манипуляций «ошибка формата потока» все равно появляется, в этом случае пробуйте ещё один проверенный способ:

  • выгрузите вашу базу с файл *.dt, создайте пустую базу 1С и загрузите в неё выгруженный до этого файл *.dt. В выполнении этой операции вам поможет статья про .

На этом шаге исправить ошибку формата потока 1С Предприятие 8.3 получается в 94% случаев. Но что делать есть не спало???

Нестандартные способы исправить ошибку формата потока 1С Предприятие 8.3

До этого были проделаны все стандартные операции по исправлению данной ошибки, и если до этого момента ошибка не устранена, значит придется заняться «творчеством». Ещё этот процесс называют «танцами с бубнами» или «шаманством»… Поэтому, если до этого вы не «танцевали», то ошибка формата потока 1С Предприятие 8.3 может вам составить отличную пару. Итак, продолжим:

  • Пробуйте загрузить файл *.dt в новой базе данных, созданной на другом компьютере . Этим вы исключите вероятность некорректно работающего железа или программ компьютера, где находится база.
  • Удалите (именно УДАЛИТЕ через Установку и удаление программ) платформу 1С и установите заново, желательно новейшую версию. Исключаем некорректно работающие исполняемые файлы платформы, которые могли быть подпорчены вирусами или «посыпавшимися» секторами жесткого диска или другими способами.
  • Обновите конфигурацию на следующий релиз или загрузите текущую конфигурацию из файла *.cf с полным замещением объектов.
  • Отключите брандмауэр и антивирусы. Существует вероятность, что исполняемый файл был замечен в подозрительной активности антивирусом и помещен в карантин или остался под жестким контролем с блокировкой «опасных» действий. В любом случае — исключаем вариант карантина антивирусов.
  • Удалите временные файлы на компьютере. Они находятся в нескольких местах:
  1. В профиле пользователя, для поиска введите %Temp% в адресной строке проводника.
  2. В папке C:\Windows\Temp
  3. Иногда на диске C:\Temp
  • Ещё один способ был однажды применен, когда ничто не помогало — создали полный начальный образ базы данных и потом отвязали его от РИБ, сделав независимым. Получили ту же базу, пропустив начальную через механизмы РИБ (как через мясорубку 🙂) .

Ещё пара способов исправить ошибку формата потока 1С Предприятие 8.3

Есть ещё пара способов с хакерским подходом:

  • загрузить файл *.dt в клиент-серверную базу данных (если база с ошибкой формата потока клиент-серверная, то делаем на ней, предварительно сделав копию) и очистить файл от всех записей в таблице «configsave » через программную консоль.
  • в утилите Tool_1CD есть проверка формата потока. Скачайте эту утилиту и проверяйте поток.

Описанные в публикации способы исправления ошибки формата потока были проверены на практике — работают!

Надеюсь, что ничего не забыл. Если вдруг всплывет в памяти что-то ещё, то обязательно дополню публикацию.

Всем читателям отличного настроения! Пусть ошибка формата потока вас обходит стороной!!! 😉

Если вам что-то не понятно в вопросе как исправляется ошибка формата потока 1С:Предприятие 8.3, то вы можете задать вопрос в комментариях к статье или на .
Что бы не потерять статью в просторах интернета — сохраните её к себе в социальные сети или в закладки.


Ошибка формата потока 1С — методика исправления

Описание ошибки формата потока в 1С 8.3

Ошибка формата потока в 1С встречается наиболее часто у всех пользователей. И обычно в таких случаях объяснить её появление вызывает затруднение – вроде бы работали в 1С, всё как обычно. В очередной раз запуская 1С, мы получаем вот такое сообщение:

Ни одна из кнопок Ошибки формата потока не позволяет запустить базу и продолжить работу. Именно потому, что эта ошибка самая популярная и частая, мы сперва объясним её причины, а уже затем перейдем к рассмотрению методов её решения.

Причины появления ошибки формата потока в 1С 8.3

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

Способы решения ошибки формата потока в 1С 8.3

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

Для быстрого создания резервной копии откройте папку с базой (как это делается в способе №1) и скопируйте её содержимое в любое другое место. Проводите работы по исправлению ошибок только имея резервную копию!
1.
2.
3.
4.
5.
6.

Очистка кэша базы 1С

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

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

Очистка кэша 1С

Следующий способ – очистка кэша 1С: Предприятие. Для этого нужно открыть папки, где они хранятся. На Windows 7 и выше их две:

C:\Users\Username\AppData\Roaming\1C

C:\Users\Username\AppData\Local\1C

Следует удалить папку 1cv8 в обоих из них:

После очистки кэша попробуйте зайти в базу ещё раз. Ошибка осталась? Попробуйте следующий способ.

Исправление базы утилитой chdbfl.exe

Возможно, ошибка формата потока может быть связана с ошибками в самой базе. Для этого её стоит проверить с помощью специальной программы chdbfl.exe, которая идёт в комплекте с 1С: Предприятие. Для этого перейдите в папку с программой (чаще всего это C:\Program Files\1cv8\8.3.XX.YYY\bin\) и найдите файлик chdbfl.exe:

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

После этого поставьте галочку Исправлять обнаруженные ошибки и нажмите Выполнить. Дождитесь окончания проверки и попробуйте запустить базу. Ошибка осталась? Попробуйте следующий способ.

Тестирование и исправление базы через Конфигуратор

Следующим способом решения ошибки формата потока в 1С является Тестирование и исправление базы, доступные из Конфигуратора.

Запустите 1С: Предприятие через режим Конфигуратор:

В открывшемся Конфигураторе выберите Администрирование – Тестирование и Исправление:

В открывшемся окне установите настройки, как на рисунке ниже, и нажмите Выполнить.

Дождитесь окончания всех процедур. Закройте Конфигуратор и попробуйте зайти в базу. Ошибка осталась? Попробуйте следующий способ.

Выгрузка и загрузка базы через dt

Данный способ может помочь устранить такие ошибки, которые не устраняются п.3 и п.4 данной статьи. Зайдите в базу через режим Конфигуратор, как в способе выше. Выберите Администрирование – Выгрузить информационную базу:

В открывшемся окне выберите место расположения выгрузки. Оно может быть любым, главное – запомнить это место.

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

Откройте созданную базу через Конфигуратор и нажмите Администрирование – Загрузить информационную базу. Укажите в открывшемся окне тот файл выгрузки, который вы сформировали только что. Дождитесь окончания загрузки, закройте Конфигуратор и попробуйте зайти в новую загруженную базу. Ошибка осталась? Попробуйте следующий способ.

Продвинутые способы решения ошибки формата данных 1С

Подробное рассмотрение продвинутых способов решения ошибки формата данных в 1С выходит за рамки данной статьи, поскольку для их использования нужно обладать теми или иными знаниями в области обращения с компьютером, поэтому инструкции и пометки по каждому из них были бы довольно объёмными.

Ограничимся их перечислением:
1. Выгрузка и загрузка данных между неработающей и пустой базой с помощью обработки «Выгрузка и загрузка данных XML».
2. Различные версии используемых 1С, работающих в одной базе через сеть (подробнее см.) необходимо привести в порядок.
3. Отключение протокола IPv6 через реестр Windows.
4. Переустановка или обновление 1С: Предприятие.
5. Перенос базы на другой компьютер и попытка запустить её там.
6. Отключение или удаление фаерволов и/или антивирусов.
7. Проверка формата потока с помощью утилиты Tool_1CD
8. Обновите конфигурацию с помощью.cf файла.

Проблема «Ошибка формата потока в 1С 8.3» не решена? Получите бесплатную консультацию от наших специалистов по решению данной проблемы!

В этой статье будут объяснены причины возникновения, разновидности и способы устранения
«Ошибки формата потока» 1С.

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

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

В этой статье будут объяснены причины возникновения, разновидности и способы устранения «Ошибки формата потока» 1С.

Почему 1С 8 пишет «Ошибки формата потока»?

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

Но что произойдет, если файл “кэша” будет записан с ошибкой/ошибками, в результате неправильного завершения сеанса работы, либо скачка напряжения, либо сбоя сети (для клиент-серверного варианта работы 1С)? При следующей попытке обращения к “кэшу” 1С не сможет прочитать файл и появится окно “Ошибка формата потока”. “Битый кэш” является самой частой причиной возникновения этой ошибки.

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

Виды ошибки формата потока

Условно ошибку формата потока 1С можно поделить на 2 вида:

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

В зависимости от вида ошибки можно выбрать наиболее подходящий вариант ее устранения. Но можно использовать и все способы по очереди, пока один из них не сработает. Способы не нанесут вреда вашей базе 1С 8. Впрочем, если действовать как настоящий профессионал – стоит сначала сделать бэкап, а уже потом бороться с “Ошибкой формата потока”.

Как устранить “Ошибку формата потока”?

Рассмотрим ТОП способов решения:

1. Почистить кэш 1С

Данный способ подробно был рассмотрен в нашей статье “ ”. Вкратце напомним. Для удаления файлов кэша вручную необходимо найти папки, где кэш хранится. Для операционных систем Win7 и выше временные файлы хранятся по адресу C:\Users\Username\AppData\Roaming\1C и C:\Users\Username\AppData\Local\1C в папках, начинающихся с «1cv8». В Windows XP, в папке пользователя по адресу Local Settings\Application Data\1C\. Если папка AppData не видна – настройте видимость скрытых папок. Ниже на рисунке показано, как выглядят файлы кэша – папки с длинными непонятными именами (в нашем случае файл всего один). Для очистки кэша нужно удалить эти папки.

Важно! Удалять папки можно только тогда, когда завершены процессы работы с 1С:Предприятие.

2. Запустить тестирование и исправление 1С

В режиме конфигуратора нужно кликнуть по пункту меню “Администрирование” и затем “Тестирование и исправление”.

Должны быть отмечены первые два пункта “реиндексация таблиц информационной базы” и “проверка логической целостности информационной базы”. Нажмите кнопку “Выполнить”. Система сама проверит базу, найдет ошибки, исправит их и предоставим вам отчет о проделанной работе. При необходимости отметьте также третий пункт “проверка ссылочной целостности информационной базы”.

3. Запуск«chdbfl.exe»

Если нет возможности зайти в конфигуратор, тогда запустите программу «chdbfl.exe», которая находится: «C:\Program Files (x86)\1cv8\8.3……\bin» . Выберите файл Базы Данных, отметьте галочкой “Исправлять обнаруженные ошибки” и нажмите кнопку “Выполнить”. Дальше система все сделает за вас. Система сама проверит базу, найдет ошибки и исправит их. Во время работы программы «chdbfl.exe» не должно быть активных сеансов работы с 1С.

4. Выгрузить и загрузить информационную базу в.dt

В режиме конфигуратора выберите пункт меню “Администрирование” и кликните “Выгрузить информационную базу”. После этого выберите место куда хотите сохранить файл базы (.dt), задайте файлу имя и нажмите “Сохранить”.

После этого создайте новую пустую базу у себя на компьютере (либо на сервере). Зайдите в конфигуратор новой базы, нажмите “Администрирование”, затем “Загрузить информационную базу”. Выберите подготовленный ранее файл и нажмите “Открыть”.


5. Выгрузить и загрузить данные XML.

Данный способ может повлечь потерю данных, поэтому его рекомендуется использовать только опытным пользователям. Способ схож с предыдущим и заключается в том, что сначала база выгружается, (только не в.dt, как в предыдущем способе, а в специальный формат.XML). Затем база загружается обратно. Делается это с помощью встроенной обработки “Выгрузка и загрузка данных XML”.


6.Обновление 1С

Причиной рассматриваемой ошибки может стать наличие активных сеансов пользователей, работающих в разных версиях . Например, в базе есть активный сеанс пользователя с платформой 1С 8.3.5…., а пытается подключиться другой, с версией 8.3.4…. Если на компьютере установлены несколько версий – убедитесь, что в окне редактирования информационной базы выбрана нужная вам “правильная” версия.


7. Другие способы.

В 99% случаев вышеописанные способы борьбы с “Ошибкой формата потока” эффективно сделают свою работу и ошибка “уйдет”. В оставшемся 1% придется применять более сложную диагностику, иногда выходящую за рамки 1С, например: почистить временные файлы компьютера, а не только кэш 1С; проверить жесткий диск на битые сектора при помощи утилиты “chkdsk.exe”; проверить компьютер антивирусом. Можно даже попробовать запустить базу 1С на другом компьютере и таким образом локализовать проблему, убедившись, что ошибка кроется именно в информационной базе, а не в железе и не в Операционной Системе.

Данная статья создана в помощь столкнувшимся с ошибкой 1С “Ошибка формата потока”, здесь были рассмотрены и объяснены причины ее появления, её условные виды и способы устранения. Ошибка выглядит страшно и непонятно из-за своей неопределенности, но, как видим, устранить данную ошибку по силам каждому.