1с неправильный формат файла соответствий
Каждый, кто работает с 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С:Предприятие.
Редактирование текстов интерфейса … (перевод интерфейса конфигурации на другой язык английский – немецкий – китайский – японский и многие другие).
У вас есть стандартная конфигурация, в которой надо перевести интерфейс на другой язык, легко! А вот со справкой придется немного помучаться. Просьба не путать с данными, которые хранятся в реквизитах объектов.
О том, что надо сделать (в примере будет Английский язык):
1) Добавить язык в конфигурацию «Общие»-«Языки»-«Английский» с кодом «en».
Рекомендации по выбору кода языка, лучше брать из стандартов, например ISO 639-1 (ссылка от Google -
Выбрать интересующие вас объекты конфигурации, например Справочники.Контрагенты (можно выбрать и всю конфигурацию, но не желательно, на больших объемах конфигуратор может самопроизвольно закрыться или вылететь с ошибкой).
На закладке модули поставить галочку «Искать в функциях «НСтр» («NStr») в модулях».
3) Выгружаем таблицу соответствий в файл.
Снимаем обе галочки, ВАЖНО. И выбираем имя файла для выгрузки.
После выгрузки файл автоматически откроется в конфигураторе, его надо сохранить в формате Excel, «Файл»-«Сохранить копию…» меняем тип файла «Лист Excel 97».
4) В полученном файле есть все фразы на русском, надо получить на английском. Как переводить дело личное каждого, я предлагаю это сделать через «Переводчик Google» из «Диск Google».
Для этого надо загрузить файл «xls» на диск Google.
Зайти через web интерфейс на этот диск.
Найти свой файл и открыть его.
Выполнить экспорт в таблицу Google.
В колонке с английским языком в первую свободную строчку вставить функцию
У меня указана A2 так как я стоял на 2-ой строке.
После надо скопировать эту функцию на все строки - берез за нижний-правый угол ячейки и тянем вниз.
Вуаля, весь файл переведен. Обратите внимание, иногда перевод появляется не сразу, может быть надпись «Loading…» или что-то похожее, не переживайте перевод появиться, надо просто подождать.
Теперь файл можно скачивать к себе на компьютер.
5) Подготовка файла к загрузке в 1С.
В первой строке должны быть только коды языков, больше ничего. У меня в первой колонки получилось «ru» во второй «en».
Теперь надо проверить файл перевода на ошибки, ведь такой перевод не идеален. Проверка делиться на 2 вида:
А) синтаксические, тут все просто, исправляем, что нам не понравилось в переводе, а можем оставить как есть;
Б) которые могут влиять на работоспособность, вы спросите как так? А очень просто в НСтр могут быть использованы параметры, которые указываются в тексте как «%1», «%2» и т.д., что после перевода может превратиться в «1 %» или «% 1». Так дело не пойдет, надо все это исправлять в Excel, да поможет вам поиск.
6) Открываем файл в Excel, копируем в буфер обмена.
В 1С открываем созданный ранее файл «ru-eng.xml» и вставляем в него буфер обмена.
Сохраняем, файл готов.
7) Наконец-то файл готов. Теперь надо загружать.
Для этого надо повторить пункт 2).
Ищем наш файл xml выбираем по какому язуку заполнять, в нашел случае «Русский (ru)», в язык «Английский (en)».
8) Наслаждаемся, перевод готов.
Проблемы, с которыми сталкивался при переводе:
- иногда съедается текст между двумя НСтр, лечиться копирование кода из копии конфигурации до перевода.
- конечно, же обновление. Лекарство ниже.
Может возникнуть рациональный вопрос, как это будет сосуществовать с обновлениями?
Просто, ну или не сложно. При обновлении устанавливаем фильтр «только дважды измененные». Потом повторяем пункт 7) только ставим галочку «заполнять только незаполненные». Как вы сами понимаете файл с соответствием перевода надо сохранить. Потом повторяем пункт 1) и если есть, что то без перевода повторяем весь цикл, только для новых слов и еще раз напоминаю при загрузки надо ставить галочку «заполнять только незаполненные».
На сколько языков можно одновременно перевести конфигурацию? Какие языки поддерживает 1С?
Одновременно можно перевести на много языков, был опыт перевода самописной небольшой конфы на 26 языков, я уверен, многим этого хватит. 1С поддерживаем кодировку UTF-8 – это почти все языки. Другое дело в том, что в 1С часть интерфейса типа «Файл» «Справка» и т.д. зависит не от того языка что выбрали в конфигурации, а от того какой язык установили при установки платформы. Если установлено несколько, то можно указать ключ в ярлыке запуска. Но печальное не это, а то, что список языков включенных пока только
Поэтому приходилось для каждого языка перевода, приходилось подбирать наиболее понятный язык платформы из этого списка.
Но что же делать с реквизитами?
Идей было много, но чаще останавливался на одном. В стандартные реквизиты записываем оба значения через какой-нибудь спец. символ, например «/». И все видят значение реквизита на обоих языках. Если сильно хочется, то можно разбирать строку до спец. символа и после, и в зависимости от языка интерфейса отображать нужное. Так же можно добавить свою форму для заполнения реквизита на разных языках и самим формировать строку со спец. символом. Так же можно предусмотреть возможность заполнять реквизит только на одном языке, а на втором формировать автоматически использую транслитерацию или перевод, через какой-нибудь сервис, может быть и веб, может быть и google :-)
ДОБАВЛЕНО:
В статью не попала информация перевод справки на другой язык.
Делать надо ручками каждую справку индивидуально.
Пример, для справочника "Контрагенты" Алгоритм следующий:
1) На объекте нажимаем правой кнопкой "Справочная информация".
Откроется текст справки, переводим как нам больше нравиться, но куда её вставлять.
2) Тут есть небольшая тонкость текущий "язык редактирования конфигурации" (при переводе большого количества объектов легко запутаться какой язык активный). Этот замечательный пункт меню располагается в меню "Конфигурация". В окне выбираем язык. Вставляем переведенную справку. Вот и всё.
Что это такое? Куда копать? Гугл и Миста внятного ответа на вопрос не дали. Нумерация узлов в порядке.
Оценить 2 комментария
Какие версии конфигураций(полностью)? Изменения в конфигурациях были, или всё типовое?УТ 10.3.13.2, БП 2.0.22.2
Изменения были, какие именно — информацией не обладаю.
1. БП предприятия не может прочитать файл обмена той версии УТ, которая у вас есть. Почитать о совместимости версий УТ<->БП.
2. Одна из конфигураций не типовая и идет попытка прочитать/записать тот реквизит, описания которого нет в шаблоне обмена.
3. Абсурдное — неверный путь до файла обмена. Попробуйте подклчюиться через COM.
ну и вообще хотелось бы гораздо больших подробностей, а не потока сознания.
3. отметаем сразу.
А какие ещё подробности вам нужны? Исходные я все привёл. УТ 10.3, БП 2.0.
ну если УТ 10.3, БП 2.0 Вы считаете как минимум полностью указанными версиями, то назрел еще один вопрос — по какой причине отказываетесь прибегнуть к услугам грамотных специалистов? У меня встречный вопрос — что вам помешало ответить на мой вопрос про подробности нормально, без ненужных подколок? Я не телепат и не могу однозначно определить, что лично вы подразумеваете под словом «подробности». прошу прощения, иногда я очень не люблю не профессионалов.Привык к тому, что обычно при постановке таких вопросов рассказывают о точных версиях ПО. Файловые или скульные варианты баз. В какой именно последовательности был настроен обмен. Типовые правила обмена или подправленные.
Обмен запускается через обработку «монитор обмена» или напрямую из списка планов обмена (что кстати очень не хорошо). Односторонний или двухсторонний.
Неоднократно были случаи когда люди просто настраивали обмены через «операции — планы обменов». Вы, я надеюсь, не так делали?
Читали ли вы в документации к конфигурации о совместимости версий?
Тем более что если обмен первый — то он проводится еще на стадии настройки плана обмена и первая порция обмена данными — это еще даже не пакет с данными, а пакет с настройками. УТ 10.3.13.2, БП 2.0.22.2
Обе файловые.
Правила обмена были взяты из обмена между УТ и БП 1.6, правились при помощи конф. «Конвертация данных» 2.1.4.1, в частности, были отключены и помечены на удаление ПКО, приёмники которых отсутствуют в БП 2.0.
Обмен запускается через Сервис — Прочие обмены данными — Все настройки обменов данными — (выбираем элемент) — кнопка «Выполнить обмен». Соответственно, в УТ стоит галочка «Выгрузить», в БП — «Загрузить».
О совместимости версий не читал, т.к. даже не представляю, где это можно посмотреть. Поиск этой информации займёт нерациональное количество времени (да-да, я уже чувствую мощную волну праведного гнева от вас). *гневно постучал ногами в пол и злобно повращал глазами*
В таком случае ничего хорошего и не ждите. БП 2.0 и БП 1.6 в плане структуры метаданных различаются разительно.
Попробуйте поискать правила именно для Ваших версий. В противном случае ничего хорошего ждать не придется. Вопрос в следующем: что происходит при вызове метода НачатьЧтение? Он пытается распарсить весь файл данных целиком? Это первый обмен? Или ошибка возникла уже в процессе работы?
1. Выгрузка не от того образа.
2. Выгрузка была с ошибками, но вам об этом не сказали.
НачатьЧтение функция, которая парсит xml файл выгрузки, обычно первое что он проверяет это узел.
Лучше конечно посмотреть по отладчику.
1. Что значит «не от того образа»? Я собственноручно выгрузил файл из УТ, тут же его пытаюсь загрузить в БП (тестирую).Отладчик показывает вылет на строке вызова функции НачатьЧтение.
Синтакс-помощник говорит нам буквально следующее:
Передаваемый в функцию объект ЧтениеXML на этот момент имеет свойство ТипУзла = Ничего, это нормально?
Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.
Прежде чем рассматривать основные разновидности ошибок, стоит заметить, что они отличаются между собой по происхождению. Приложение может привести к физическому или логическому сбою. В результате 1С просто не запускается или начинает работать в режиме «Конфигуратор». Пользовательский режим бывает недоступен или, при использовании определенных команд, будет появляться сбой.
Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.
Причины появления ошибки в 1С
Разберем основные моменты, связанные с частым появлением сбоев при работе с базой данных. Они возникают в разных ситуациях, и определить их истинную причину не всегда возможно.
Одна из самых частых причин нарушение работы связанна с компьютером, на который установлена база данных 1С. Рабочая область может автоматически закрываться из-за нехватки оперативной памяти на сервере. Все возникающие неисправности должны быстро устраняться. В противном случае есть вероятность потери данных.
Часто возникающие ошибки 1С
Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:
- Недостаточно памяти.
- Ошибка доступа.
- Ошибка формата потока.
- Ошибка СУБД: Файл базы данных поврежден.
- Неправильное отображение блоков формы.
- Внутренняя ошибка компоненты dbeng.
- Dump при запуске.
- Неверный формат хранилища.
- Ничего не работает.
Для того, чтобы научиться исправлять возникающие ошибки, рассмотрим каждый пункт по отдельности.
Недостаточно памяти
Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 1С». Это случается при формировании отчета, обработки «тяжелого» файла, обновлении конфигурации и т.д. Причина – мощности компьютера недостаточно.
Пользователь может самостоятельно решить проблему с памятью. По умолчанию операционная система выделят фиксированное значение гигабайт на обслуживание приложения: 32 bit ОС – 2 Гб, 64 bit – 4 Гб.
Увеличить размер выделенной памяти можно вручную. Для этого запускается адресная строка (Пуск – Выполнить, вводиться фраза cmd). После нажатия «Ентер» достаточно ввести фразу bcdedit /set increaseuserva 4096 и подтвердить действие (клавиша «Enter»). Цифра 4096 – новый выделяемый объем «оперативки». Выполняется перезагрузка системы. Проблема должна быть устранена.
Ошибка доступа
Она возникает, если учетная запись не имеет достаточно прав. Проявляется при выполнении определенного действия, которое доступно только ограниченному кругу пользователей. Для исправления ситуации достаточно изменить роль выбранного профиля в конфигураторе (вкладка «Администрирование – Пользователи»). В некоторых случаях это увеличивает безопасность базы данных, если необходимо защитить файлы от изменения сторонними людьми.
Ошибка формата потока
Когда пользователь только запускает программу, на экране может появиться окно сбоя. Оно предлагает завершить работу или перезапустить. Причиной выступает некорректное завершение работы приложения.
Устранение подобной ошибки 1С выполняется простой чисткой кэша. Для этого необходимо перейти в папку, где хранятся временные файлы. В Windows 7 и выше она находится по адресу C:\Users\Username\AppData\Local\1C или C:\Users\Username\AppData\Roaming\1C. Для Windows ХР другой путь – Local Settings\Application Data\1C\. Все файлы, начинающиеся на 1cv8, кроме «1Cv8.1CD» полностью удаляются.
Если «Ошибка формата потока» возникает в процессе работы, то нужно провести тестирование (Администрирование – Тестирование и исправление), выбрать первые 2 галочки и запустить процесс.
Ошибка СУБД: Файл базы данных поврежден
Если всплывает информационное окно с подобной надписью, неисправность базы данных решается тестированием файла и всей информационной базы. Такое мероприятие может проводиться 2 способами:
- Запуск утилиты chdbfl.exe. Эта программа предназначена для того, чтобы проверять целостность базы данных при совместном ее использовании с информационной базой. Данный метод хорош тем, что дает возможность решать сбои даже в тех ситуациях, когда конфигуратор запустить невозможно. Сначала выполняется резервное копирование информации. В папке, где установлен 1С (директория bin) находится файл chdbfl.exe. Он запускается, в окне прописывает путь к файлу базы данных и ставится галочка, чтобы провести исправление ошибок. Нажимается кнопка «Выполнить». После завершения процесса все должно заработать. Если нет – используется конфигуратор.
- Через конфигуратор. Нужное окно вызывается после нажатия «Администрирование – Тестирование и исправление». На экране появляется форма, где выставляются галочки на следующе строчки: «Реиндексация таблиц…», «Проверка логической целостности…», «Проверка ссылочной…», «Реструктуризация таблиц…», «Тестирование и исправление» и 2 раза «Создать объекты». Нажимается кнопка «Выполнить». После завершения процедуры сбой устраняется.
Неправильное отображение блоков формы
Такая неисправность возникает от разных факторов. Чтобы привести программу к нормальной работоспособности, пользователю необходимо последовательно выполнить несколько команд. После проведения каждой проверяется устранение сбоя:
Если приведенные методы не помогают, рационально будет провести обновление платформы.
Внутренняя ошибка компоненты dbeng
Dump при запуске
Возвращение 1С в рабочее состояние проводится простым обновлением MS Visual Studio (Visual C++) и дополнительными манипуляциями. Чтобы отследить конкретный файл, в котором возникает ошибка, открывается «Просмотр событий». Для этого пользователь переходит в «Панель управления – Система и безопасность – Администрирование». С левой стороны раскрывается «Журнал Windows – Приложение».
На экране появляется список ошибок и точное расположение поврежденного файла. После установки новой версии MS Visual Studio (Visual C++) с папки System32 копируется одноименный файл dll и вставляется в папку платформы 1С. Проблема решилась.
Неверный формат хранилища
Ничего не работает
Если программа перестала нормально работать без видимых причин, значит пользователю придется самостоятельно искать неисправность. Для восстановления работоспособности базы данных проводятся следующие мероприятия:
- чистится кэш;
- открывается файл chdbfl.exe из папки установки приложения и выполняется исправление;
- выполняется запуск «Конфигуратора» для тестирования и исправления сбоев;
- обновление «1С».
Если это не критичная ошибка, она должна исправляться при установке актуальной версии программного комплекса. В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов.
Читайте также: