|
Некорректно формируется XML документ. | ☑ | ||
---|---|---|---|---|
0
Draconus
17.02.14
✎
14:51
|
Всем доброго дня!
С XML занимаюсь последние часа 2, так что особо не разбираюсь) Проблема следующая... Пишу код: ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла, Банк.ТипКлиентБанка.КодоваяСтраница); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("package"); ЗаписьXML.ЗаписатьНачалоЭлемента("table"); ЗаписьXML.ЗаписатьАтрибут("name", "SertVOp"); ЗаписьXML.ЗаписатьНачалоЭлемента("tabledesc"); Для Каждого СтрокаТЗ Из ТЗ Цикл Если СтрокаТЗ.Обязательно Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("fielddesc"); ЗаписьXML.ЗаписатьАтрибут("name", Строка(СтрокаТЗ.ПолеФайла)); ЗаписьXML.ЗаписатьАтрибут("type", Строка(СтрокаТЗ.ТипЗначения)); ЗаписьXML.ЗаписатьАтрибут("length", Строка(СтрокаТЗ.Длина)); ЗаписьXML.ЗаписатьКонецЭлемента(); //fielddesc КонецЕсли; КонецЦикла; .... Все бы хорошо, но на выходе получается несколько не то расположение атрибутов как в коде: <?xml version="1.0" encoding="WINDOWS-1251"?> -<package> -<table name="SertVOp"> -<tabledesc> <fielddesc name="NUM" length="19" type="numeric"/> <fielddesc name="DATE" length="10" type="date"/> <fielddesc name="PAYER" length="255" type="string"/> <fielddesc name="BANKPAY" length="254" type="string"/> <fielddesc name="COUNTRY" length="3" type="string"/> <fielddesc name="PAYACC" length="30" type="string"/> </tabledesc> - Никто не подскажет что это и как исправить? |
|||
1
Jaap Vduul
17.02.14
✎
14:58
|
По стандарту порядок аттрибутов не является существенным.
http://www.w3.org/TR/REC-xml/#sec-starttags |
|||
2
Draconus
17.02.14
✎
15:07
|
(1) Спасибо.
Если Клиент-банк будет неправильно читать файл, придется дальше думать)) |
|||
3
Jaap Vduul
17.02.14
✎
15:11
|
(2)
В случае упёртых контрагентов помогает метод ЗаписатьБезОбработки() |
|||
4
Draconus
17.02.14
✎
15:14
|
(3) Упертым может быть только сам банк))
Если ты про Контрагентов-Клиентов (аля франча/фриланс), то с такими закончил работать... |
|||
5
пипец
17.02.14
✎
16:26
|
ваще то техподдержка банка обычно предоставляет для 1С шаблон выгрузки и описание формата с примерами
|
|||
6
Джордж1
17.02.14
✎
16:42
|
Мне тут один WEB-разработчик втирал, что 1С неправильно формирует файл. реквизиты не в той последовтельности
|
|||
7
Draconus
18.02.14
✎
08:56
|
(5) Так файл есть и примеры тоже есть. Согласно им я и записывал атрибуты по порядку, но расположение в самом файле не соответствует примеру. Вот я и обратился сюда)
|
|||
8
Torquader
18.02.14
✎
12:31
|
(6) Вполне может быть.
Вообще-то XML - это не стандарт записи данных - это тип файла. Причём, конкретное содержание файла оговаривается теми, кто его использует. Например, 1С пишет данные объекта в параметры, а не в дочерние теги, как некоторые системы - так что, с точки зрения какого-то стороннего xml-парсера 1С может работать совершенно неправильно. P.S. если кто-то хочет писать строго и правильно, то XML-это подмножество текстовых файлов, и "запись текста" стерпит всё, что угодно. |
|||
9
Draconus
18.02.14
✎
12:40
|
(8) То есть, как я понял могут быть коллизии при загрузке в КБ...
Отсюда нам поможет только: Запись.ЗаписатьБезОбработки("<fruit>apple</fruit>"); //(С.П.)? |
|||
10
Torquader
18.02.14
✎
15:01
|
(9) Да.
Просто 1С предполагает <object type="fruit" name="apple" /> вместо вашего <fruit>apple</fruit> |
|||
11
Draconus
18.02.14
✎
16:02
|
(10) Ну логично, что можно написать так:
Запись.ЗаписатьБезОбработки("<object type=""fruit"" name=""apple"" />"); пример просто был взят из Синтакс-помощника. |
|||
12
Зойч
18.02.14
✎
16:08
|
а может в тз не в том порядке. Вроде запист хмл последовательно пишет и с порядком не должно быть проблем
|
|||
13
Torquader
18.02.14
✎
16:23
|
(11) Просто, всё зависит от того, как будут читать на той стороне - некоторые читатели на символах пробела, например, спотыкаются, а 1С их от души вставляет.
|
|||
14
Draconus
18.02.14
✎
17:26
|
(12) Причем тут запись в ТЗ?)) Я таблицу обхожу, а записываю сам (видно в (0)).
(13) Да, надо тестировать и смотреть... Доделаю, сядем с бухгалтерами и будем пытаться в Клиент-банк грузить))) |
|||
15
Torquader
18.02.14
✎
17:46
|
(14) Попробуй записать в явной форме и посмотреть, чем он там "давится".
Он его читает или нет ? Просто, если читает - то нафига мы тут сидим и гадаем, чтобы было, если бы там был очередной "сферонь". А если не читает, то он должен сказать, что он не читает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |