diadoc / diadocsdk-csharp

Official Diadoc SDK for C#
MIT License
34 stars 64 forks source link

Ошибка при генерации титула #401

Closed Rishatk closed 5 years ago

Rishatk commented 5 years ago

Помогите, пожалуйста, с ошибкой: Ошибка выполнения JS-скрипта при подписании акта. BaseUrl=https://diadoc-api.kontur.ru, PathAndQuery=/GenerateAcceptanceCertificateXmlForBuyer?boxId=a7a15e28d7cb469caea026ac82ecd004@diadoc.ru&sellerTitleMessageId=9ee7062c-a922-4fe0-bfab-918189febf7e&sellerTitleAttachmentId=c45f6e62-1d25-41d0-ad59-ccb44c495a24, AdditionalMessage=Генерация титула покупателя возможна только в формате, соответствующем титулу продавца, StatusCode=Conflict, DiadocErrorCode: DocumentService.NotCorrespondingTitleFormat.

Вот часть кода которая выдает эту ошибку:

    //info o podpisante
    var Official = new ActiveXObject("Diadoc.Api.Official");
    Official.Surname = Surname;
    Official.FirstName = FirstName;
    Official.Patronymic = Patronymic;
    Official.JobTitle = JobTitle;
    //rekvizity podpisi
    var AcceptanceCertificateSignatureInfo = new ActiveXObject("Diadoc.Api.AcceptanceCertificateSignatureInfo");
    AcceptanceCertificateSignatureInfo.SignatureDate = SignatureDate;
    AcceptanceCertificateSignatureInfo.Official = Official;`
    //certificate
    var stream = new ActiveXObject("ADODB.Stream");
    stream.Type = 1; // binary
    stream.Mode = 3; // read/write
    stream.Open();
    stream.LoadFromFile(CertFilePath);
    var SignerCertificate = stream.Read();
    stream.Close(); 
    //podpisant
    var Signer = new ActiveXObject("Diadoc.Api.Signer");
    Signer.SignerCertificate = SignerCertificate;   
    //info dlya titula zakazchika
    var AcceptanceCertificateBuyerTitleInfo = new ActiveXObject("Diadoc.Api.AcceptanceCertificateBuyerTitleInfo");
    AcceptanceCertificateBuyerTitleInfo.Signature = AcceptanceCertificateSignatureInfo;
    AcceptanceCertificateBuyerTitleInfo.Signer = Signer;
    //titul zakazchika
    var AcceptanceCertificateXmlForBuyer = diadoc.GenerateAcceptanceCertificateXmlForBuyer(token, AcceptanceCertificateBuyerTitleInfo, boxId, messageId,DocumentEntityId);
    AcceptanceCertificateXmlForBuyer.SaveContentToFile(SignedDocFilePath);
einfoman commented 5 years ago

Добрый день!

Дело в том, что метод /GenerateAcceptanceCertificateXmlForBuyer был сделан для генерации ответного титула акта в старом формате (вроде приказ 172 ФНС). Документ c45f6e62-1d25-41d0-ad59-ccb44c495a24 отправлен в формате приказа 155 (УПД). Для того, чтобы сформировать второй титул, нужно пользоваться методом http://api-docs.diadoc.ru/ru/latest/http/utd/GenerateUniversalTransferDocumentXmlForBuyer.html

Rishatk commented 5 years ago

Добрый день!

Дело в том, что метод /GenerateAcceptanceCertificateXmlForBuyer был сделан для генерации ответного титула акта в старом формате (вроде приказ 172 ФНС). Документ c45f6e62-1d25-41d0-ad59-ccb44c495a24 отправлен в формате приказа 155 (УПД). Для того, чтобы сформировать второй титул, нужно пользоваться методом http://api-docs.diadoc.ru/ru/latest/http/utd/GenerateUniversalTransferDocumentXmlForBuyer.html

Но я ведь создавал формализованный документ типа "Акт" через сайт диадока. Я думал, что формат документа будет "Акт". Означает ли это, что все формализованные документы по умолчанию создаются в формате "УПД"?

einfoman commented 5 years ago

Акты могут быть в формате 155, 552 и в устаревшем формате. Веб Диадока формирует акты в формате 155 (УПД). Такая же ситуация СФ и Торг12.

Чтобы узнать формат, в котором отправлен документ, ознакомьтесь с документацией http://api-docs.diadoc.ru/ru/latest/docflows/AttachmentVersion.html.

Rishatk commented 5 years ago

Спасибо!