Ошибка при вызове метода контекста прочитать ошибка разбора xml

Автор magnifico61, 10 сен 2015, 12:27

0 Пользователей и 1 гость просматривают эту тему.

ЗУП 3.0 последняя версия последняя платформа, документ реестр сведений, при попытке сохранить выдает ошибку

{ОбщийМодуль.АдресныйКлассификаторСлужебный.Модуль(3743)}: Ошибка при вызове метода контекста (ПрочитатьXML)
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка разбора XML:  - [1,1]
Фатальная ошибка:
Document is empty

Чистка кэша и тестирование исправление не помогло.
Помогите???!!!!



это понятно, но почему 1С читает пустой файл? не понятно, хотя документ заполнен и проводится


magnifico61  вам удалось решить эту проблему?

возникла аналогичная ошибка:
{ОбщийМодуль.АдресныйКлассификаторСлужебный.Модуль(3679)}: Ошибка при вызове метода контекста (ПрочитатьXML)
   Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка разбора XML:  — [1,1]
Фатальная ошибка:
Document is empty
______________________
Платформа: 1С:Предприятие 8.3 (8.3.7.1917)
Конфигурация: Зарплата и управление персоналом, редакция 3.0 (3.0.25.74) (http://v8.1c.ru/hrm/)


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


Теги:

  • Форум База

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Ошибка чтения XML

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

   Нуф-Нуф

16.01.13 — 21:00

Вот таким кодом пробую прочитать ХМЛ

   ЧтениеXML = Новый ЧтениеXML;

   ЧтениеXML.ОткрытьФайл(адрес);

   Пока ЧтениеXML.Прочитать() Цикл

       
   КонеЦЦикла;

Валится при первой же попытке прочитать на

{Форма.Форма.Форма(162)}: Ошибка при вызове метода контекста (Прочитать)

   Пока ЧтениеXML.Прочитать() Цикл

по причине:

Ошибка разбора XML:  — [3,37]

Фатальная ошибка:

Specification mandate value for attribute addDa琀愀

SystemId: file://»адрес»

Вот сам ХМЛ

<?xml version=»1.0″ encoding=»unicode»?>

<form:Documents xmlns:form=»http://www.abbyy.com/FlexiCapture/Schemas/Export/FormData.xsd» xmlns:addData=»http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd»>

   <_Счет-фактура:_Счет-фактура addData:ImagePath=»Счет-фактура_29.11.2012_16.pdf» xmlns:_Счет-фактура=»http://www.abbyy.com/FlexiCapture/Schemas/Export/Счет-фактура.xsd»>

       <_Счет-Фактура>

           <_DocNum>034</_DocNum>

           <_DocDate>2012-11-29</_DocDate>

           <_IssCompany>Общество с ограниченной ответственностью</_IssCompany>

           <_IssINN>0000</_IssINN>

           <_IssKPP>0000</_IssKPP>

           <_DesCompany>Общество с ограниченной ответственностью</_DesCompany>

           <_DestINN>0000</_DestINN>

           <_DestKPP>0000</_DestKPP>

           <_Barcode/>

           <_FilePathName>0000</_FilePathName>

       </_Счет-Фактура>

   </_Счет-фактура:_Счет-фактура>

</form:Documents>

   Нуф-Нуф

1 — 16.01.13 — 21:01

сам хмл в ИЕ открывается отлично

   Нуф-Нуф

2 — 16.01.13 — 21:03

валится на второй попытке прочитать

   Нуф-Нуф

3 — 16.01.13 — 21:07

удалил «addData:ImagePath=»Счет-фактура_29.11.2012_16.pdf»»

стал валится на следующем атрибуте «xmlns:_Счет-фактура=»http://www.abbyy.com/FlexiCapture/Schemas/Export/Счет-фактура.xsd»»

{Форма.Форма.Форма(162)}: Ошибка при вызове метода контекста (Прочитать)

   Пока ЧтениеXML.Прочитать() Цикл

по причине:

Ошибка разбора XML:  — [3,35]

Фатальная ошибка:

Specification mandate value for attribute xmlns

SystemId: file:////test1/IGabdrakhmanov/Счет-фактура_29.11.2012_16.xml

   Нуф-Нуф

4 — 16.01.13 — 21:07

что это? косяк подготовки в хмл в стороннем ПО?

   Займись делом

5 — 16.01.13 — 21:19

А каково содержание файла «Счет-фактура.xsd»? Ощущение, что какого-то параметра не хватает.

   Нуф-Нуф

6 — 16.01.13 — 21:23

(5) хм. а как узнать содержание этого файла?

   Займись делом

7 — 16.01.13 — 21:31

(6) Не обращай внимание на (5). Бред я там написал :(

   ChMikle

8 — 16.01.13 — 21:32

(6) м.б. какие-то символы есть в этих строках, которые раньше узел закрывают ?

   lefthander

9 — 16.01.13 — 21:35

(0) А что внутри цикла? Как вы узлы считываете?

   Нуф-Нуф

10 — 16.01.13 — 21:36

оставил файл таким

<?xml version=»1.0″ encoding=»unicode»?>

<form>

   <_Счет-фактура>

       <_Счет-Фактура>

           <_DocNum>034</_DocNum>

           <_DocDate>2012-11-29</_DocDate>

           <_IssCompany>Общество с ограниченной ответственностью</_IssCompany>

           <_IssINN>0000</_IssINN>

           <_IssKPP>0000</_IssKPP>

           <_DesCompany>Общество с ограниченной ответственностью</_DesCompany>

           <_DestINN>0000</_DestINN>

           <_DestKPP>0000</_DestKPP>

           <_Barcode/>

           <_FilePathName>0000</_FilePathName>

       </_Счет-Фактура>

   </_Счет-фактура>

</form>

теперь валится на

{Форма.Форма.Форма(176)}: Ошибка при вызове метода контекста (Прочитать)

   Пока ЧтениеXML.Прочитать() Цикл

по причине:

Ошибка разбора XML:  — [10,9]

Фатальная ошибка:

error parsing attribute name

SystemId: file://»адрес»

   Нуф-Нуф

11 — 16.01.13 — 21:36

(9) ничего. просто прочитать узел за узлом

   lefthander

12 — 16.01.13 — 21:41

(11) попробуйте посмотреть, хоть в коде типовой, как это происходит.

У объекта ЧтениеXML много разных методов и свойств, одно из них значение, это как раз то куда выводятся значения узлов.

А у вас они куда выводятся? :)

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

   Нуф-Нуф

13 — 16.01.13 — 21:43

(12) для с чего это.  у меня просто читаются узлы. самый простой код

   Нуф-Нуф

14 — 16.01.13 — 21:43

валидатор на http://www.w3schools.com/xml/xml_validator.asp говорит

This page contains the following errors:

error on line 3 at column 181: xmlns:_?????°????????????_???????µ??: ‘http://www.abbyy.com/FlexiCapture/Schemas/Export/?????°????????????_???????µ??.xsd’ is not a valid URI

   Нуф-Нуф

15 — 16.01.13 — 21:47

фак. придется завтра поставщика файлов мучить. а до завтра курить бамбук

   Нуф-Нуф

16 — 16.01.13 — 21:50

может есть какой-нить форум фанатов ХМЛ?

   alexei366

17 — 16.01.13 — 21:51

Мож кодировку у ЧтенияXML поставить, хотя наврятли поможет

   Займись делом

18 — 16.01.13 — 21:52

Вопрос: браузером xml открывает?

   Займись делом

19 — 16.01.13 — 21:53

Посмотрел в Юникоде 琀愀 — символы китайского алфавита… или японского кто их разберёт. Если браузер тоже не открывает, попробуй удалить <?xml version=»1.0″ encoding=»unicode»?>

   Займись делом

20 — 16.01.13 — 21:55

Вроде прочитал у меня (что он там начитал уже другой вопрос)

   Нуф-Нуф

21 — 16.01.13 — 22:00

в браузере ИЕ открывается

   Займись делом

22 — 16.01.13 — 22:05

В итоге помогло следующее:

Взять xml представленный в первом сообщении, кроме строки «<?xml version=»1.0″ encoding=»unicode»?>», сохранить с помощью блокнота в кодировке UTF-8.

   Нуф-Нуф

23 — 16.01.13 — 22:13

(22) спасибо!!!

заменил строчку на <?xml version=»1.0″ encoding=»UTF-8″?> и пересохранил в формате UTF-8

  

Нуф-Нуф

24 — 16.01.13 — 22:24

Всем большое спасибо за помощь!

Сейчас меня спас код

   Текст = Новый ТекстовыйДокумент;

   Текст.Прочитать(адрес);

   СтрокаТекста = Текст.ПолучитьТекст();

   СтрокаТекста = СтрЗаменить(СтрокаТекста,»unicode», «UTF-8»);

   Текст.УстановитьТекст(СтрокаТекста);

   Текст.Записать(адрес, КодировкаТекста.UTF8);

Содержание:

1.       Основные сведения про языки XML и HTML

2.       Возникновение ошибки преобразования данных

3.       Причины появления и решения ошибки преобразования 1С

Здравствуйте, коллеги! В данной статье будет рассмотрена ошибка преобразования данных XML: причины её возникновения и инструкция по ее устранению несколькими вариантами.  

1.    Основные сведения про языки XML и HTML

Для начала разберём, что такое XML. XML (еXtensible Markup Language) – это язык программирования, который необходим, чтобы хранить данные. В XML необходимо самим определять теги, так как изначально оны не определены. Особенность XML заключается в том, что это самоопределяемый язык. Языки XML и HTML довольно похожи. Единственное отличие между ними – назначение: HTML отображает данные и решает, в каком виде будет их отображение, когда XML только хранит и транспортирует данные. 

2.    Возникновение ошибки преобразования данных

Обычно ошибка преобразования данных возникает, когда вызывается метод из контекста (ПрочитатьXML) в следующем виде: ЗаписатьЗначение = Прочитать XML(Чтение XML).

Это происходит, когда настраивается обмен данными при помощи стандартной обработки. Это может быть обработка загрузки или выгрузки XML.

Выглядит ошибка преобразования в 1С следующим образом:

Рис. 1 Ошибка преобразования 1С 8.3  

3.    Причины появления и решения ошибки преобразования 1С

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

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

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

2. Неполадки в системе файлов. Когда происходит обмен данными, может возникать ошибка преобразования данных XML, так как файл не может считаться. Чтобы устранить ошибку следует дать файлу иное наименование, за чем последует загрузка того же файла, но с иным наименованием.

Если же все вышеперечисленное правильно, в узле, который отправляет данные, необходимо запустить обработку «ВыгрузкаЗагрузкаДанныхXML.epf», которая находится в каталоге с шаблоном конфигураций, в составе конфигурации «Конвертация данных». Кликаем на «Недопустимые символы в плане обмена» и выбираем узел, который получает данные. В случае, если по окончанию проверки появятся ошибки, для окончательного устранения ошибки преобразования XML нужно будет решить те небольшие неполадки.

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

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

Айдар Фархутдинов

Содержание:

1.       Основные сведения про языки XML и HTML

2.       Возникновение ошибки преобразования данных

3.       Причины появления и решения ошибки преобразования 1С

Здравствуйте, коллеги! В данной статье будет рассмотрена ошибка преобразования данных XML: причины её возникновения и инструкция по ее устранению несколькими вариантами.  

1.    Основные сведения про языки XML и HTML

Для начала разберём, что такое XML. XML (еXtensible Markup Language) – это язык программирования, который необходим, чтобы хранить данные. В XML необходимо самим определять теги, так как изначально оны не определены. Особенность XML заключается в том, что это самоопределяемый язык. Языки XML и HTML довольно похожи. Единственное отличие между ними – назначение: HTML отображает данные и решает, в каком виде будет их отображение, когда XML только хранит и транспортирует данные. 

2.    Возникновение ошибки преобразования данных

Обычно ошибка преобразования данных возникает, когда вызывается метод из контекста (ПрочитатьXML) в следующем виде: ЗаписатьЗначение = Прочитать XML(Чтение XML).

Это происходит, когда настраивается обмен данными при помощи стандартной обработки. Это может быть обработка загрузки или выгрузки XML.

Выглядит ошибка преобразования в 1С следующим образом:

Рис. 1 Ошибка преобразования 1С 8.3  

3.    Причины появления и решения ошибки преобразования 1С

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

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

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

2. Неполадки в системе файлов. Когда происходит обмен данными, может возникать ошибка преобразования данных XML, так как файл не может считаться. Чтобы устранить ошибку следует дать файлу иное наименование, за чем последует загрузка того же файла, но с иным наименованием.

Если же все вышеперечисленное правильно, в узле, который отправляет данные, необходимо запустить обработку «ВыгрузкаЗагрузкаДанныхXML.epf», которая находится в каталоге с шаблоном конфигураций, в составе конфигурации «Конвертация данных». Кликаем на «Недопустимые символы в плане обмена» и выбираем узел, который получает данные. В случае, если по окончанию проверки появятся ошибки, для окончательного устранения ошибки преобразования XML нужно будет решить те небольшие неполадки.

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

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

Айдар Фархутдинов

Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML) ПрочитатьXML(ЧтениеXML);

Описание ошибки:
Ошибка при попытке загрузить описание структуры метаданных в базу конфигурации 1С: Конвертация данных 8, ред. 2.1. Версия платформы 1С: Предприятие 8.3.7.1845

Найденные решения:

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

Как известо файл-описания конфигурации подготавливается с помощью поставляющегося с 1С: Конвертация данных 8 файла MD82Exp.epf. Традиционно выполнив создание файла-описания структуры конфигурации, перешел к процессу «загрузки метаданных структуры конфигурации» в базе конвертации. И неожиданно по истечении некоторого времени после, казалось бы, удачногостарта процесса загрузки получил ошибку: {Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML)
            ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XML: [sfile://C:/Базы 1С/А__/______.xml][171,22]

1с 8 Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML) ПрочитатьXML(ЧтениеXML);

1C 8 конвертация ошибка при загрузке описания конфигурации {Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML)

Удивлению не было предела. Казалось бы столько раз выполнял подобную процедуру. Но такое в первый раз. Оценив шансы на то, что в интернете быстрее найду решение проблемы, чем в документации, оказался прав. На форуме сайта infostart была найдена подсказка о том, что спешка меня подвела.

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

1С 8 конвертация данных Ошибка разбора xml при загрузке описания структуры конфигурации, конфы

Соответственно, установка обновления 1С: Конвертация данных релиза 2.1.7.1 и использование файла MD82Exp.epf из папки шаблона релиза разрешило проблему. Ошибка больше не проявилась.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

