XDTO не сохраняет реквизиты
Здравствуйте, уважаемые инфостартцы.
Столкнулся с проблемой корни которой для меня загадка.
Есть XSD который был загружен в расширение и в отладчике прекрасно разворачивается, все данные вставляются корректно, поля верифицируются тоже. Но при записи, половина того что выгружается теряется.
При выгрузке получается следующее
Во первых что-то с xmlns... почему-то targetNamespace не отрабатывает, возможно, поэтому по пути goods-catalog/bar-code/price-entry нет записи department а только "простые" типы, а в отладчике видно все поля.
ЧЯДНТ?
Столкнулся с проблемой корни которой для меня загадка.
Есть XSD который был загружен в расширение и в отладчике прекрасно разворачивается, все данные вставляются корректно, поля верифицируются тоже. Но при записи, половина того что выгружается теряется.
Часть XSD |
---|
<xs:schema xmlns:tns="http://www.crystals.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.crystals.ru" attributeFormDefault="unqualified" elementFormDefault="unqualified">
<xs:complexType name="bar-codeType">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="price-entry" type="tns:priceType" minOccurs="0"/>
<xs:element name="count" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0.0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="default-code" type="xs:boolean" minOccurs="0"/>
<xs:element name="discount-forbidden" type="xs:boolean" minOccurs="0"/>
<xs:element name="plugin-property" type="tns:plugin-propertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="shop-indices" minOccurs="0">
<xs:simpleType>
<xs:list itemType="xs:positiveInteger"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="code" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="marked" type="xs:boolean"/>
<xs:attribute name="do-not-send-to-scales">
<xs:simpleType>
<xs:restriction base="xs:boolean"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="deleted" type="xs:boolean"/>
<xs:attribute name="barcode-type" type="xs:string"/>
<xs:attribute name="deny-sale-juristic-person" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="bar-codeTypeExt">
<xs:complexContent>
<xs:extension base="tns:bar-codeType">
<xs:attribute name="marking-of-the-good" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="departmentType">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="number" type="xs:long" use="required"/>
</xs:complexType>
<xs:simpleType name="packType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="9999"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="price-typeType">
<xs:restriction base="xs:string">
<xs:enumeration value="PRICE"/>
<xs:enumeration value="DISCOUNT_PERCENT"/>
<xs:enumeration value="DISCOUNT_VALUE"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="goods-catalog">
<xs:sequence>
<xs:element name="bar-code" type="tns:bar-codeTypeExt" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="plugin-propertyType">
<xs:sequence>
<xs:element name="plugin-property" type="tns:plugin-propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="key" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
<xs:complexType name="priceTagPreset">
<xs:attribute name="count">
<xs:simpleType>
<xs:restriction base="xs:int"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="templateCode" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="priceType">
<xs:sequence>
<xs:element name="begin-date" type="xs:dateTime" minOccurs="0"/>
<xs:element name="end-date" type="xs:dateTime" minOccurs="0"/>
<xs:element name="number" type="xs:long" default="1" minOccurs="0"/>
<xs:element name="department" type="tns:departmentType"/>
<xs:element name="identifier" type="xs:string" minOccurs="0"/>
<xs:element name="pack" type="tns:packType" default="1" minOccurs="0"/>
<xs:element name="print" type="tns:priceTagPreset" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="template-format" type="xs:string" minOccurs="0"/>
<xs:element name="old-price" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="price" use="required">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0.0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="currency">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="deleted" type="xs:boolean"/>
<xs:attribute name="approve-without-delay" type="xs:boolean"/>
<xs:attribute name="price-type" type="tns:price-typeType" default="PRICE"/>
</xs:complexType>
</xs:schema>
Показать |
При выгрузке получается следующее
Результат выгрузки |
---|
<?xml version="1.0" encoding="UTF-8"?>
<goods-catalog xmlns="http://www.crystals.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<bar-code xmlns="" xmlns:d2p1="http://www.crystals.ru" code="2000092220018" marked="true" marking-of-the-good="00-00001767">
<price-entry price="250">
<begin-date>2024-03-07T00:00:00</begin-date>
<end-date>2026-03-07T00:00:00</end-date>
<number>1</number>
</price-entry>
<count>0.5</count>
</bar-code>
</goods-catalog> Показать |
Во первых что-то с xmlns... почему-то targetNamespace не отрабатывает, возможно, поэтому по пути goods-catalog/bar-code/price-entry нет записи department а только "простые" типы, а в отладчике видно все поля.
ЧЯДНТ?
По теме из базы знаний
- XDTO-пакеты, xml, xml schema
- Графическая схема. Управление при помощи XDTO.
- Обработка для автоматического формирования XSD-пакета (xsd-файл) для загрузки в XDTO пакет в 1С 8.3
- Создание множественного дополнительного реквизита. Управление торговлей 11
- Заполнение значений реквизитов документов по умолчанию (УТ 11, КА 2, ERP)
Найденные решения
Разными словами можно написать разные программы, большинство из которых или вообще не будут работать, или будут работать неправильно. С ХДТО особенность в том, что каждый объект нужно создавать и нельзя их переиспользовать, но не видя неправильно написанный код сложно дать какие-то рекомендации.А правильно написанного когда гуглить можно утром начиная и вечером заканчивая.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Разными словами можно написать разные программы, большинство из которых или вообще не будут работать, или будут работать неправильно. С ХДТО особенность в том, что каждый объект нужно создавать и нельзя их переиспользовать, но не видя неправильно написанный код сложно дать какие-то рекомендации.А правильно написанного когда гуглить можно утром начиная и вечером заканчивая.
(2) а по xmlns не подскажите?
Записываю так:
Записываю так:
ФайлXML = Новый ЗаписьXML;
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0");
ФайлXML.ОткрытьФайл(КаталогВременныхФайлов() + "goods.xml", ПараметрыЗаписиXML);
ФайлXML.ЗаписатьОбъявлениеXML();
ВыгрузкаФабрикаXDTO.ЗаписатьXML(ФайлXML, СписокТоваров,,"http://www.crystals.ru");
ФайлXML.Закрыть();
(7) в общем видимо не проходит модерацию... :(
Выгрузку делаю через
В XML формируются строки
Выгрузку делаю через
ФайлXML = Новый ЗаписьXML;
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0");
ФайлXML.ОткрытьФайл(КаталогВременныхФайлов() + "goods.xml", ПараметрыЗаписиXML);
ФайлXML.ЗаписатьОбъявлениеXML();
ВыгрузкаФабрикаXDTO.ЗаписатьXML(ФайлXML, СписокТоваров,,[неймСпейс]);
ФайлXML.Закрыть();
В XML формируются строки
<?xml version="1.0" encoding="UTF-8"?>
<goods-catalog xmlns="[неймСпейс]" xmlns:xs="XMLSchema" xmlns:xsi="XMLSchema-instance">
<bar-code xmlns="" xmlns:d2p1="[неймСпейс]"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот