Имя: Пароль:
1C
1С v8
XDTO-пакет. Проблемы при импорте
0 Zixxx
 
01.12.13
09:17
Есть схема такого вида, у нее есть ссылка на свойство из другой схемы

[code]
<xs:schema xmlns:i="http://www.w3.org/2001/XMLSchema-instance"; xmlns:a="http://mz.gov.kz/form1/v1"; xmlns:b="http://schemas.datacontract.org/2004/07/MSS.Business.Data.AcReg.ForExternalService"; xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays"; xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"; attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xs="http://www.w3.org/2001/XMLSchema">;
  <xs:import namespace="http://tempuri.org/"; />
  <xs:element name="Envelope">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Body">
          <xs:complexType>
            <xs:sequence>
              <xs:element xmlns:q1="http://tempuri.org/"; ref="q1:GetExternalPersonifiedRegisterByIDsVer1Response" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
[/code]

Проблема в том что при импорте в 1с теряется элемент

[]
<xs:element xmlns:q1="http://tempuri.org/"; ref="q1:GetExternalPersonifiedRegisterByIDsVer1Response" />
[/code]

В ручную его тоже не получается добавить :(. Поэтому при попытки чтения xml вываливается ошибка разбора xml, так как 1с не смогла собрать пакеты воедино.

Интересно то, что xml читается отлично если в метод СоздатьФабрикуXDTO() поместить массив пакетов из файлов. А вот если пакеты находятся в конфигурации, то при чтении появляется ошибка разбора:

[code]
НаборСхем = ФабрикаXDTO.ЭкспортСхемыXML(Пакеты);
ФабрикаДанных = Новый ФабрикаXDTO(НаборСхем);
ПакетДанных = ФабрикаДанных.Пакеты.Получить(ТипXML.URIПространстваИмен);
КорневыеСвойства = ПакетДанных.КорневыеСвойства.Получить(ТипXML.ИмяТипа);
Документ = ФабрикаДанных.ПрочитатьXML(НовыйЧтение, КорневыеСвойства.Тип);
[/code]

... вываливается ошибка разбора xml. Посмотрев в отладке увидел что тип body не имеет КоллекциюСвойствXDTO.

Ссылка на файлы: http://yadi.sk/d/vct7UKrODZ4wL

Кто в курсе, почему 1с нормально создает фабрику по схемам из файлов, и создает битую фабрику по пакетам xdto из конфигурации? И как это можно исправить?