14-12-2016

Журавлев А.С.
(Сайт www.azhur-c.ru)

Ошибка преобразования данных XML при работе в 1С является стандартной и распространенной ошибкой. При возникновении этой ошибки блокируется дальнейшая работа с документами.

Напомним, что XML это язык программирования, чем-то похожий на HTML. Разница в том, что HTML регламентирует отображение элементов на странице, то есть браузер «считывает» HTML теги и показывает пользователям веб-страницу, согласно тегам. А XML ничего не регламентирует, он только сохраняет и транспортирует информацию. 

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

Ошибка преобразования данных XML в 1С: основные причины

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

  1. Иногда ошибка преобразования данных XML возникает по достаточно простой причине, например, из-за того, что в передаваемом документе присутствуют недопустимые символы, а второстепенный узел просто не может их прочитать. Так ли это? Можно проверить на отправляющем узле, если открыть проверку «ВыгрузкаЗагрузкаДанныхXML.epf». Если причина в этом, тогда вы получите соответствующее сообщение. Если сообщения нет, тогда можно искать другие причины и устранять их.

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

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

Заключение

Ошибка преобразования данных XML возникает в 1С нечасто, но в то же время это самый распространенный вид ошибки. Причин возникновения может быть несколько, и о них мы сегодня написали. Все ли причины возникновения ошибки мы перечислили? Нет, не все, но это самые распространенные, которые наиболее часто встречаются на практике.

При использовании обработки с диска ИТС (ВыгрузкаЗагрузкаДанныхXML), выходит сообщение об ошибке, в момент ЗАГРУЗКИ:

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(147)}: Ошибка при вызове метода контекста (ПрочитатьXML)

            ЗаписанноеЗначение = ПрочитатьXML(ЧтениеXML);

по причине:

Ошибка преобразования данных XML: [file://C:/TANYA_New/88888888888888/поступление_2.xml][82,4]

Из копии Бухгалтерии1, перегружаем в рабочую Бухгалтерию2 документ «ПоступлениеТоваров и Услуг» (в нем всего одна позиция) и при загрузке (этой же обработкой, выдает ошибку выше.

Платформа 8.2.19.80.

Выгружаем из версии Бухгалтерии 2.0.54.13

Загружаем в версию Бухгалтерии 2.0.53.8

)

Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML) ПрочитатьXML(ЧтениеXML);

Описание ошибки:
Ошибка при попытке загрузить описание структуры метаданных в базу конфигурации 1С: Конвертация данных 8, ред. 2.1. Версия платформы 1С: Предприятие 8.3.7.1845

Найденные решения:

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

Как известо файл-описания конфигурации подготавливается с помощью поставляющегося с 1С: Конвертация данных 8 файла MD82Exp.epf. Традиционно выполнив создание файла-описания структуры конфигурации, перешел к процессу «загрузки метаданных структуры конфигурации» в базе конвертации. И неожиданно по истечении некоторого времени после, казалось бы, удачногостарта процесса загрузки получил ошибку: {Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML)
            ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XML: [sfile://C:/Базы 1С/А__/______.xml][171,22]

1с 8 Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML)    ПрочитатьXML(ЧтениеXML);

