Имя: Пароль:
1C
1С v8
xsd vs xdto
0 oyeah
 
28.11.18
18:56
Добрый вечер!
Подскажите как правильно добавить XDTO пакет в дерево метаданных? Проблема в том, что при импорте из файла xml схемы в пакет xdto не загружаются вложенные свойства.
1 oyeah
 
28.11.18
18:58
<xs:element name="Root">
          <xs:element name="Spisok">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Kontragent" maxOccurs="unbounded"/>
                <xs:element ref="Dogovor" maxOccurs="unbounded"/>
                <xs:element ref="Nomenklatura" maxOccurs="unbounded"/>
                <xs:element ref="BuhOperatsiya" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Tip" type="xs:string" use="optional"/>
        </xs:complexType>
            </xs:element>
            <xs:element name="Kontragent">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="YurLitso"/>
                <xs:element ref="FizLitso"/>
            </xs:sequence>
            <xs:attribute name="Kod" type="xs:string" use="required"/>
            <xs:attribute name="Naimenovanie" type="xs:string" use="required"/>
            <xs:attribute name="VidKontragenta" type="xs:unsignedByte" use="required"/>
            <xs:attribute name="NaimenovanieSokrashchennoe" type="xs:string" use="optional"/>
            <xs:attribute name="INN" type="xs:string" use="optional"/>
            <xs:attribute name="Gruppa" type="xs:string" use="optional"/>
            <xs:attribute name="KOD_UBP_PAY" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>
    
    </xs:element>
2 palsergeich
 
28.11.18
19:12
(1) ИМХО XSD Схема как то не так выглядит
Вот пример реальной XSD Схемы которая в XDTO поместится

<xs:schema xmlns:ns1="http://v8.1c.ru/8.1/data/core"; xmlns:tns="http://v8.1c.ru/agent/scripts/1.0"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://v8.1c.ru/agent/scripts/1.0"; attributeFormDefault="unqualified" elementFormDefault="qualified">
    <xs:import namespace="http://v8.1c.ru/8.1/data/core"/>;
    <xs:complexType name="ClusterAdministrationInfo">
        <xs:sequence>
            <xs:element name="AgentConnectionString" type="xs:string"/>
            <xs:element name="WorkServerUserName" type="xs:string" nillable="true" minOccurs="0"/>
            <xs:element name="WorkServerPassword" type="xs:string" nillable="true" minOccurs="0"/>
            <xs:element name="ClusterPort" type="xs:decimal"/>
            <xs:element name="ClusterUserName" type="xs:string" nillable="true"/>
            <xs:element name="ClusterPassword" type="xs:string" nillable="true"/>
            <xs:element name="IBUserName" type="xs:string" nillable="true"/>
            <xs:element name="IBPassword" type="xs:string" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DesignerBatchParams">
        <xs:sequence>
            <xs:element name="LogFile" type="xs:string"/>
            <xs:element name="ResultFile" type="xs:string"/>
            <xs:element name="StartPath" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="FileStorageAccessParams">
        <xs:sequence>
            <xs:element name="URL" type="xs:string"/>
            <xs:element name="UserName" type="xs:string" nillable="true"/>
            <xs:element name="Password" type="xs:string" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="UpdateFile">
        <xs:sequence>
            <xs:element name="Id" type="ns1:UUID"/>
            <xs:element name="Extension" type="xs:string"/>
            <xs:element name="Version" type="xs:string" nillable="true"/>
            <xs:element name="AddProcFileId" type="ns1:UUID" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
3 oyeah
 
28.11.18
19:17
(2) Шапку убрал специально. xsd загружается в 1с но теряется вложенное свойство "Spisok" и все его вложенные атрибуты
4 oyeah
 
28.11.18
19:20
<xs:schema xmlns:tns="http://www.test.ru/ar"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://www.test.ru/ar"; attributeFormDefault="unqualified" elementFormDefault="qualified">

    <xs:element name="Root">
          <xs:element name="Spisok">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Kontragent" maxOccurs="unbounded"/>
                <xs:element ref="Dogovor" maxOccurs="unbounded"/>
                <xs:element ref="Nomenklatura" maxOccurs="unbounded"/>
                <xs:element ref="BuhOperatsiya" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Tip" type="xs:string" use="optional"/>
        </xs:complexType>
            </xs:element>
            <xs:element name="Kontragent">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="YurLitso"/>
                <xs:element ref="FizLitso"/>
            </xs:sequence>
            <xs:attribute name="Kod" type="xs:string" use="required"/>
            <xs:attribute name="Naimenovanie" type="xs:string" use="required"/>
            <xs:attribute name="VidKontragenta" type="xs:unsignedByte" use="required"/>
            <xs:attribute name="NaimenovanieSokrashchennoe" type="xs:string" use="optional"/>
            <xs:attribute name="INN" type="xs:string" use="optional"/>
            <xs:attribute name="Gruppa" type="xs:string" use="optional"/>
            <xs:attribute name="KOD_UBP_PAY" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>
    
    </xs:element>
  
        <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
        <xs:enumeration value="Договоры"/>
        <xs:enumeration value="Контрагенты"/>
        </xs:restriction>
       </xs:simpleType>  
