diadoc / diadocsdk-csharp

Official Diadoc SDK for C#
MIT License
35 stars 63 forks source link

Значения для CircumFormatInvoice #1053

Closed blackmore466 closed 1 year ago

blackmore466 commented 1 year ago

Добрый день! Возникла ошибка десериализации формализованного титула (результат работы ParseTitleXml) в объект UniversalTransferDocument. Проблема в атрибуте CircumFormatInvoice="4". Оно десериализуется в свойство объекта CircumFormatInvoice, которое имеет тип перечисления UniversalTransferDocumentCircumFormatInvoice -- и в нём всего три опции:

    //
    // Remarks:
    //     Обстоятельства формирования счета-фактуры, применяемого при расчетах по налогу
    //     на добавленную стоимость
    [Serializable]
    [GeneratedCode("xsd", "4.6.1055.0")]
    [XmlType(AnonymousType = true)]
    public enum UniversalTransferDocumentCircumFormatInvoice
    {
        //
        // Remarks:
        //     Cчет-фактура, выставляемый при реализации товаров (работ, услуг), передаче имущественных
        //     прав
        [XmlEnum("1")]
        ItemsRealization,
        //
        // Remarks:
        //     Счет-фактура, выставляемый при получении оплаты, частичной оплаты в счет предстоящих
        //     поставок товаров (выполнения работ, оказания услуг), передачи имущественных прав
        [XmlEnum("2")]
        PaymentsRecieve,
        //
        // Remarks:
        //     Счет-фактура, применяемый в случае реализации комиссионером (агентом, экспедитором,
        //     застройщиком или заказчиком, выполняющим функции застройщика) двум и более покупателям
        //     (приобретения у двух и более продавцов) товаров (работ, услуг), имущественных
        //     прав от своего имени
        [XmlEnum("3")]
        AgentSchema
    }

хотя через конструктор УПД в web-приложении можно выбрать любое основание изображение

как скоро будут добавлены новые опции формирования в C# SDK?

ilzag commented 1 year ago

Добрый день. Похоже, что в параметрах метода ParseTitleXml вы указываете documentVersion="utd820_05_01_01_hyphen". Согласно xsd-схеме, там действительно три опции. Следует использовать параметр documentVersion="utd820_05_01_02_hyphen", в новой версии поддержан расширенный список оснований.

ON_NSCHFDOPPR_UserContract_820_05_01_01_Hyphen.xsd:

<xs:attribute name="CircumFormatInvoice" use="optional">
        <xs:annotation>
          <xs:documentation>
                        ОбстФормСЧФ - Обстоятельства формирования счета-фактуры
                        1 - счет-фактура, выставляемый при реализации товаров;
                        2 - счет-фактура, выставляемый при получении оплаты;
                        3 - счет-фактура, применяемый в случае реализации комиссионером
                    </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="1" />
            <xs:enumeration value="2" />
            <xs:enumeration value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>

ON_NSCHFDOPPR_UserContract_820_05_01_02_Hyphen.xsd:

<xs:attribute name="CircumFormatInvoice" use="optional">
  <xs:annotation>
    <xs:documentation>
                        ОбстФормСЧФ - Обстоятельства формирования счета-фактуры
                        1 - счет-фактура, выставляемый при реализации товаров;
                        2 - счет-фактура, выставляемый при получении оплаты;
                        3 - счет-фактура, применяемый в случае реализации комиссионером
                        4 - товары переданы от Комитента (Принципала) Комиссионеру (Агенту, действующему от собственного имени) для дальнейшей реализации
                        5 - товары переданы от Комиссионера (Агента, действующего от собственного имени) Комитенту (Принципалу) при возврате товаров
                        6 - товары переданы от Комиссионера (Агента, действующего от собственного имени) Комитенту (Принципалу) при закупке товара
                        7 - товары переданы от Комитента (Принципала) Комиссионеру (Агенту, действующему от собственного имени) при возврате товаров
                        8 - возврат товара от Покупателя Продавцу
                    </xs:documentation>
  </xs:annotation>
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="2"/>
      <xs:enumeration value="3"/>
      <xs:enumeration value="4"/>
      <xs:enumeration value="5"/>
      <xs:enumeration value="6"/>
      <xs:enumeration value="7"/>
      <xs:enumeration value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>