1C 8 конвертация ошибка при загрузке описания конфигурации {Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(74)}: Ошибка при вызове метода контекста (ПрочитатьXML)

Удивлению не было предела. Казалось бы столько раз выполнял подобную процедуру. Но такое в первый раз. Оценив шансы на то, что в интернете быстрее найду решение проблемы, чем в документации, оказался прав. На форуме сайта infostart была найдена подсказка о том, что спешка меня подвела.

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

1С 8 конвертация данных Ошибка разбора xml при загрузке описания структуры конфигурации, конфы

Соответственно, установка обновления 1С: Конвертация данных релиза 2.1.7.1 и использование файла MD82Exp.epf из папки шаблона релиза разрешило проблему. Ошибка больше не проявилась.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

14-12-2016

Журавлев А.С.
(Сайт www.azhur-c.ru)

Грабли метода ПрочитатьXML() объекта ФабрикаXDTO

Что таит в себе окно редактирования XDTO-пакета

Фабрика XDTO — это библиотека типов, которая описывает определенные структуры XML. В языке программирования платформы 1С имеется объект ФабрикаXDTO, который содержит все пакеты XDTO, имеющиеся в конфигурации, а также предопределенные пакеты (например, пакет типов XML схемы). У данного объекта метод ПрочитатьXML(), позволяет читать элементы данных XDTO указанного типа из объекта чтения XML:


ФайлXML = Новый ЧтениеXML;
ФайлXML.УстановитьСтроку(СтрокаXML);

Пока ФайлXML.Прочитать() Цикл

Если ФайлXML.ЛокальноеИмя = "Message" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML);
КонецЕсли;

КонецЦикла;

ФайлXML.Закрыть();

Первый параметр метода является обязательным, в который передается объект чтения XML. Второй параметр метода необязательный, в который передается тип элемента данных XDTO. Если тип не указан, то будет сделана попытка определить тип данных по текущему состоянию объекта ЧтениеXML.

Допустим, создадим тип в пакете XDTO  с пространством имен http://lk.1cps.ru, который будет описывать некую структуру XML:

1. Тип «Документы»

Кусок структуры XML:
...
<Документы>
<РасчетФБ>
<Культура>12122</Культура>
<ПосевнаяПлощадь>23</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>276</Сумма>
</РасчетФБ>
<РасчетФБ>
<Культура>232323</Культура>
<ПосевнаяПлощадь>34</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>408</Сумма>
</РасчетФБ>
</Документы>
...

Прочитаем эту структуру:

Пока ФайлXML.Прочитать() Цикл
Если ФайлXML.ЛокальноеИмя = "Документы" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML, ФабрикаXDTO.Тип("http://lk.1cps.ru", "ДокументыТип"));
Прервать;
КонецЕсли;
КонецЦикла;

Приведенный код будет завершать ошибкой чтения XML, примерно такой:

Ошибка при вызове метода контекста (ПрочитатьXML)
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML, ФабрикаXDTO.Тип("http://lk.1cps.ru", "ДокументыТип"));
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://lk.1cps.ru}ДокументыТип - [126,19]
Проверка дополнительного свойства:
форма: Элемент
имя: {http://lk.1cps.ru}Культура
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://lk.1cps.ru}ДокументыТип

ПРОШЛО 4 ЧАСА :(

Так как выше приведенный кусок структуры XML не относится к пространству имен http://lk.1cps.ru, то и метод ПрочитатьXML() выкидывал ошибку, несмотря на то, что тип правильно описывает структуру XML! Поэтому XML должен выглядеть так:
...
<Документы xmlns="http://lk.1cps.ru">
<РасчетФБ>
<Культура>12122</Культура>
<ПосевнаяПлощадь>23</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>276</Сумма>
</РасчетФБ>
<РасчетФБ>
<Культура>232323</Культура>
<ПосевнаяПлощадь>34</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>408</Сумма>
</РасчетФБ>
</Документы>
...

Вот такие пироги.

Сvотри что бы тег не содержал запрещенных символов (не должен начинаться с цифры и т.д.)

Установившаяся Практика Именования

Делайте имена описательными. Имена с символом подчеркивания выглядят аккуратно: <first_name>, <last_name>.

Имена должны быть короткими и простыми, например: <book_title> а не: <the_title_of_the_book>.

Избегайте символов «-«. Если вы называете xml-элемент, используя дефис («first-name,») некоторые компьютерные программы могут решить, что вы хотите вычесть значение name из значения first.

Избегайте символов «.». Если вы называете что-нибудь например так: «first.name,» некоторые программы могут решить, что «name» является свойством объекта «first.»

Старайтесь не использовать символы «:». Двоеточие зарезервировано для использования в так называемых пространствах имен (подробнее о них будет рассказано позже).

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

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

Добавлено через 1 минуту
Правила Именования в XML
Элементы XML должны следовать следующим правилам именования:

Имена могут состоять из букв, чисел, и других символов
Имена не могут начинаться с числа или знака препинания
Имена не могут начинаться с букв xml (или XML, или Xml, и т.п.)
Имена не могут содержать пробелы
Любое имя может использоваться, зарезервированных слов нет.

  

Нуф-Нуф

16.01.13 — 21:00

Вот таким кодом пробую прочитать ХМЛ

   ЧтениеXML = Новый ЧтениеXML;

   ЧтениеXML.ОткрытьФайл(адрес);

   Пока ЧтениеXML.Прочитать() Цикл

       
   КонеЦЦикла;

Валится при первой же попытке прочитать на

{Форма.Форма.Форма(162)}: Ошибка при вызове метода контекста (Прочитать)

   Пока ЧтениеXML.Прочитать() Цикл

по причине:

Ошибка разбора XML:  — [3,37]

Фатальная ошибка:

Specification mandate value for attribute addDa琀愀

SystemId: file://»адрес»

Вот сам ХМЛ

<?xml version=»1.0″ encoding=»unicode»?>

<form:Documents xmlns:form=»http://www.abbyy.com/FlexiCapture/Schemas/Export/FormData.xsd» xmlns:addData=»http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd»>

   <_Счет-фактура:_Счет-фактура addData:ImagePath=»Счет-фактура_29.11.2012_16.pdf» xmlns:_Счет-фактура=»http://www.abbyy.com/FlexiCapture/Schemas/Export/Счет-фактура.xsd»>

       <_Счет-Фактура>

           <_DocNum>034</_DocNum>

           <_DocDate>2012-11-29</_DocDate>

           <_IssCompany>Общество с ограниченной ответственностью</_IssCompany>

           <_IssINN>0000</_IssINN>

           <_IssKPP>0000</_IssKPP>

           <_DesCompany>Общество с ограниченной ответственностью</_DesCompany>

           <_DestINN>0000</_DestINN>

           <_DestKPP>0000</_DestKPP>

           <_Barcode/>

           <_FilePathName>0000</_FilePathName>

       </_Счет-Фактура>

   </_Счет-фактура:_Счет-фактура>

</form:Documents>

  

Нуф-Нуф

1 — 16.01.13 — 21:01

сам хмл в ИЕ открывается отлично

  

Нуф-Нуф

2 — 16.01.13 — 21:03

валится на второй попытке прочитать

  

Нуф-Нуф

3 — 16.01.13 — 21:07

удалил «addData:ImagePath=»Счет-фактура_29.11.2012_16.pdf»»

стал валится на следующем атрибуте «xmlns:_Счет-фактура=»http://www.abbyy.com/FlexiCapture/Schemas/Export/Счет-фактура.xsd»»

{Форма.Форма.Форма(162)}: Ошибка при вызове метода контекста (Прочитать)

   Пока ЧтениеXML.Прочитать() Цикл

по причине:

Ошибка разбора XML:  — [3,35]

Фатальная ошибка:

Specification mandate value for attribute xmlns

SystemId: file:////test1/IGabdrakhmanov/Счет-фактура_29.11.2012_16.xml

  

Нуф-Нуф

4 — 16.01.13 — 21:07

что это? косяк подготовки в хмл в стороннем ПО?

  

Займись делом

5 — 16.01.13 — 21:19

А каково содержание файла «Счет-фактура.xsd»? Ощущение, что какого-то параметра не хватает.

  

Нуф-Нуф

6 — 16.01.13 — 21:23

(5) хм. а как узнать содержание этого файла?

  

Займись делом

7 — 16.01.13 — 21:31

(6) Не обращай внимание на (5). Бред я там написал :(

  

ChMikle

8 — 16.01.13 — 21:32

(6) м.б. какие-то символы есть в этих строках, которые раньше узел закрывают ?

  

lefthander

9 — 16.01.13 — 21:35

(0) А что внутри цикла? Как вы узлы считываете?

  

Нуф-Нуф

10 — 16.01.13 — 21:36

оставил файл таким

<?xml version=»1.0″ encoding=»unicode»?>

<form>

   <_Счет-фактура>

       <_Счет-Фактура>

           <_DocNum>034</_DocNum>

           <_DocDate>2012-11-29</_DocDate>

           <_IssCompany>Общество с ограниченной ответственностью</_IssCompany>

           <_IssINN>0000</_IssINN>

           <_IssKPP>0000</_IssKPP>

           <_DesCompany>Общество с ограниченной ответственностью</_DesCompany>

           <_DestINN>0000</_DestINN>

           <_DestKPP>0000</_DestKPP>

           <_Barcode/>

           <_FilePathName>0000</_FilePathName>

       </_Счет-Фактура>

   </_Счет-фактура>

</form>

теперь валится на

{Форма.Форма.Форма(176)}: Ошибка при вызове метода контекста (Прочитать)

   Пока ЧтениеXML.Прочитать() Цикл

по причине:

Ошибка разбора XML:  — [10,9]

Фатальная ошибка:

error parsing attribute name

SystemId: file://»адрес»

  

Нуф-Нуф

11 — 16.01.13 — 21:36

(9) ничего. просто прочитать узел за узлом

  

lefthander

12 — 16.01.13 — 21:41

(11) попробуйте посмотреть, хоть в коде типовой, как это происходит.

У объекта ЧтениеXML много разных методов и свойств, одно из них значение, это как раз то куда выводятся значения узлов.

А у вас они куда выводятся? :)

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

  

Нуф-Нуф

13 — 16.01.13 — 21:43

(12) для с чего это.  у меня просто читаются узлы. самый простой код

  

Нуф-Нуф

14 — 16.01.13 — 21:43

валидатор на http://www.w3schools.com/xml/xml_validator.asp говорит

This page contains the following errors:

error on line 3 at column 181: xmlns:_?????°????????????_???????µ??: ‘http://www.abbyy.com/FlexiCapture/Schemas/Export/?????°????????????_???????µ??.xsd’ is not a valid URI

  

Нуф-Нуф

15 — 16.01.13 — 21:47

фак. придется завтра поставщика файлов мучить. а до завтра курить бамбук

  

Нуф-Нуф

16 — 16.01.13 — 21:50

может есть какой-нить форум фанатов ХМЛ?

  

alexei366

17 — 16.01.13 — 21:51

Мож кодировку у ЧтенияXML поставить, хотя наврятли поможет

  

Займись делом

18 — 16.01.13 — 21:52

Вопрос: браузером xml открывает?

  

Займись делом

19 — 16.01.13 — 21:53

Посмотрел в Юникоде 琀愀 — символы китайского алфавита… или японского кто их разберёт. Если браузер тоже не открывает, попробуй удалить <?xml version=»1.0″ encoding=»unicode»?>

  

Займись делом

20 — 16.01.13 — 21:55

Вроде прочитал у меня (что он там начитал уже другой вопрос)

  

Нуф-Нуф

21 — 16.01.13 — 22:00

в браузере ИЕ открывается

  

Займись делом

22 — 16.01.13 — 22:05

В итоге помогло следующее:

Взять xml представленный в первом сообщении, кроме строки «<?xml version=»1.0″ encoding=»unicode»?>», сохранить с помощью блокнота в кодировке UTF-8.

  

Нуф-Нуф

23 — 16.01.13 — 22:13

(22) спасибо!!!

заменил строчку на <?xml version=»1.0″ encoding=»UTF-8″?> и пересохранил в формате UTF-8

  

Нуф-Нуф

24 — 16.01.13 — 22:24

Всем большое спасибо за помощь!

Сейчас меня спас код

   Текст = Новый ТекстовыйДокумент;

   Текст.Прочитать(адрес);

   СтрокаТекста = Текст.ПолучитьТекст();

   СтрокаТекста = СтрЗаменить(СтрокаТекста,»unicode», «UTF-8»);

   Текст.УстановитьТекст(СтрокаТекста);

   Текст.Записать(адрес, КодировкаТекста.UTF8);

Сvотри что бы тег не содержал запрещенных символов (не должен начинаться с цифры и т.д.)

Установившаяся Практика Именования

Делайте имена описательными. Имена с символом подчеркивания выглядят аккуратно: <first_name>, <last_name>.

Имена должны быть короткими и простыми, например: <book_title> а не: <the_title_of_the_book>.

Избегайте символов «-«. Если вы называете xml-элемент, используя дефис («first-name,») некоторые компьютерные программы могут решить, что вы хотите вычесть значение name из значения first.

Избегайте символов «.». Если вы называете что-нибудь например так: «first.name,» некоторые программы могут решить, что «name» является свойством объекта «first.»

Старайтесь не использовать символы «:». Двоеточие зарезервировано для использования в так называемых пространствах имен (подробнее о них будет рассказано позже).

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

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

Добавлено через 1 минуту
Правила Именования в XML
Элементы XML должны следовать следующим правилам именования:

Имена могут состоять из букв, чисел, и других символов
Имена не могут начинаться с числа или знака препинания
Имена не могут начинаться с букв xml (или XML, или Xml, и т.п.)
Имена не могут содержать пробелы
Любое имя может использоваться, зарезервированных слов нет.

Содержание:

1.       XML – расширяемый язык разметки

2.       Устранение Ошибки разбора XML в 1С

3.       «Обход» Ошибки разбора XML в 1С   

1.    XML – расширяемый язык разметки

В данной статье речь пойдёт о причинах возникновения фатальной ошибки «Ошибка разбора XML» и способах устранения данной неполадки. Также будет дана инструкция не по устранению, но «обходу» ошибки, то есть действиям на опережение.

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

2.    Устранение Ошибки разбора XML в 1С

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

Рис. 1 Окно Ошибки разбора XML в 1С

XML данные читаются по потокам, так что в каждый из моментов времени объект «сосредоточен» в некотором узле XML. Из-за этого также может возникать фатальная ошибка «Ошибка разбора XML». Для того чтобы её устранить, можно вызвать функцию «ИсключениеЧтенияXml», как показано на скриншоте примера ниже:

Рис. 2 Вызов функции ИсключениеЧтенияXML для устранения Ошибки разбора XML в 1С  

3.    «Обход» Ошибки разбора XML в 1С

Данные два способа (очистка кэша метаданных и функция «ИсключениеЧтенияXml») – не все возможные варианты устранения ошибки разбора XML. Далее рассмотрим нестандартный подход, который позволит избежать ошибки еще до её возникновения.

Для наглядности будем работать в конфигурации 1С:Бухгалтерия предприятия, одной из наиболее распространенных программ фирмы 1С. У многих людей, которые пользуются программой 1С:Отчётность появляются неполадки при попытках открыть данные/файлы от налоговой. Чтобы открыть такой файл повторяем следующие действия:

·        Переходим по пути: «Настройки 1С:Отчётности → Журнал обмена с контролирующими органами», как показано на скриншоте ниже:

Рис. 3 Настройка 1С Отчетности

·        Далее кликаем на «Запросы» и выделяем ту выписку, которую не было возможности открыть из-за ошибки, как продемонстрировано на скриншоте ниже:

Рис. 4 Выбор выписки с Ошибкой разбора XML в 1С

·        Обращаем внимание на стадию отправки, которая располагается внизу этого сообщения, и кликаем два раза на зелёный круг:

Рис. 5 Стадия отправки документа с Ошибкой разбора XML в 1С

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

Рис. 6 Результат обхода Ошибки разбора XML в 1С

·        Всё успешно открылось, а ошибка даже не успела возникнуть.

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

Айдар Фархутдинов

Грабли метода ПрочитатьXML() объекта ФабрикаXDTO

Что таит в себе окно редактирования XDTO-пакета

Фабрика XDTO — это библиотека типов, которая описывает определенные структуры XML. В языке программирования платформы 1С имеется объект ФабрикаXDTO, который содержит все пакеты XDTO, имеющиеся в конфигурации, а также предопределенные пакеты (например, пакет типов XML схемы). У данного объекта метод ПрочитатьXML(), позволяет читать элементы данных XDTO указанного типа из объекта чтения XML:


ФайлXML = Новый ЧтениеXML;
ФайлXML.УстановитьСтроку(СтрокаXML);

Пока ФайлXML.Прочитать() Цикл

Если ФайлXML.ЛокальноеИмя = "Message" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML);
КонецЕсли;

КонецЦикла;

ФайлXML.Закрыть();

Первый параметр метода является обязательным, в который передается объект чтения XML. Второй параметр метода необязательный, в который передается тип элемента данных XDTO. Если тип не указан, то будет сделана попытка определить тип данных по текущему состоянию объекта ЧтениеXML.

Допустим, создадим тип в пакете XDTO  с пространством имен http://lk.1cps.ru, который будет описывать некую структуру XML:

1. Тип «Документы»

Кусок структуры XML:
...
<Документы>
<РасчетФБ>
<Культура>12122</Культура>
<ПосевнаяПлощадь>23</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>276</Сумма>
</РасчетФБ>
<РасчетФБ>
<Культура>232323</Культура>
<ПосевнаяПлощадь>34</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>408</Сумма>
</РасчетФБ>
</Документы>
...

Прочитаем эту структуру:

Пока ФайлXML.Прочитать() Цикл
Если ФайлXML.ЛокальноеИмя = "Документы" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML, ФабрикаXDTO.Тип("http://lk.1cps.ru", "ДокументыТип"));
Прервать;
КонецЕсли;
КонецЦикла;

