1с ошибка данных 5
Наверное, редко можно встретить человека, который часто работает с программой 1С 8.3 и не встречался с окошком с надписью подобного рода: «Неверный формат хранилища данных ‘file://C:/Users/Alex1/AppData/Local/1C/1cv8/058t1m89-295c-47c4-8922-f67f568rf70e/Config/RuntimeCacheStorage’ «.
Чаще всего такая ошибка появляется при обновлении конфигурации, при открытии обработки, в конфигураторе и в других случаях. Причина кроется либо в нарушении целостности структуры информационной базы, либо — чаще — в кеше 1С.
- очистка кеша;
- исправление структуры базы данных;
- перенос данных в чистую, не «битую» информационную базу.
Очистка кеша 1С
Порой достаточно удалить строку с наименованием информационной базы из списка, а затем снова добавить. При этом создастся новая, чистая папка для кеша. Часто таким способом пользоваться не рекомендую, так как папка со старым кешем остается и засоряет диск.
Исправление структуры базы данных
На данном этапе в первую очередь мы должны испробовать штатные механизмы тестирования и исправления базы. Это относится как к запуску соответствующего пункта в конфигураторе, так и запуску файла chdbfl.exe.
Но практика показывает, что эти механизмы не всегда помогают.
Получите понятные самоучители по 1С бесплатно:
Тогда поступаем следующим образом. Разворачиваем чистую информационную базу. Цель – получить файл конфигурации (с расширением cf).
Затем снимаем неработающую конфигурацию с поддержки и делаем объединение с сохраненным файлом cf. Если требуется, объединяем с восстановлением поддержки. Не забудьте перед этим действием сделать резервную копию!
Важно! При объединении с чистой типовой конфигурацией внесенные ранее изменения в Вашей конфигурации могут пропасть. Нужно будет добавить их вновь. Будьте внимательны!
Перенос данных в чистую, не «битую» информационную базу
Создаем чистую информационную базу того же релиза, что и «битая», и с помощью обработки «Выгрузка Загрузка данных XML«, которую можно найти на диске ИТС, переносим данные в наверняка целостную базу. Здесь опять же повторюсь, что структуры баз должны совпадать, и если в Вашей базе есть структурные изменения, их сначала нужно добавить в чистую.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Каждый, кто работает с 1С:Предприятие в любой конфигурации хотя бы раз видел перед глазами окно с ошибкой «Ошибка формата потока».
Данное окно входит в ТОП-3 самых распространенных ошибок 1С:Предприятие. Оно неприятно из-за своей не информативности. Непонятно: где, в чем ошибка? Естественной реакцией будет нажатие кнопки «Перезапустить», но с высокой вероятностью можно утверждать, что перезапуск проблему не устранит, и пользователь снова увидит данное окно.
В этой статье будут объяснены причины возникновения, разновидности и способы устранения «Ошибки формата потока» 1С.
Почему 1С 8 пишет «Ошибки формата потока»?
Программа 1С:Предприятие создана таким образом, что в процессе работы постоянно стремится оптимизировать скорость выполнения операций. С этой целью на компьютере пользователя создается «кэш», в котором хранится часто используемая информация, например: расположение и формы окон, служебные данные пользователя, настройки отборов, шрифтов и т.д.
Кэширование позволяет сократить количество обращений к серверу и, тем самым, повысить скорость работы 1С:Предприятие.
Но что произойдет, если файл “кэша” будет записан с ошибкой/ошибками, в результате неправильного завершения сеанса работы, либо скачка напряжения, либо сбоя сети (для клиент-серверного варианта работы 1С)? При следующей попытке обращения к “кэшу” 1С не сможет прочитать файл и появится окно “Ошибка формата потока”. “Битый кэш” является самой частой причиной возникновения этой ошибки.
Кроме некорректно записанного кэша могут быть также некорректно записаны документы (или справочники, или любой другой объект) в информационную базу и это тоже может стать причиной возникновения рассматриваемой в данной статье ошибки.
Виды ошибки формата потока
Условно ошибку формата потока 1С можно поделить на 2 вида:
- Первый вид – это ошибка, возникающая при старте 1С. Она является результатом некорректного завершения сеанса работы, отключения электричества; либо появляется после обновления 1С. В данном случае ошибку нужно искать в кэше.
- Второй вид – это ошибка, возникающая в процессе работы с 1С,например, при открытии справочника, или при проведении документа, или при формировании отчета или при обновлении. В таком случае ошибку нужно искать в информационной базе.
В зависимости от вида ошибки можно выбрать наиболее подходящий вариант ее устранения. Но можно использовать и все способы по очереди, пока один из них не сработает. Способы не нанесут вреда вашей базе 1С 8. Впрочем, если действовать как настоящий профессионал – стоит сначала сделать бэкап, а уже потом бороться с “Ошибкой формата потока”.
Как устранить “Ошибку формата потока”?
Рассмотрим ТОП способов решения :
1. Почистить кэш 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С:Предприятие.
Что делать?
Варианты действий:
- Восстановить информационную базу из резервной копии (если есть).
- Использовать встроенную утилиту для проверки целостности — chdbfl.exe.
- Выполнить тестирование и исправление базы через Конфигуратор.
- Создать новую пустую базу и загрузить сформированный dt-файл.
Рассмотрим каждый из вариантов подробнее.
Рекомендация : перед любыми действиями сделайте резервную копию базы и убедитесь, что отсутствуют активные подключения пользователей.
I. Восстановление из резервной копии
Откройте Конфигуратор. Через меню « Администрирование — Загрузить информационную базу… » выполните восстановление рабочей резервной копии.
II. Использование утилиты chdbfl.exe
- Найдите папку с установленной платформой 1С — например, « C:\Program Files (x86)\1cv8\8.x.xx.xxxx », где 8.x.xx.xxxx - номер релиза платформы. Или проверьте в свойствах ярлыка запуска 1С, значение «Рабочая папка».
- Откройте приложение из каталога bin, где находится искомый файл.
- Выберите файл 1Cv8.1CD, установите признак « Исправлять обнаруженные ошибки » и нажмите на кнопку « Выполнить ».
По окончанию проверки программа покажет результаты, а при возможности — исправит обнаруженные ошибки.
III. Тестирование и исправление
- Откройте Конфигуратор.
- Выберите пункт « Тестирование и исправление… ».
- В блоке « Проверки и режимы »: — если база большая, проверьте последовательно операции; если малого размера, то все разом:
— Проверка логической целостности;
— Проверка ссылочной целостности;
- Установите параметр « Тестирование и исправление ».
При наличии ссылок на несуществующие объекты программа по умолчанию предлагает ничего не изменять.
Рекомендация : проверьте для начала режим ссылок «Не изменять». Программа выведет найденные ссылки, и после этого примете решение, очищать их или создавать.
IV. Выгрузить dt-файл и создать новую базу
Пункт аналогичен варианту №1 с тем различием, что вы восстанавливаете не резервную копию, а сначала выгружаете dt-файл.
- Откройте Конфигуратор для ИБ, где наблюдаются ошибки.
- Через меню « Администрирование — Выгрузить информационную базу… » выполните выгрузку базы в dt-файл.
- Создайте новую информационную базу и войдите в Конфигуратор.
- Через меню « Администрирование — Загрузить информационную базу… » выполните загрузку копии базы.
V. Дополнительные действия
При подозрениях на ошибки жёсткого диска, на котором располагается информационная база:
- скопируйте каталог базы на другой физический диск;
- удалите все файлы и папки, кроме файла 1Cv8.1CD;
- войдите в базу с нового расположения.
VI. Нестандартные ситуации
Когда один пользователь входит в базу 1С и работает без ошибок, а у другого — сбой. В этом случае выполните очистку кэша на рабочем месте, где возникает ошибка. Подробнее здесь .
В других случаях ошибка может скрываться в платформе 1С. Поэтому, проверьте обновление и переустановите платформу на новый релиз, одновременно удалив устаревшие версии.
⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.
В информационных базах на платформе 1С могут возникнуть множество различных ошибок:
нарушение логической/физической целостности базы, ошибки пользователей, «кривой» код разработчика и многое другое.
Причин может быть множество: отключили свет, и не было источника бесперебойного питания, или вечер пятницы удался, и пользователь уже и не может вспомнить в понедельник, что он натворил такого.
Во-первых, стоит задать несколько уточняющих вопросов пользователю:
1) Релизы платформы/конфигурации.
4) Возникает ли если запустить 1с с другого компьютера/от другого пользователя? Это даст нам пищу для размышлений – сможет ли помочь очистка кэша, настройка прав, или очистка настроек пользователя.
Теперь немного о самих ошибках и том как их решать.
Общее:
Часть ошибок возникает при использовании нелицензионного ПО (windows, 1C и т.д.).
Распространенный пример – ломаная платформа. Один из патчей взламывает конкретную версию платформы, поэтому после установки новой версии платформы и попытке зайти в базу можно увидеть окно «Не обнаружено свободной лицензии».
Если Вы встретили ошибку в первый раз - возможно, кто-то уже ее встречал -
поищите в google, возможно кто-то уже с этим сталкивался и решил проблему, и Вы не потратите лишних пару часов своего времени.
Релиз конфигураций должен быть актуальным (в первую очередь для конфигураций из которых сдается регламентированная отчетность), неспроста на линии консультаций практически всегда предлагают вначале обновиться, а потом уже смотреть дальше.
Актуальный релиз платформы - у каждой конфигурации написано, какой релиз платформы рекомендован для работы с этой конфигурацией.
Технологический журнал позволяет протоколировать все события 1С:Предприятия (или часть, используя фильтр).
Про него можно прочитать здесь и здесь.
. ВАЖНО
Перед любыми действиями с базой - сделать архивную копию!
Если база не открывается в конфигураторе - скопировать папку с базой и выполнять все операции на копии!
1) База вообще не открывается ни в пользовательском режиме, ни в конфигураторе.
-
Самое быстрое, что можно сделать - очистить временные файлы (удалить базу из списка баз и подключить заново)
- Также можно попытаться зайти в базу от другого пользователя.
- Если база файловая, то стоит запустить утилиту для тестирования физической целостности базы chdbfl. Она находится в папке:
C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe
- Если база sql-ная то тестирование средствами sql.
2) Если база при запуске уходит в дамп.
- Откройте свойства экрана. Это можно сделать через Панель управления, или просто щелкнув правой кнопкой мыши по любому месту рабочего стола, свободному от окон и значков, и выбрав пункт контекстного меню «Свойства».
- В открывшемся окне настройки дисплея перейдите на закладку «Параметры» и нажмите кнопку «Дополнительно».
- В открывшемся окне свойств видеокарты перейдите на вкладку «Диагностика».
- Передвиньте движок «Ускорение» в крайнюю левую позицию («нет») и нажмите «Применить» или «Ок». Аппаратное ускорение отключено. Изменения вступят в силу после перезагрузки системы.
- Откройте Панель управления (Пуск — Панель управления).
- Найдите и откройте элемент «Экран».
- В левой части открывшегося окна щелкните по ссылке «Настройка параметров экрана».
- В открывшемся окне нажмите на ссылку «Дополнительные параметры».
- Перейдите на вкладку «Диагностика» и нажмите кнопку «Изменить параметры».
- В открывшемся окне передвиньте движок в крайнее левое положение («нет») и нажмите «Ок». Если UAC включен, придется подтвердить, что изменения санкционированы пользователем. Аппаратное ускорение отключено. Изменения вступят в силу после перезагрузки системы.
В Windows 7 в некоторых случаях кнопка «Изменить параметры» будет неактивна. В этом случае отключить аппаратное ускорение невозможно, так как видеокарта и ее драйвер не поддерживают манипуляции аппаратным ускорением.
4) При каком-то действии выкидывает на код в конфигуратор.
- Для проверки стоит очистить кэш.
- Если не помогло то скорей всего ошибка в коде - особенно актуально для нетиповых и самописных конфигураций, но встречается иногда и в типовых.
Если конфигурация нетиповая, то тут либо обновление прошло некорректно или разработчик дорабатывавший конфигурацию не предусмотрел все возможности пользовательских ошибок – защита от дурака (если это возможно!).
Если типовая, то возможно ошибка в релизе.
В любом случае стоит пробежать в отладчике и посмотреть что не так.
5) Под одним пользователем дает что-то сделать, под другим нет.
- Настройки прав пользователей.
- Настройки пользователя.
- Очистка кэша.
6) С одного ПК заходит, с другого нет.
- Проверить в проводнике видит ли базу – может к папке с базой не предоставлен общий доступ.
- Очистка кэша.
- Зайти под другим пользователем.
7) Я ничего не делал/делала но у меня все сломалось
- Если смогут подсказать что именно «не делали» и когда, то можно воспользоваться
8) Недостаточно памяти.
Был у меня случай, пришел клиент, говорит, при закрытии месяца вылетает ошибка "Недостаточно памяти". Взялся я за эту проблему. Думал, что легко, сначала добавил оперативки - ошибка. Было 2 гигабайта, стало 4, а все равно 1с-ке мало. Размер файла подкачки менял - ошибка, переустановка системы (поставил Windows 7) дало только временный результат, где-то на неделю. Перепробовал все. Спустя некоторое время решение было найдено.
Решение
На клиентском компе запустить командную строку от имени администратора, прописать там следующее:
BCDEdit /set increaseuserva xxxx - вместо хххх пишите объем виртуального адресного пространства в мегабайтах, т.е. сколько нужно памяти под работу приложений. По умолчанию 2 гига. Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС. Я выбрал 3000 (т.е. CDEdit /set increaseuserva 3000). Однако система может подглючивать. Особенно, если у вас 2 гига оперативки, как у меня. Это для ОС семейства Windows Vista, 7, Windows 2008.
Для Windows XP \ Windows 2003 пишем
/3GB /userva=xxxx (xxxx в МБ в диапазоне 2048 - 3072) в файле boot.ini, рекомендуемый максимум значений userva 2900–3030.
9) Элементы форм налезают друг на друга и имеют неправильное расположение.
10) Ошибка СУБД Внутренняя ошибка компоненты dbeng8
- Ошибка связана с различием кода разных версий платформы, когда пользователи пытаются использовать файловый вариант. Для клиент-серверного варианта при запуске происходит контроль и работа с разными версиями платформы в принципе невозможна.
Решение: обновиться до актуального релиза на всех рабочих местах.
Если не помогло, тогда делаем следующее:
-
Тестирование и исправление
11) Ошибка в платформе 8.3.4.428
- В версии 8.3.4.428 платформы "1С:Предприятие" обнаружена критичная ошибка, возникающая при реструктуризации данных. Данная ошибка локализована и будет исправлена в следующей версии платформы.
12) Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Could not continue scan with NOLOCK due to data movement.
HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=3, Severity=C, native=601, line=1
Конечно список далеко не полный, так что буду рад, если его дополнят в комментариях.
Специальные предложения
В случае, когда база открывается только в Конфигураторе, может помочь выгрузка данных с последующей загрузкой в новую "нулевую" базу. Не панацея, конечно, но иногда выручало.
При любой непонятной фигне чистить кэш потом разбираться.
У меня пользователи уже научены что сначала давят Сервис\Очистить кэш и перезапустить программу а потом уже звонить и жаловаться.
Хорошая статья! По первому пункту могу добавить. Если не получилось ничего из перечисленного, можно воспользоваться программкой Tool_1CD и с ее помощью удалить записи в таблице configsave. Только это мне и помогло в свое время.
1 пункт. Как же можно выгрузить в *.dt, если по условию не загружается конфигуратор?
8. пункт это не решение. Увеличение до 3Гб памяти под процесс зачастую не помогает. Решение - это 64-разряда для клиента и для сервера.
Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС.
Строго говоря, 4 гигабайта это адресное пространство 32-разрядных систем, а не "выделяется". Из которых MS еще что-то резервирует под аппаратную часть, плюс еще ограничивает каждый процесс 2 Гигами.
9. Проще сделать "Восстановить положение окна Alt-Shift-R"
Многократно повторенный совет использовать chdbfl.exe довольно сомнителен. Утилита известна тем, что зачастую добивает базу окончательно.
(6)(9) - присоединяюсь. С программными лицензиями проблемы возникают гораздо чаще.
Статья классная, я плюсанул. Одно но "Часть ошибок возникает при использовании нелицензионного ПО (windows, 1C и т.д.)." - очень сомнительное предложение.
Terve!R; user705520_admin; roman8115; virtmon; Sophus; Bukaska; JesteR; buganov; for-elenak; plmshka; Sergafan10; + 11 – 1 Ответить
(9) Aspire1C,
Скорее это относится к карявым патчам в которых "что-то не учли"
(0)
Статья хорошая, хотя у нас с одним клиентом, в клиент-серверном варианте, возникла ошибка, которая не была описана ни где в интернете (по крайней мере я не нашёл):
При попытки открыть форму справочника или сделать запрос хотя бы к одному его полю - рабочий сервер 1С 8.3 падает и перезапускается. Тут ни чиска кешев, ни dt, ни чекдб в скуле, ни выгрузка-загрузка через файловую базу (с проверкой chdbfl и тестированием-исправлением) не помогают :-) Хотя в файловом варианте всё работало отлично.
Там учитывать нечего.
Но из за повального спроса, их часто снабжают дополнительным потребительским сервисом - троянами.
Если в процессах висит что-то типа rundll32 C:\windows\temp\pagefile.sys - это вот оно.
(26) Aspire1C, да, часто это ошибка, возникшая вследствие незнания администратором специфики механизмов лицензирования 1С/HASP.
Это не статья. Это перечень условно известных проблем с не всегда корректными рекомендациями по их решению.
Далее по пунктам:
0) Кэш (и Local, и Roaming) чистим в первую очередь. И при возможности перезапускаем серверы приложения и СУБД.
1) Правильное решение - технологический журнал.
2) Приведена только одна из возможных причин, к тому же не самая частая. (проверьте в системном логе ошибок GDI). И даже в этом случае лучшее решение - обновлять драйвера видео. Наблюдается это только со старыми дровами встроенного видео Intel. А вообще правильное решение - технологический журнал.
3) Правильное решение - технологический журнал
4) Не нужно гадать - сразу идем в отладчик.
5) Верно.
6) Скорее всего, это какая-то проблема связи либо авторизации. В случае с файловой базой первичная рекомендация верная, а при клиент-серверной помогут всяческие пинги, телнеты, анализ системных логов и опять же - технологический журнал.
7) Не забыть написать служебку о саботаже рабочего процесса пользователем. В следующий раз пользователь будет помнить, что он делал. А так да, ЖР, минимальный ТЖ (excp, excpcntx) и логи.
8) Вообще-то в современных конфигурациях механизмы, требовательные к памяти, обычно выполняются на сервере. Может помочь оптимизация проблемных запросов. А в некоторых случаях поможет только сервер x64. Ну и о фрагментации адресного пространства памяти не забываем, спасет плановый перезапуск рабочих процессов.
9) Не факт. В УФ может быть виноват браузер, в ОФ - кривые привязки элементов формы.
10) Тоже не факт. Сбойная база к такой ошибке может приводить.
11) Версия платформы отозвана. Решение - только поднимать базу из бэкапа.
12) С чего вы вообще взяли, что конфликт блокировок - это ошибка? Это показатель некорректной работы СУБД или логики конфигурации, и dbcc checkdb Вас от этого не спасет.
"Конфликт блокировок" бывает двух видов:
а) таймаут - тут нужно выяснять, почему не удалось наложить блокировку за отведенное время.
б) дедлок - тут нужно анализировать порядок наложения блокировок, и далеко не всегда эту проблему удается решить "малой кровью".
Созинов; dutlovva; Serg O.; nnn123; roman8115; Ikarus; mms76; pallid; meuses; ojiojiowka; gigabyte_artur; quNas; anchovy; CratosX; warrior1985; mr.Kot; Bukaska; ВРедная; Yashazz; lesna; Redokov; JesteR; suggestive; TrinitronOTV; EmpireSer; + 25 – Ответить
Если база 1С «потерялась»
Если файл цел, но по каким-то причинам к нему указан неверный путь, то считайте, что Вам повезло. Достаточно правильно указать путь к базе данных, и все будет в порядке. Чтобы указать правильный путь, нужно запустить программу и нажать кнопку «Изменить»:
Появится окно с названием информационной базы и строка с указанием пути к ней:
Нужно выбрать каталог, где находится файл 1сv7.md.
Если база действительно повреждена
Теперь рассмотрим вариант, когда путь указан верно, а следовательно, файл поврежден. Это может произойти при внезапном выключении электроэнергии, неправильном извлечении переносного носителя информации, поражения файла вирусом.
Получите понятные самоучители по 1С бесплатно:
Кстати, проверьте, возможно, у Вас настроено резервное копирование всей базы данных, и Вам нужно просто восстановить ее. Но после этого все равно проверьте диск на целостность и на вирусы, иначе ситуация может повториться.
Итак, что можно предпринять для лечения файла конфигурации.
Важно! В первую очередь сделайте копию всего каталога с базой данных, чтобы не усугубить ситуацию!
После выполнения резервной копии поочередно выполняем следующие действия:
- Проверяем, скопировался ли файл в другой каталог, а лучше на другой диск. Если скопировался и размер совпадает, то доступ на чтение есть. На всякий случай попробуйте создать новую базу данных, указав путь к каталогу, в который скопировали исходную базу. Если все заработало, проблема с диском. Если ошибка остается – поврежден файл md.
- Самый простой способ восстановить файл конфигурации – это найти файл с таким же релизом и заменить им поврежденный. Но этот способ приемлем, только если у Вас нет своих изменений в конфигурации, либо они незначительны, и их легко внести опять. Помните, что изменения нужно внести до первого запуска 1С в режиме пользователя, иначе можно потерять данные. Релиз конфигурации можно узнать следующими способами:
- Если это файловая база данных, находим файл 1SCONST.DBF и открываем его в любом dbf редакторе. Ищем там ячейку с цифрами, начинающимися с 7.7. Это и есть номер релиза:
Если база SQL-ная, пишем простой запрос, который выдаст нам номер релиза:
WHERE [OBJID] = ‘ 0 ‘ and VALUE like ‘7.7%’
- Замена файла неприемлема. Установите любой HEX – редактор и посмотрите заголовок файла. Если он выглядит не так (символы РП в начале, то файл на 95% убит либо вирусом, либо еще чем-то, и восстановить его будет практически невозможно):
В любом случае не пренебрегайте обращением к специалисту. Когда Вы думаете, что сможете сделать все сами, Вы, скорее всего, теряете свои деньги и время. Это не реклама, это совет, потому что сразу после сбоя повреждения могут носить минимальный характер, а вот после неопытных действий последствия зачастую необратимы.
И настройте, наконец, себе регулярное резервное копирование 1С! Причем на другой физический диск! Это самый надежный способ избежать неприятных ситуаций с базой данных.
Читайте также: