Подтверждаю актуальность задачи. нужен макрос либо надстройка. позволяющая любой домохозяйке файл xlsx/xls выгружать xml !
"СИСТЕМНАЯ ИНФОРМАЦИЯ МАССОВОЙ ЗАГРУЗКИ
XSD-схема для массовой загрузки оферт находится по ссылке
Используется тип offerImportPacket
Справочники Портала поставщиков можно скачать, перейдя по следующим ссылкам:
Справочник видов продукции (categoryType)
Справочник валют (currencyType)
Справочник характеристик (detailType)
Справочник характеристик по видам продукции (category)
Справочник значений НДС (ndsType)
Справочник единиц упаковки (packageType)
Справочник тегов (tagType)
Справочник единиц измерения (okeiType)
Справочник КПГЗ (kpgzType)"
Схема xsd
Скрытый текст |
---|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://market.zakupki.mos.ru/spIntegration/1.1" xmlns:c="http://market.zakupki.mos.ru/spIntegration/1.1/common" version="1.1.0.0" targetNamespace="http://market.zakupki.mos.ru/spIntegration/1.1" elementFormDefault="qualified"> <xsd:import namespace="http://market.zakupki.mos.ru/spIntegration/1.1/common" schemaLocation="spExchange.common.xsd"/> <xsd:complexType name="offerType"> <xsd:annotation> <xsd:documentation>Данные для импорта оферты</xsd:documentation> </xsd:annotation> <xsd:all> <xsd:element name="code" minOccurs="0"> <xsd:annotation> <xsd:documentation>Артикул</xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="category" type="categoryType"> <xsd:annotation> <xsd:documentation>Вид продукции</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="isVisibleToStateCustomers" type="xsd:boolean" minOccurs="0"> <xsd:annotation> <xsd:documentation>Показывать государственным заказчикам.</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="isAvailableToIndividuals" type="xsd:boolean" minOccurs="0"> <xsd:annotation> <xsd:documentation>Доступно для заказа физическими лицами</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="name" type="xsd:string"> <xsd:annotation> <xsd:documentation> Наименование(ключ) оферты. При загрузке заменяется на системное наименование. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="okei" type="okeiType"> <xsd:annotation> <xsd:documentation>Единица измерения</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="currency" type="currencyType"> <xsd:annotation> <xsd:documentation>Валюта единицы продукции</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="costPerUnit" type="c:money"> <xsd:annotation> <xsd:documentation>Цена за единицу продукции</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="costPerUnitWithoutNds" type="c:money" minOccurs="0"> <xsd:annotation> <xsd:documentation>Цена за единицу продукции без НДС</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="discounts" minOccurs="0"> <xsd:annotation> <xsd:documentation>Скидки за количество</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="discount" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="costPerUnit" type="c:money"> <xsd:annotation> <xsd:documentation>Цена за единицу продукции</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="costPerUnitWithoutNds" type="c:money" minOccurs="0"> <xsd:annotation> <xsd:documentation>Цена за единицу продукции без НДС</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="startValue" type="xsd:int" minOccurs="0"> <xsd:annotation> <xsd:documentation>Цена за единицу продукции без НДС</xsd:documentation> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ndsRate" type="ndsType"> <xsd:annotation> <xsd:documentation>Ставка НДС</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="minValue" type="xsd:decimal"> <xsd:annotation> <xsd:documentation>Минимальное кол-во</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="maxValue" type="xsd:decimal" minOccurs="0"> <xsd:annotation> <xsd:documentation>Максимальное кол-во</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="beginDate" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation>Дата начала действия</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="endDate" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation>Дата окончания действия</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="minDays" type="xsd:int"> <xsd:annotation> <xsd:documentation>Количество дней для поставки ОТ</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="maxDays" type="xsd:int"> <xsd:annotation> <xsd:documentation>Количество дней для поставки ДО</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="package" type="packageType" minOccurs="0"> <xsd:annotation> <xsd:documentation>Тип упаковки</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="packageComment" type="xsd:string" minOccurs="0"> <xsd:annotation> <xsd:documentation> Единица упаковки (иная) (тип упаковки не представленный в справочнике) </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="perPackage" type="c:fixed" minOccurs="0"> <xsd:annotation> <xsd:documentation>Количество единиц в упаковке</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="regions" minOccurs="0"> <xsd:annotation> <xsd:documentation>Регионы поставки</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="region" minOccurs="1" type="regionType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="image" type="c:url" minOccurs="0"> <xsd:annotation> <xsd:documentation>Изображение</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="contractProject" type="c:url" minOccurs="0"> <xsd:annotation> <xsd:documentation>Проект контракта</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="details" minOccurs="0"> <xsd:annotation> <xsd:documentation>Характеристики</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="detail" minOccurs="0" type="detailType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="additionalDetails" type="xsd:string"> <xsd:annotation> <xsd:documentation>Дополнительные характеристики</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="additionalInformation" type="xsd:string"> <xsd:annotation> <xsd:documentation>Дополнительные сведения</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="tags" minOccurs="0"> <xsd:annotation> <xsd:documentation>Теги</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="tag" minOccurs="0" type="tagType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:all> </xsd:complexType> <xsd:element name="offer" type="offerType"/> <xsd:complexType name="offerPriceUpdateType"> <xsd:annotation> <xsd:documentation>Данные для обновление стоимости в оферте</xsd:documentation> </xsd:annotation> <xsd:all> <xsd:element name="code" minOccurs="1"> <xsd:annotation> <xsd:documentation>Артикул</xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="costPerUnit" type="c:money" minOccurs="0"> <xsd:annotation> <xsd:documentation>Цена за единицу продукции</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="minValue" type="xsd:decimal" minOccurs="0"> <xsd:annotation> <xsd:documentation>Минимальное кол-во</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="maxValue" type="xsd:decimal" minOccurs="0"> <xsd:annotation> <xsd:documentation>Максимальное кол-во</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="maxValueUnbounded" type="xsd:boolean" minOccurs="0"> <xsd:annotation> <xsd:documentation>Максимальное кол-во неограничено</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="endDate" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation>Дата окончания действия</xsd:documentation> </xsd:annotation> </xsd:element> </xsd:all> </xsd:complexType> <xsd:complexType name="okeiType"> <xsd:annotation> <xsd:documentation>Единица измерения</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="unitType"> <xsd:annotation> <xsd:documentation>Единица измерения характеристики</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="categoryType"> <xsd:annotation> <xsd:documentation>Вид продукции</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"> <xsd:sequence> <xsd:element name="details" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation>Коллекция характеристик</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="detail" minOccurs="0" type="detailType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="children" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation>Коллекция детей узла</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="category" minOccurs="0" type="categoryType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="parentId" type="xsd:int" use="optional"> <xsd:annotation> <xsd:documentation>Идентификатор родительского узла</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="isLeaf" type="xsd:boolean" use="optional"> <xsd:annotation> <xsd:documentation>Признак листа</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="kpgzId" type="xsd:int" use="optional"> <xsd:annotation> <xsd:documentation>Связанный КПГЗ</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ndsType"> <xsd:annotation> <xsd:documentation>Ставка НДС</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="kpgzType"> <xsd:annotation> <xsd:documentation>КПГЗ</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="spgzType"> <xsd:annotation> <xsd:documentation>СПГЗ</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="currencyType"> <xsd:annotation> <xsd:documentation>Валюта</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tagType"> <xsd:annotation> <xsd:documentation>Тег</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="packageType"> <xsd:annotation> <xsd:documentation>Тип упаковки</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="regionType"> <xsd:annotation> <xsd:documentation>Регион</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="detailType"> <xsd:annotation> <xsd:documentation>Характеристика</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="c:vocabularyType"> <xsd:sequence> <xsd:element name="unit" minOccurs="0" maxOccurs="1" type="unitType"> <xsd:annotation> <xsd:documentation>Единица измерения характеристики</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="values" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation> Допустимое значение. Если isRange, то values[0] - левая граница, values[1] - правая. Если valueType=list, то все значения справочника, либо задающие уровень значения </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:choice> <xsd:element name="stringValue" minOccurs="0" type="xsd:string" maxOccurs="unbounded"/> <xsd:element name="intValue" minOccurs="0" type="xsd:int" maxOccurs="2"/> <xsd:element name="decimalValue" minOccurs="0" type="xsd:decimal" maxOccurs="2"/> <xsd:element name="dateTimeValue" minOccurs="0" type="xsd:dateTime" maxOccurs="2"/> <xsd:element name="booleanValue" minOccurs="0" type="xsd:boolean" maxOccurs="1"/> </xsd:choice> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="categoryId" type="xsd:int"> <xsd:annotation> <xsd:documentation> Идентификатор уровня справочника, на котором заведена характеристика </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="isRange" type="xsd:boolean" use="required"> <xsd:annotation> <xsd:documentation>Характеристика задана как диапазон</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="isLevelDefine" type="xsd:boolean"> <xsd:annotation> <xsd:documentation> Данная характеристика с указанным значением определяет этот уровень </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="isObligatory" type="xsd:boolean"> <xsd:annotation> <xsd:documentation> Значение характеристики является обязательным при создании оферты </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="type" type="c:valueType" use="required"> <xsd:annotation> <xsd:documentation>Тип значения характеристики</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="offerImportPacket"> <xsd:annotation> <xsd:documentation>Пакет импорта оферт</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="offers"> <xsd:annotation> <xsd:documentation> Коллекия оферт для импорта. Для справочных заначений достаточно указывать только атрибут id. </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="offer" minOccurs="1" type="offerType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="offerPriceUpdatePacket"> <xsd:annotation> <xsd:documentation>Пакет обновления прайс-листа</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="offerPrices"> <xsd:annotation> <xsd:documentation>Коллекия цен оферт для импорта.</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="offerPrice" minOccurs="1" type="offerPriceUpdateType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="offerPrice" type="offerPriceUpdateType"/> <xsd:complexType name="validationResultPacket"> <xsd:annotation> <xsd:documentation>Пакет данных валидации</xsd:documentation> </xsd:annotation> <xsd:all> <xsd:element name="violations" minOccurs="0"> <xsd:annotation> <xsd:documentation>Нарушения правил</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="violation" minOccurs="0" type="validationViolationType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="isValid" type="xsd:boolean" minOccurs="1"> <xsd:annotation> <xsd:documentation>Признак успешного прохождения правил</xsd:documentation> </xsd:annotation> </xsd:element> </xsd:all> </xsd:complexType> <xsd:complexType name="validationViolationType"> <xsd:annotation> <xsd:documentation>Нарушение валидационного правила</xsd:documentation> </xsd:annotation> <xsd:all> <xsd:element name="relatedTo"> <xsd:annotation> <xsd:documentation>Относится к</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:attribute name="id" type="xsd:int"/> <xsd:attribute name="code" type="xsd:string"/> <xsd:attribute name="name" type="xsd:string"/> </xsd:complexType> </xsd:element> <xsd:element name="violations" minOccurs="0"> <xsd:annotation> <xsd:documentation>Вложенные нарушения</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="violation" minOccurs="0" type="validationViolationType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:all> <xsd:attribute name="field" type="xsd:string"/> <xsd:attribute name="message" type="xsd:string"/> <xsd:attribute name="class"> <xsd:simpleType> <xsd:restriction base="validationViolationClass"/> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <xsd:simpleType name="validationViolationClass"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="parse"/> <xsd:enumeration value="business"/> </xsd:restriction> </xsd:simpleType> <xsd:element name="collectionPacket"> <xsd:complexType> <xsd:annotation> <xsd:documentation>Пакет данных коллекции значений</xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:any maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> |