Реализован обмен с провайдером ЭДО при отгрузке маркированного и немаркированного товара. Общая схема формирования отгрузки и документооборота с контрагентом выглядит следующим образом:
- Создается расходная накладная с операцией отгрузки товара контрагенту. При отгрузке маркированного товара накладная формируется в выбранном для этих целей процессе ТСД с одновременным подсчетом КИЗ, либо отдельно делается подсчет кодов КИЗ ТСД и отдельно – накладная, после чего результат подсчета КИЗ помещается в накладную. Для немаркированного товара накладная создается любым подходящим способом. Расходная накладная переводится пользователем в статус «Отпущен полностью».
- Если накладная содержит КИЗ, то есть маркированный товар, то при смене статуса расходной накладной на «Отпущен полностью» для нее автоматически будет создан УПД на отгрузку со статусом «Сформирован».
- Если в расходной накладной для внешнего контрагента задан идентификатор контрагента – участника обмена УПД или этот идентификатор задан в дополнительной характеристике контрагента «Идентификатор участника обмена УПД», то при смене статуса расходной накладной на «Отпущен полностью» будет создан УПД на отгрузку, независимо от того отгружается маркированный или немаркированный товар.
- По факту смены статуса УПД на отгрузку на «Сформирован» происходит отсылка его по протоколу, который выбран в фильтре УПД (XML/JSON, ФНС XML). Затем происходит ожидание ответа контрагента. Если контрагент прислал согласие, статус УПД на отгрузку меняется на «Обработан», если отказал или принял с расхождением, статус УПД на отгрузку меняется на "Заблокирован". Работа с расходной накладной в случае отказа / неполного приема выполняется вручную.
Если в документе УПД на отгрузку заполнено поле «Собственный идентификатор участника обмена УПД», то при отсылке УПД на отгрузку это значение будет использовано для выбора адресата обмена (почтового ящика) по равенству значения с атрибутом «Собственный идентификатор участника документооборота» адресата обмена в настройках почтового модуля / сервера обмена данных. Если поле не заполнено и не может быть заполнено значением справочника, то отсылка возможна, если имеется единственный адресат обмена с фильтром «УПД фильтр».
XSD схема файла ответа для протокола «УПД фильтр XML» приведена ниже:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="PACKAGE">
<xs:complexType>
<xs:sequence>
<xs:element name="REPLY">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false" />
<xs:element name="RESULT" type="xs:int" minOccurs="1" maxOccurs="1" nillable="false" />
<xs:element name ="ACCEPTED" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name = "ITEM" type="SpecPositionType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="description" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:complexType name="SpecPositionType">
<xs:sequence>
<xs:element name="SUPPLIERARTICLE" type="xs:string" />
<xs:element name="QUANTITY" type="xs:decimal" />
<xs:element name="MARKS" minOccurs="1" maxOccurs="1" >
<xs:complexType>
<xs:sequence>
<xs:element name="MARKCODE" type="xs:string" minOccurs="0" maxOccurs="unbounded" nillable="false" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Пример файла ответа с расхождением:
<?xml version="1.0" encoding="UTF-8"?>
<PACKAGE name="f679f7a5-eaba-40d3-bbee-c163be0e240e">
<REPLY description="Результат приемки">
<ID>UD0000000003</ID>
<RESULT>2</RESULT>
<ACCEPTED>
<ITEM>
<SUPPLIERARTICLE>Ц001677</SUPPLIERARTICLE>
<QUANTITY>5</QUANTITY>
<MARKS>
<MARKCODE>04606203086627V?r6=LCAC68lgsz</MARKCODE>
</MARKS>
</ITEM>
</ACCEPTED>
</REPLY>
</PACKAGE>
Для протокола «УПД фильтр ФНС XML» прием ответа с расхождением не предусмотрен.