diadocsdk-csharp
diadocsdk-csharp copied to clipboard
Ошибка при оправке запроса GenerateTitleXml
При отправке запроса для генерации титула покупателя получаю ошибку:
Diadoc.Api.Http.HttpClientException: BaseUrl=https://diadoc-api.kontur.ru, PathAndQuery=/GenerateTitleXml?boxId=c0640b8d8d7340b38fb7c078673fe9de%40diadoc.ru&documentTypeNamedId=UniversalCorrectionDocument&documentFunction=%D0%9A%D0%A1%D0%A7%D0%A4%D0%94%D0%98%D0%A1&documentVersion=ucd_05_01_03&titleIndex=1&editingSettingId&letterId=917d0568-30a1-4b16-a919-ec6a256917b3&documentId=808bb041-83ed-4017-9884-4e4820d8b389, AdditionalMessage=Invalid data UserContractData: Line: 2, Position: 2, /UniversalTransferDocumentBuyerTitle[1]: The 'UniversalTransferDocumentBuyerTitle' element is not declared., StatusCode=BadRequest, DiadocErrorCode: Http.BadRequest ---> System.Net.WebException: Удаленный сервер возвратил ошибку: (400) Недопустимый запрос.
Выяснил, что УПД имеет версию "utd820_05_01_01_hyphen". После чего нашел это: https://github.com/diadoc/diadocsdk-csharp/issues/652. Где рекомендуется переходить на hyphens и соответствующие пространства имен. Но речь идет об отправке УПД, а мне необходимо подписать его.
Каким образом это сделать? В пространстве имен Diadoc.Api.DataXml.Utd820.Hyphens
не нахожу подходящего класса для замены Diadoc.Api.DataXml.Utd820.UniversalTransferDocumentBuyerTitle
Уважаемый, а то что для генерации титула покупателя вы передаете тип документа УКД вас не смущает? documentTypeNamedId=UniversalCorrectionDocument? да и судя по телу , UserContractData у вас тоже неверен. XSD-схема контракта, необходимого для генерации титула, может быть получена с помощью ссылки, доступной в поле UserDataXsdUrl контракта DocumentTitle, который можно получить с помощью метода-справочника GetDocumentTypes. пример можно взять отсюда.... но там старые методы. https://github.com/diadoc/diadocsdk-csharp/issues/532
@alexxxwam, я уже начал путать УКД с УПД. Прошу прощения, получается при отправке УКД ошибка. Я не составлял титулы "руками" и не использовал XSD-схемы, а пользовался классами которые есть в SDK. Согласно этой документации: https://api-docs.diadoc.ru/ru/latest/proto/utd/UniversalTransferDocumentBuyerTitleInfo.html для подписания УПД и УКД используется класс UniversalTransferDocumentBuyerTitleInfo, который я собственно и использую. Для генерации использовался метод GenerateTitleXml, в который версию и прочие данные передавались из документа как есть + заполненный UniversalTransferDocumentBuyerTitleInfo.
@alexxxwam, я уже начал путать УКД с УПД. Прошу прощения, получается при отправке УКД ошибка. Я не составлял титулы "руками" и не использовал XSD-схемы, а пользовался классами которые есть в SDK. Согласно этой документации: https://api-docs.diadoc.ru/ru/latest/proto/utd/UniversalTransferDocumentBuyerTitleInfo.html для подписания УПД и УКД используется класс UniversalTransferDocumentBuyerTitleInfo, который я собственно и использую. Для генерации использовался метод GenerateTitleXml, в который версию и прочие данные передавались из документа как есть + заполненный UniversalTransferDocumentBuyerTitleInfo.
все просто - при формировании титула покупателя вам нужно указывать тот тип документа , на который вы делаете ответку ( Если был УПД , значит вам нужно в метод генерации передавать UniversalTransferDocument с корректными функцией и версией), для документа УКД тоже самое.
попробуйте найти тут сам алгоритм , но там надо учесть , что старые методы . https://github.com/diadoc/diadocsdk-csharp/issues/532
попробуйте найти тут сам алгоритм , но там надо учесть , что старые методы . #532
Собственно от туда я и брал решение. И данное решение работало.
попробуйте найти тут сам алгоритм , но там надо учесть , что старые методы . #532
Собственно от туда я и брал решение. И данное решение работало.
гляньте структуру тут https://www.diadoc.ru/docs/forms/ukd/structure/10 на выходе у вас должен был файл в таком формате как на вкладке ON_NKORSCHFDOPPOK, можете сформировать его своим решением.
У меня те же вопросы, что и у автора из https://github.com/diadoc/diadocsdk-csharp/issues/532 ))
Не понятно, если есть sdk, есть типизированные данные, зачем заполнять какой-то файл, скачать какую-то схему...все какое-то... возмущению нет предела!!! В прошлой версии все работало нормально, ничего значительно не изменилось, зачем в коде такие перемены?
Описание от пользователей... Где примеры от разработчиков?
У меня те же вопросы, что и у автора из #532 ))
Не понятно, если есть sdk, есть типизированные данные, зачем заполнять какой-то файл, скачать какую-то схему...все какое-то... возмущению нет предела!!! В прошлой версии все работало нормально, ничего значительно не изменилось, зачем в коде такие перемены? Описание от пользователей... Где примеры от разработчиков?
я думаю , что в силу постоянно меняющихся правил заполнения и добавления данных для разных типов и версий документов от нашей горячо-любимой ФНС , разработчики просто отказались от готовых классов , так как на это надо много ресурсов и времени и предлагают заполнять упрощенный usercontract силами самих пользователей
@alexxxwam, вы очень точно озвучили позицию разработчиков и причины реализации такой логики
@NataliaShumikhina, т.е. переложили часть своей работы (половину SDK) на плечи пользователей? "Замечательная" политика партии...