Содержание
Примеры интерфейса для просмотра заказов
Методы
Портал может обращаться к вашей 1С через специальный веб-интерфейс (подробнее смотрите тут: https://v8.1c.ru/overview/Term_000000273.htm#1). Для организации online-доступа портала к данным по заказам, вам необходимо реализовать в своей системе учета следующие SOAP-методы.
Общий вид
| Метод | Назначение функции | Входящие параметры | Возвращаемые данные |
|---|---|---|---|
| GetListOrders | Получение списка заказов для клиента | Параметры запроса:
Обе даты являются необязательными параметрами. Если не указана ни одна, то ожидаем получения заказов в работе. Если указана только одна, то получаются заказы от или до указанной для начальной и конечной даты соответственно. Дата передается в виде строки ГГГГММДДччммсс, например 20120210000000. Если передается только код клиента, то веб-сервис не должен возвращать все имеющиеся заказы в большом кол-ве. В таком случае, необходимо показывать актуальные заказы для клиента, но не более 100 шт. В противном случае сработает ограничение и заказы не будут показаны. |
Результатом работы должен являться узел orders содержащий набор объектов типа order следующего вида:
Узел waybills должен содержать набор элементов типа waybill следующего вида:
Узел invoices должен содержать набор элементов типа invoice следующего вида:
Узел shipments должен содержать набор элементов типа shipment следующего вида:
|
| GetListPositions | Получение списка позиций всех заказов для клиента.
Данный метод необходимо использовать в случае, когда статус является признаком не заказа в целом, а его отдельных позиций. |
Параметры запроса:
Обе даты являются необязательными параметрами. Если не указана ни одна, то ожидаем получения заказов в работе. Если указана только одна, то получаются заказы от или до указанной для начальной и конечной даты соответственно. Дата передается в виде строки ГГГГММДДччммсс, например 20120210000000. Если передается только код клиента, то веб-сервис не должен возвращать все имеющиеся заказы в большом кол-ве. В таком случае, необходимо показывать актуальные заказы для клиента, но не более 100 шт. В противном случае сработает ограничение и заказы не будут показаны.
|
Результатом работы должен являться узел positions содержащий набор объектов типа position следующего вида:
|
| GetListOrdersPos | Получение списка позиций для заказа клиента | Параметры запроса:
|
Результатом работы должны быть данные следующего вида:
|
| GetListOrdersInvoice | Получение списка позиций для счета-фактуры клиента | Параметры запроса:
|
Результатом работы должны быть данные следующего формата:
|
| GetListOrdersShipment | Получение списка позиций для отгрузки | Параметры запроса:
|
Результатом работы должны быть данные следующего формата:
|
Техническая информация
Все входящие параметры - текстового типа.
В целях безопасности рекомендуется ограничить доступность сервиса по IP-адресу и/или закрыть его HTTPS-авторизацией.
Создать XDTO-пакеты в 1С можно с помощью импорта следующих схем:
GetListOrders
<xs:schema xmlns:tns="GetListOrdersResult" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="GetListOrdersResult" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="GetListOrdersResult" type="tns:GetListOrdersResult"/>
<xs:complexType name="GetListOrdersResult">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="orders" type="tns:order" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="order">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="orderNumber" type="xs:string"/>
<xs:element name="orderCode" type="xs:string"/>
<xs:element name="orderDate" type="xs:string"/>
<xs:element name="contractName" type="xs:string"/>
<xs:element name="summ" type="xs:string"/>
<xs:element name="statusCode" type="xs:string"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="comment" type="xs:string"/>
<xs:element name="waybills" type="tns:waybill" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="invoices" type="tns:invoice" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="shipments" type="tns:shipment" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="waybill">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="waybillNumber" type="xs:string"/>
<xs:element name="waybillDate" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="invoice">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="invoiceNumber" type="xs:string"/>
<xs:element name="invoiceDate" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="shipment">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="shipmentNumber" type="xs:string"/>
<xs:element name="shipmentDate" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
GetListPositions
<xs:schema xmlns:tns="GetListPositionsResult" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="GetListPositionsResult" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="GetListPositionsResult" type="tns:GetListPositionsResult"/>
<xs:complexType name="GetListPositionsResult">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="positions" type="tns:position" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="position">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="orderNumber" type="xs:string"/>
<xs:element name="orderCode" type="xs:string"/>
<xs:element name="orderDate" type="xs:string"/>
<xs:element name="contractName" type="xs:string"/>
<xs:element name="waybillNumber" type="xs:string"/>
<xs:element name="waybillDate" type="xs:string"/>
<xs:element name="invoiceNumber" type="xs:string"/>
<xs:element name="invoiceDate" type="xs:string"/>
<xs:element name="shipmentNumber" type="xs:string"/>
<xs:element name="shipmentDate" type="xs:string"/>
<xs:element name="statusCode" type="xs:string"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="deliveryPeriod" type="xs:string"/>
<xs:element name="brand" type="xs:string"/>
<xs:element name="articleNumber" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="unit" type="xs:string"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="quantityActual" type="xs:string"/>
<xs:element name="pricePerUnit" type="xs:string"/>
<xs:element name="priceWithoutTax" type="xs:string"/>
<xs:element name="taxRate" type="xs:string"/>
<xs:element name="amountOfTax" type="xs:string"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="customsDeclaration" type="xs:string"/>
<xs:element name="comment" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
GetListOrdersPos
<xs:schema xmlns:tns="GetListOrdersPosResult" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="GetListOrdersPosResult" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="GetListOrdersPosResult" type="tns:GetListOrdersPosResult"/>
<xs:complexType name="GetListOrdersPosResult">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="orderNumber" type="xs:string"/>
<xs:element name="orderCode" type="xs:string"/>
<xs:element name="orderDate" type="xs:string"/>
<xs:element name="contractName" type="xs:string"/>
<xs:element name="summ" type="xs:string"/>
<xs:element name="statusCode" type="xs:string"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="comment" type="xs:string"/>
<xs:element name="waybills" type="tns:waybill" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="invoices" type="tns:invoice" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="shipments" type="tns:shipment" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="positions" type="tns:position" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="position">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="brand" type="xs:string"/>
<xs:element name="articleNumber" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="unit" type="xs:string"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="quantityActual" type="xs:string"/>
<xs:element name="pricePerUnit" type="xs:string"/>
<xs:element name="priceWithoutTax" type="xs:string"/>
<xs:element name="taxRate" type="xs:string"/>
<xs:element name="amountOfTax" type="xs:string"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="customsDeclaration" type="xs:string"/>
<xs:element name="statusCode" type="xs:string"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="deliveryPeriod" type="xs:string"/>
<xs:element name="comment" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="waybill">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="waybillNumber" type="xs:string"/>
<xs:element name="waybillDate" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="invoice">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="invoiceNumber" type="xs:string"/>
<xs:element name="invoiceDate" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="shipment">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="shipmentNumber" type="xs:string"/>
<xs:element name="shipmentDate" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
GetListOrdersInvoice
<xs:schema xmlns:tns="GetListOrdersInvoiceResult" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="GetListOrdersInvoiceResult" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="GetListOrdersInvoiceResult" type="tns:GetListOrdersInvoiceResult"/>
<xs:complexType name="GetListOrdersInvoiceResult">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="invoiceNumber" type="xs:string"/>
<xs:element name="invoiceDate" type="xs:string"/>
<xs:element name="positions" type="tns:position" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="position">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="brand" type="xs:string"/>
<xs:element name="articleNumber" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="unit" type="xs:string"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="pricePerUnit" type="xs:string"/>
<xs:element name="priceWithoutTax" type="xs:string"/>
<xs:element name="taxRate" type="xs:string"/>
<xs:element name="amountOfTax" type="xs:string"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="customsDeclaration" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
GetListOrdersShipment
<xs:schema xmlns:tns="GetListOrdersShipmentResult" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="GetListOrdersShipmentResult" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="GetListOrdersShipmentResult" type="tns:GetListOrdersShipmentResult"/>
<xs:complexType name="GetListOrdersShipmentResult">
<xs:complexContent>
<xs:extension base="xs:complexType">
<xs:choice>
<xs:element name="shipmentNumber" type="xs:string"/>
<xs:element name="shipmentDate" type="xs:string"/>
<xs:element name="positions" type="tns:position" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="position">
<xs:complexContent>
<xs:extension base="xs:complexRestrictionType">
<xs:all>
<xs:element name="brand" type="xs:string"/>
<xs:element name="articleNumber" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="unit" type="xs:string"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="pricePerUnit" type="xs:string"/>
<xs:element name="priceWithoutTax" type="xs:string"/>
<xs:element name="taxRate" type="xs:string"/>
<xs:element name="amountOfTax" type="xs:string"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="customsDeclaration" type="xs:string"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>