Обработка xml файлов с ошибками

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

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

Что такое ошибка преобразования данных XML

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

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

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

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

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

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

Заключение

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

Содержание:

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.

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

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

есть метод:

public void LoadDataNew()
{
 docXML = new XmlDocument();
        docXML.Load(userPath);
 try
{
//извлекаем данные из xml файла
}
catch (System.Xml.XmlException e) 
 {
                OpenForm(errorHandlingForm);               
                Debug.Log(e);
}
finally { }

В общем пытаюсь обработать ошибку XmlException, которая возникает тогда, когда xml-файл содержит ошибки в структуре или вообще ничего не содержит. К примеру, ошибка XmlException появляется и тогда, когда файл, который пытается загрузить пользователь, пуст, т.е. как минимум не содержит ни одного узла, а как максимум вообще может ничего не содержать. Но обработать таким образом ошибку не получается, как правильно ее обработать?

задан 29 июл 2019 в 7:19

Volha's user avatar

7

Чтобы проверить пустой ли файл, как вариант, можно попробовать отрыть файл с XML как обычный текстовый и проверить длину содержимого.

using (StreamReader fs = new StreamReader(@"D:1.xml"))
{
    if(fs.ReadToEnd().Trim().Length>0)
    {
        // Файл не пустой
    }
}

Что касается структуры XML, то здесь только валидация по схеме (xsd). Пример здесь.

ответ дан 29 июл 2019 в 7:51

Streletz's user avatar

StreletzStreletz

11.7k9 золотых знаков27 серебряных знаков39 бронзовых знаков

2

Понравилась статья? Поделить с друзьями:
  • Обработка 1с ошибка совместного доступа к файлу
  • Обработка ошибок в spring boot
  • Обработать ошибку от сервера okhttp kotlin
  • Обработка ошибок в powershell скрипте
  • Обоюдная ошибка или переигровка жест