Приведенный код будет завершать ошибкой чтения XML, примерно такой:

Ошибка при вызове метода контекста (ПрочитатьXML)
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML, ФабрикаXDTO.Тип("http://lk.1cps.ru", "ДокументыТип"));
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://lk.1cps.ru}ДокументыТип - [126,19]
Проверка дополнительного свойства:
форма: Элемент
имя: {http://lk.1cps.ru}Культура
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://lk.1cps.ru}ДокументыТип

ПРОШЛО 4 ЧАСА :(

Так как выше приведенный кусок структуры XML не относится к пространству имен http://lk.1cps.ru, то и метод ПрочитатьXML() выкидывал ошибку, несмотря на то, что тип правильно описывает структуру XML! Поэтому XML должен выглядеть так:
...
<Документы xmlns="http://lk.1cps.ru">
<РасчетФБ>
<Культура>12122</Культура>
<ПосевнаяПлощадь>23</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>276</Сумма>
</РасчетФБ>
<РасчетФБ>
<Культура>232323</Культура>
<ПосевнаяПлощадь>34</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>408</Сумма>
</РасчетФБ>
</Документы>
...

Вот такие пироги.

 

8.3.9.1850
УТ 11.3.2.199
Модуль обмена 1С-Битрикс 6.5.0.0

Суть проблемы: пытаюсь сделать импорт товаров из сайта в 1С через модуль в пункте «Помощник импорта товаров с сайта под управлением CMS 1C-Битрикс». Сначала идет получение XML-данных (норм), потом при анализе XML-данных выдает:

«{Обработка.Б_ПомощникИмпортаТоваровБитрикс.МодульОбъекта(102)}: Ошибка при вызове метода контекста (Прочитать): Ошибка разбора XML:  — [2,8]
Фатальная ошибка:
error parsing attribute name»

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

 

Написано почти русским языком «error parsing attribute name».
Т.е. в одном из товаров ошибка при разборе названия, либо какие-то спецсимволы затесались, либо ещё что-то.

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

 

Пользователь 2005837

Заглянувший

Сообщений: 13
Регистрация: 14.05.2018

#3

17.05.2018 10:02:54

Цитата
Алексей Беспалов написал:
Написано почти русским языком «error parsing attribute name».
Т.е. в одном из товаров ошибка при разборе названия, либо какие-то спецсимволы затесались, либо ещё что-то.

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

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

 

Я даже попробовал создать товар с названием и характеристиками, состоящими только из цифр — все равно выдает ошибку при парсинге.
Как сделать отладку с возможностью посмотреть где конкретно ошибка не могу разобраться(
Запускаю отладку через конфигуратор (и ставлю остановку при ошибке), открывается 1С, там делаю все то же самое — и все
Та же самая ошибка, а как посмотреть расшифровки или подробнее — не знаю

 

Есть предположение, что может быть проблема в кодировке отдаваемого потока от сайта. Т.е. сайт возвращает текст в кодировке, которую не может распознать 1с. Отсюда (почти в самом начале) есть какие-то неразборные данные.

Вам нужно через отладчик посмотреть сам xml, либо попробовать получить этот же xml в браузере, т.е. послать команды авторизации checkauth, инициализации init и запроса данных с сайта query и посмотреть, что выдаст сайт.

Всем несогласным — мыло и веревка!

 

Пользователь 2005837

Заглянувший

Сообщений: 13
Регистрация: 14.05.2018

#6

17.05.2018 13:46:46

Цитата
Алексей Сипаев написал:
Есть предположение, что может быть проблема в кодировке отдаваемого потока от сайта. Т.е. сайт возвращает текст в кодировке, которую не может распознать 1с. Отсюда (почти в самом начале) есть какие-то неразборные данные.

Вам нужно через отладчик посмотреть сам xml, либо попробовать получить этот же xml в браузере, т.е. послать команды авторизации checkauth, инициализации init и запроса данных с сайта query и посмотреть, что выдаст сайт.

Вы можете, пожалуйста, подробнее объяснить как посмотреть этот xml через отладчик (хотя бы вкратце, а я погуглю), или как посмотреть xml в браузере? Спасибо!

 

ваш сайт/bitrix/admin/1c_exchange.php?type=get_catalog&mode=checkauth

в ответ будет «success PHPSESSID Айди сессии»

ваш сайт/bitrix/admin/1c_exchange.php?type=get_catalog&mode=query

в ответ будет нужная вам информация.

здесь и проверьте кодировку.

Всем несогласным — мыло и веревка!

 

Пользователь 2005837

Заглянувший

Сообщений: 13
Регистрация: 14.05.2018

#8

17.05.2018 15:49:53

Цитата
Алексей Сипаев написал:
/bitrix/admin/1c_exchange.php?type=get_catalog&mode=query

ID сессии получил, но второй запрос выдает пустую страницу

 

Пользователь 2005837

Заглянувший

Сообщений: 13
Регистрация: 14.05.2018

#9

17.05.2018 15:50:12

Цитата
Алексей Сипаев написал:
ваш сайт/bitrix/admin/1c_exchange.php?type=get_catalog&mode=checkauth

в ответ будет «success PHPSESSID Айди сессии»

ваш сайт/bitrix/admin/1c_exchange.php?type=get_catalog&mode=query

в ответ будет нужная вам информация.

здесь и проверьте кодировку.

ID сессии получил, но второй запрос выдает пустую страницу

UPD: так, я понял, я еще INIT не делал. Сейчас сделал, в итоге mode=query выдал страницу

 

Итак, сделал все три запроса, в конце получил вот это:
скрины по порядку обновления mode=query

Какой вывод я должен теперь сделать? Единственное, что тут не заполнено, это параметр BASE почему-то, что это значит?
До этого еще было куча других характеристик для товара, которые я отключил в настройках информационного блока (что-то типа CML_ATTRIBUTES и еще куча-куча всего, я их пока отключил для теста).

 

Сложно так заочно что-то сказать. Надо подключаться и смотреть. Если что пишите.

Да, насчет отладки, чтобы остановка сработала на ошибке, сделайте вот так:

https://ut11-bitrix.ru/faq-1c/1s-rezhim-otladki-fonovykh-zadaniy/

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

 

Олег Корчагин,скорее всего нужно смотреть, что именно в 1с получается… Потому что там могут быть просто кракозябры

Всем несогласным — мыло и веревка!

 

Пользователь 2005837

Заглянувший

Сообщений: 13
Регистрация: 14.05.2018

#13

18.05.2018 10:28:42

Цитата
Алексей Беспалов написал:
Сложно так заочно что-то сказать. Надо подключаться и смотреть. Если что пишите.

Да, насчет отладки, чтобы остановка сработала на ошибке, сделайте вот так:

https://ut11-bitrix.ru/faq-1c/1s-rezhim-otladki-fonovykh-zadaniy/

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

Все сделал по пунктам, ничего не изменилось вообще. Опять дошло до ошибки и все.

Цитата
Алексей Сипаев написал:
Олег Корчагин ,скорее всего нужно смотреть, что именно в 1с получается… Потому что там могут быть просто кракозябры

Как смотреть?  

 

Олег Корчагин, есть участок кода до парсинга. Там формируется список xml. Вот эти xml и посмотреть нужно в конфигурации в меню отладка — вычислить выражение и смотреть, что с xml…нужная ли кодировка отображается…

Всем несогласным — мыло и веревка!

 

Пользователь 2005837

Заглянувший

Сообщений: 13
Регистрация: 14.05.2018

#15

31.05.2018 16:41:16

С проблемой разобрался… Ну, как, вернее… Переустановил весь битрикс и шаблон в кодировке UTF-8 — и интеграция заработала без фатальных ошибок.

/close

Вот таким кодом пробую прочитать ХМЛ Валится при первой же попытке прочитать на {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Прочитать) по причине: Ошибка разбора XML:  — [3,37] Фатальная ошибка: Specification mandate value for attribute addDa琀愀 Вот сам ХМЛ

сам хмл в ИЕ открывается отлично

валится на второй попытке прочитать

стал валится на следующем атрибуте «xmlns:_Счет-фактура=»http://www.abbyy.com/FlexiCapture/Schemas/Export/Счет-фактура.xsd»» {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Прочитать) по причине: Ошибка разбора XML:  — [3,35] Фатальная ошибка: Specification mandate value for attribute xmlns SystemId: file:////test1/IGabdrakhmanov/Счет-фактура_29.11.2012_16.xml

что это? косяк подготовки в хмл в стороннем ПО?

А каково содержание файла «Счет-фактура.xsd»? Ощущение, что какого-то параметра не хватает.

хм. а как узнать содержание этого файла?

Не обращай внимание на . Бред я там написал :(

м.б. какие-то символы есть в этих строках, которые раньше узел закрывают ?

А что внутри цикла? Как вы узлы считываете?

оставил файл таким теперь валится на {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Прочитать) по причине: Ошибка разбора XML:  — [10,9] Фатальная ошибка: error parsing attribute name SystemId: file://»адрес»

ничего. просто прочитать узел за узлом

попробуйте посмотреть, хоть в коде типовой, как это происходит. У объекта ЧтениеXML много разных методов и свойств, одно из них значение, это как раз то куда выводятся значения узлов. А у вас они куда выводятся? :) В том виде как у вас ничего и не будет, кроме ошибок.

для с чего это.  у меня просто читаются узлы. самый простой код

валидатор на говорит This page contains the following errors: error on line 3 at column 181: xmlns:_?????°????????????_???????µ??: » is not a valid URI

фак. придется завтра поставщика файлов мучить. а до завтра курить бамбук

может есть какой-нить форум фанатов ХМЛ?

Мож кодировку у ЧтенияXML поставить, хотя наврятли поможет

Вопрос: браузером xml открывает?

Посмотрел в Юникоде 琀愀 — символы китайского алфавита… или японского кто их разберёт. Если браузер тоже не открывает, попробуй удалить <?xml version=»1.0″ encoding=»unicode»?>

Вроде прочитал у меня (что он там начитал уже другой вопрос)

в браузере ИЕ открывается

В итоге помогло следующее: Взять xml представленный в первом сообщении, кроме строки «<?xml version=»1.0″ encoding=»unicode»?>», сохранить с помощью блокнота в кодировке UTF-8.

спасибо!!! заменил строчку на <?xml version=»1.0″ encoding=»UTF-8″?> и пересохранил в формате UTF-8

Всем большое спасибо за помощь! Сейчас меня спас код

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

  • Ошибка при вызове метода контекста прочитать ошибка доступа к файлу
  • Ошибка при вызове метода контекста получитьмакет недопустимое значение параметра параметр номер 1
  • Ошибка при вызове метода контекста прочитать метод недоступен на тонком клиенте
  • Ошибка при вызове метода контекста получитьизвременногохранилища 1с
  • Ошибка при вызове метода контекста просклонять ошибка внешней компоненты