Имя: Пароль:
1C
1С v8
Запись XML с помощью фабрики XDTO ☑
0 Kasper076
 
23.03.12
✎
10:20
Много полезного узнал из темы v8: v8: Запись xml с помощью фабрики xdto , но вопросы остались.
Пишу выгрузку алкогольной декларации в формате XML. Есть XSD-схема файла выгрузки.
Заголовок схемы выглядит так:
 <?xml version="1.0" encoding="windows-1251" ?>
- <!--  edited with XMLSpy v2010 (http://www.altova.com) by MESMERiZE (MiZE)
 -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified" attributeFormDefault="unqualified">
Затем идет элемент - <xs:element name="Файл">, а за ним описание типов использующихся в схеме. Например: <xs:complexType name="АдрТип">.
Из указанной выше темы выяснил, что заголовке схемы нужно прописать атрибут targetNamespace="URIПространстваименСхемы". После этого появляется ПакетXDTO содержащий нужную схему. После этого я создал XSD-схему небольшой конфигурации 1С, чтобы изучить ее структуру. Выяснил, что в шапке необходимо прописать еще атрибут xmlns:tns="URIПространстваименСхемы", который будет определять префикс для типов данных содержащихся в схеме. И кроме этого все атрибуты типизированные без префикса нужно привести в виду tupe="tns:ИмяТипа". Возможно что-то неверно сформулировал - поправьте.
Далее код выгрузки:
Фабрика = СоздатьФабрикуXDTO("D:\Prl_5.xsd");
ПакетXDTO = Фабрика.Пакеты.Получить("http://www.kasper076.ru");
СвойствоФайл = ПакетXDTO.КорневыеСвойства.Получить("Файл");
ТипФайл = СвойствоФайл.Тип;
ФайлОбъект = Фабрика.Создать(ТипФайл);
ФайлОбъект.ВерсФорм = "4.20";
ФайлОбъект.ДатаДок = Формат(РабочаяДата,"ДФ=dd.MM.yyyy");
ФайлОбъект.НаимПрог = "1с";
   
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\Prl_5.xml", "windows-1251");
ЗаписьXML.ЗаписатьОбъявлениеXML();    
   
Фабрика.ЗаписатьXML(ЗаписьXML, ФайлОбъект, "Файл");

ЗаписьXML.Закрыть();    

Созданный файл выглядит так:
<?xml version="1.0" encoding="windows-1251" ?>
- <Файл xmlns="http://www.kasper076.ru" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсФорм="4.20" ДатаДок="23.03.2012" НаимПрог="1С">
 </Файл>
А если я выгружаю из программы для сдачи декларации, то он выглядит вот так:

 <?xml version="1.0" encoding="windows-1251" ?>
- <Файл ДатаДок="22.03.2012" ВерсФорм="4.20" НаимПрог="Декларант Алко версия 3.0.1">

Т.е. в нем отсутствуют URIПространстваименСхемы. Подскажите, как сохранить файл без указания URIПространстваименСхемы?
Независимо от того, куда вы едете — это в гору и против ветра!