</xs:schema>
5 oyeah
 
28.11.18
19:21
(4) полное содержание xsd в (4). В 1с xdto после загрузки , выглядит так https://wampi.ru/image/xHsTex
6 MaxS
 
28.11.18
19:37
А в конфигураторе набить руками? Самый правильный вариант. Самый долгий.
7 palsergeich
 
28.11.18
19:43
(5) Ошибка какая нибудь тупая, попробуй набери небольшую часть в конфигураторе и найди отличие.
Я за последний год мало с XSD дело имел и глаз уже не тот.
8 oyeah
 
28.11.18
19:57
(6) могу нащелкать в конфигураторе, выгружаю в xsd, но не могу добиться xsd идентичного содержания как в эталонном. Вот и думаю, либо эталон косячный либо я невьезжаю в xdto. Вот мне непонятно, может ли быть element вложен в element ?
9 palsergeich
 
28.11.18
20:02
(8) Там элемент имеет тип, в случае дерева - анонимный, а вот уже в типе идут дальше элементы
10 palsergeich
 
28.11.18
20:06
В самом простом случае вложенности https://hkar.ru/WruF
<xs:schema xmlns:tns="http://www.sample-package.org"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://www.sample-package.org"; attributeFormDefault="unqualified" elementFormDefault="qualified">
    <xs:element name="Свойство1">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Свойство1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Свойство1"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
11 d4rkmesa
 
28.11.18
20:10
(0) В крайнем случае, можно забить и xsd загружать в двоичный макет. А в каком редакторе разрабатывали?
12 palsergeich
 
28.11.18
20:18
(11) У него нарушена структура дерева XSD
Я чуть чуть изменил и стало лучше

<xs:schema xmlns:tns="http://www.test.ru/ar"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://www.test.ru/ar"; attributeFormDefault="unqualified" elementFormDefault="qualified">

    <xs:element name="Root">
          
        <xs:complexType>
        <xs:element name="Spisok">
            <xs:sequence>
                <xs:element ref="Kontragent" maxOccurs="unbounded"/>
                <xs:element ref="Dogovor" maxOccurs="unbounded"/>
                <xs:element ref="Nomenklatura" maxOccurs="unbounded"/>
                <xs:element ref="BuhOperatsiya" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Tip" type="xs:string" use="optional"/>
            </xs:element>
        </xs:complexType>
            
            <xs:element name="Kontragent">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="YurLitso"/>
                <xs:element ref="FizLitso"/>
            </xs:sequence>
            <xs:attribute name="Kod" type="xs:string" use="required"/>
            <xs:attribute name="Naimenovanie" type="xs:string" use="required"/>
            <xs:attribute name="VidKontragenta" type="xs:unsignedByte" use="required"/>
            <xs:attribute name="NaimenovanieSokrashchennoe" type="xs:string" use="optional"/>
            <xs:attribute name="INN" type="xs:string" use="optional"/>
            <xs:attribute name="Gruppa" type="xs:string" use="optional"/>
            <xs:attribute name="KOD_UBP_PAY" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>
    
    </xs:element>
  
        <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
        <xs:enumeration value="Договоры"/>
        <xs:enumeration value="Контрагенты"/>
        </xs:restriction>
       </xs:simpleType>  
</xs:schema>
13 oyeah
 
28.11.18
20:21
(11) этот xsd сторонняя контора разрабатывала. Возможно там косяки. меня смущает element вложенный в element
14 palsergeich
 
28.11.18
20:23
(13) Тот XSD который в (4) - не валиден
15 palsergeich
 
28.11.18
20:24
http://www.utilities-online.info/xsdvalidation/#.W_7PVmgzaUk вот тут чекни, ему не нравится
16 oyeah
 
28.11.18
20:29
(12) спасибо, тоже пришел к такому мнению.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс