Не читается XML созданный 1С #761879


#0 by DES
сделал выгрузку документа в ОбработкеПроведения в файл получил: <Сумма>40.95</Сумма> <ДокСсылка xmlns:xsi="; xsi:type="DocumentRef.Детали">70000fb5-ad3a-11e5-bbc5-f46d047a0000</ДокСсылка> читаю файл, дает ошибку преобразования: Ошибка преобразования данных XDTO: Чтение объекта типа: { - Проверка дополнительного свойства: по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - Проверка дополнительного свойства:     форма: Элемент если удалить строку в файле XML <ДокСсылка xmlns:xsi="; xsi:type="DocumentRef.Детали">70000fb5-ad3a-11e5-bbc5-f46d047a0000</ДокСсылка> то читается и преобразовывается как надо. Как победить ? (корябать файл нежелательно)
#1 by Записьдампа
"{; - ни на что не намекает? Укажи тип при чтении. И да, шрайбить файл можно?
#2 by DES
поясни , как указать тип?
#3 by Serginio1
#4 by DES
Сделал не работает поясните, в чем проблема, то что тип нужно указать понятно, не понятно тип чего.
#5 by Записьдампа
Тип элемента данных XDTO, который ты читаешь.
#6 by Serginio1
Зачем ты используешь ТекстФайл? У ЗаписьXML есть ОткрытьФайл(<ИмяФайлаXML>, <ТипКодировки>)
#7 by DES
А какой у меня тип элемента, если я не читаю поэлиментно? я же создал XML из документа одной командой встроенного языка, по идее я могу прочитать XML также одной командой. (оно так и происходит), только вот если попадается сложный элемент (ссылка на на другой документ) то сбоит. По смыслу же в XML (внутри) уже есть описание этого сложного элемента, как его еще раз описать снаружи ? <ДокСсылка xmlns:xsi=";; xsi:type="DocumentRef.Детали">70000fb5-ad3a-11e5-bbc5-f46d047a0000</ДокСсылка>
#8 by DES
так вроде и использую ЧтениеXML.ОткрытьФайл(ИмяФайла); где ты видишь что текстовый ?
#9 by Записьдампа
А я-то откуда знаю? >я же создал XML из документа одной командой встроенного >языка, по идее я могу прочитать XML также одной командой. Можешь конечно, никто не запрещает. Вот только есть один момент - 1С не знает, что то, что ты хочешь прочитать, сформировано той же 1С. Файл для нее ничем не отличается от результата работы пляски маньяка на клавиатуре в блокноте. Поэтому надо или указывать в XML полностью квалицифированный тип, или указывать тип при чтении. Этачо?
#10 by DES
по Это запись XML в файл на диске. >Поэтому надо или указывать в XML полностью квалицифированный тип, или указывать тип при чтении. Как указать? не получается.
#11 by Serginio1
Зачем ТекстФайл если ЗаписьXML.ОткрытьФайл ЗаписатьXML(ЗаписьXML, ДокументОбъект); ЗаписьXML.Записать
#12 by Serginio1
Но лучше использовать СериализаторXDTO для чтения и записи
#13 by Записьдампа
Что указать - квалифицированный тип при записи или тип при чтении? Что не получается-то? Квалифицированный тип при записи у тебя не указывается, потому что ты пишешь его через не то что надо. Квалифицированный тип при чтении надо указать для того объекта, который ты читаешь. Его кроме тебя никто не знает. Может тебе стоит отвлечься и почитать сначала теорию?
#14 by Serginio1
Кстати Merge есть и в postgresql
#15 by Записьдампа
Вот ты сейчас ТС вообще наповал убил =)
#16 by Serginio1
Прошу прощения. Промахнулся
#17 by Serginio1
12+
#18 by Записьдампа
Ну, с Наступающим! Наливай! =)
#19 by Serginio1
И тебя с тем же. Пусть этот год будетсамым худшим из последующих! К сожалению, пью только неспиртное.
#20 by DES
>Квалифицированный тип при записи у тебя не указывается, потому что ты пишешь его через не то что надо. А как нужно правильно ?
#21 by Записьдампа
По схеме в . И при записи надо указать явное назначение типа - там параметр есть.
#22 by Serginio1
Через сериализатор не обязательно. Тип: НазначениеТипаXML. Определяет необходимость назначения типа элементу XML. Значение по умолчанию: Неявное. <Форма> (необязательный) Тип: ФормаXML. Форма записи элемента данных в XML. Описание варианта метода: Записывает значения в формате XML без указания имени элемента. В качестве имени элемента будет использован тип значения.
#23 by Serginio1
Просто лучше явно использовать СериализаторXDTO СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ДокументОбъект);
#24 by DES
XML не отличается от первоначального
#25 by DES
а вот через СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ДокументОбъект); отличается
#26 by Записьдампа
Извиняюсь за настойчивость, но в и таки про параметр назначения типа что-нибудь говорилось?
#27 by DES
искузми, как он должен выглядеть ?
#28 by DES
+ тип строка ? "xmlns="; xmlns:xs="; xmlns:xsi="; так ?
#29 by Записьдампа
Если читаешь в той же конфигурации, что и записывает, то полдела ты сделал - в пространство имён попал. Теперь попробуй прочитать.
#30 by DES
так как указать параметр ?
#31 by Serginio1
Для начала прочитай через СериализаторXDTO Если не получится ЗаписатьXML(ЗаписьXML, ДокументСсылка.ПолучитьОбъект,НазначениеТипаXML.Явное);
#32 by Serginio1
Тьфу
#33 by Записьдампа
ээээ.... Указав нужное число запятых, нет?
#34 by Serginio1
Обычно не нужно указывать НазначениеТипа
#35 by DES
Через СериализаторXDTO  получилось, спасибо
#36 by DES
+ а по старому, не пойму принцип указания параметра
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С