|
Поделитесь листингом процедуры подписания УПД в диадоке через rest api ↓ (Волшебник 30.01.2025 19:56) | ☑ | ||
---|---|---|---|---|
0
ILNIK19
17.01.25
✎
21:56
|
Поделитесь, пожалуйста, листингом процедуры подписания УПД в диадоке по rest api
Уже убил кучу времени, ничего не понятно, куча несвязной информации (подписанты, расширенные подписанты и тд), непонятно чем заполнять титул и как. Все время сыпятся ошибки |
|||
1
rozer76
18.01.25
✎
08:09
|
Костылетворец? Скачай их модуль и смотри там а лучше купите его и уже через него можно регламентом такое делать https://developer.kontur.ru/Docs/Diadoc_UM/proc/Reglamentnoye_Zadaniye.html
|
|||
2
ILNIK19
18.01.25
✎
10:11
|
(1) Уже купили api, почти всё сделано, документы с файлами загружаются, осталось доделать подпись и отклонение
|
|||
3
ТДК
18.01.25
✎
11:36
|
(2) верхнеуровнево процесс выглядит следующим образом:
- сформировать xml для УПД - подписать ЭЦП - Отправить полученный файл в Диадок вызвав соответствующий метод сервиса (ранее был PostMessage) с передачей структуры содержащей ящик отправителя: FromBoxId, ящик получателя ToBoxId, признак черновая отправка или нет IsDraft, а также массив вложений DocumentAttachments. В свою очередь массив вложений (DocumentAttachments) может содержать данные счета на оплату и он не подписывается ЭЦП, а также подписанные двоичные данные УПД. Ряд сложностей интеграции был вызван процессом генерации самой XML для УПД, но у Диадока есть метод - GenerateTitleXml https://developer.kontur.ru/docs/diadoc-api/instructions/generation.html , предназначенный для генерации титула, что значительно упростило мне работу. Подписание ранее выполнял через плагин от Диадок с вызовом Плагин.ПодписатьКонтент (данные, двоичныеДанныеСертификата), на тот момент в платформе не было встроенных средств работы с криптографией. Обработку для 1С от Диадока я смотрел, удивился количеству абстракций и коду. Написал своё лаконичнее и проще В заключение хочу сказать, что API диадока реализовано достаточно удобно. Для сложных момент вроде генерации титутал есть свои методы. Совершенно нетиповую конфигурацию я синтегрировал в течение 2-х месяцев. Техподдержка работает достаточно оперативно, был ряд проблем связанных с неправильным получение BoxID покупателей, так как данные в веб версии и по API могли отличаться, в случае работы покупателя через роуминг. |
|||
4
ILNIK19
18.01.25
✎
12:01
|
(3) В целом, я понимаю, как это делается. У есть меня куча вопросов, например, есть сообщения с одиночными счетами, есть сообщения с пакетами документов Акт+СФ. Есть разница, как их подписывать? Нужно подписывать каждую сущность или пакеты целиком? В Вэб-версии диадока, можно, например, отклонить только Акт, а УПД подписать в пакете. В методах с подписями вроде везде используются только id сообщения и сущности.
Далее, например, формирование титула получаетеля будет отличаться в зависимости от типа документа или везде можно использовать универсальный титул? Если форировать универсальный титул, там идет заполнение массива подписей и этот массив тоже бывает разных видов (простой и расширенный и не только). Какой и для чего использовать нужно - непонятно. Там даже для разных весрйи УПД свое формирование титула. Сейчас у меня проблема, что я не могу сформироать титул получаетеля для УПД - постоянно сыпятся разные ошибки, например, что отсутствует свойство inn, хотя оно есть Готов купить у вас обработку, если у вас всё работает через api. |
|||
5
ТДК
18.01.25
✎
12:18
|
1) сообщения с одиночными счетами не подписываются, отправляется неформализованный документ ProformaInvoice
2) Формирование титула для каждого документа своё. Более того, разные версии в зависимости от требований законодательства. На сайте Диадока смотри описания здесь https://developer.kontur.ru/docs/diadoc-api/http/GenerateTitleXml.html Если сыпятся ошибки, прочитай требования к формированию прото титула, типов передаваемых данных. Возможна ситуация, при которой необходимо передавать массив структур с единственной записью вместо структуры. Купить не получиться, в компании уже не работаю. Это была не обработка, а целый блок, с возможностью отправлять/получать приглашения на работу через Диадок, автоматическое обновление идентификаторов почтовых ящиков, автоматическая отправка счетов, договоров, УПД. Документооборот был примерно 15-17 тыс. документов в месяц, но особенностью, что всё выставление происходило в первые дни нового месяца (услуги, биллинг). За первые 2 дня, необходимо оперативно собрать данные, сформировать документы и в третий рабочий день их разослать. |
|||
6
ILNIK19
18.01.25
✎
12:23
|
(5) Со счетами понятно. Я имел в виду, что если один документ в пакете, например УПД. Значит для каждой сущности свое.
2 месяца работы программиста на это убить не готов, проще отказаться от автоматизации, это никогда не окупится Может у кого-то еще есть готовая обработка, не настолько сложная как у вас и кто готов продать ее На инфостарте есть рабочий стол диадок+сбис, можно было бы купить, но там модули закрытые |
|||
7
ТДК
18.01.25
✎
12:27
|
(6) у диадок есть обработки для типовых. Также через них можно заказать разработку под свою конфу
|
|||
8
ILNIK19
18.01.25
✎
12:29
|
Сейчас ошибка вылезает. Я уже переделывал несколько раз и на Signers и на SignersSignerDetails и на ExtendedSignerDetails и везде ошибки и не понятно,в каком случае, что нужно использовать.
Invalid data UserContractData: Line: 3, Position: 3, /UniversalTransferDocumentBuyerTitle[1]/SignerDetails[1]: The element 'UniversalTransferDocumentBuyerTitle' has invalid child element 'SignerDetails'. List of possible elements expected: 'Employee, OtherIssuer, AdditionalInfoId, Signers, ContentOperCode, BuyerInfoCircumPublicProc'. |
|||
9
ILNIK19
18.01.25
✎
12:31
|
Мне по сути нужно подписывать только актуальную версию УПД, Акт и СФ, Счет не подписывается.
Процедура отправки запросов готова, остался затык с титулом отправителя |
|||
10
ТДК
18.01.25
✎
12:38
|
(8) указана суть ошибки, неправильная дочерняя структура, ожидаются: Employee, OtherIssuer, AdditionalInfoId, Signers, ContentOperCode, BuyerInfoCircumPublicPro
УПД может подписывать как ген.дир, так и другие сотрудники, в случае ген.дира в signers указываются его данные FirstNam, LastName и т.д., но нужно смотреть документацию, возможны изменения. |
|||
11
ILNIK19
18.01.25
✎
12:53
|
(10) Так вот непонятно, нужно ли именно этот массив использовать и его заполнить корректно или нужен другой тип массива. Я просто время потрачу, а окажется что нужно было по другому алгоритму вообще идти
|
|||
12
ТДК
18.01.25
✎
12:55
|
(11) что указано в документации? https://developer.kontur.ru/docs/diadoc-api/index.html как необходимо генерировать титул?
|
|||
13
ProxyInspector
19.01.25
✎
16:44
|
Вы возьмите последнюю обработку Контур Диадок. И встройте ее в свою конфигурацию.
У нас на подсоединение к 100% не типовой конфигурации ушло несколько дней. Конечно это тормозная обработка. Но подписание 100 тыс документов в месяц она тянет. Плюс можете добавить свои алгоритмы автоматического подписания, отправки и получения документов. |
|||
14
ILNIK19
28.01.25
✎
10:51
|
(13)
Генерируем титул получателя (на сколько я понял, это UniversalTransferDocumentBuyerTitle - титул продавца?). Получили упрощенную xsd схему титула UserDataXsdUrl. Возник вопрос - как автоматом сгенерировать и заполнить xml файл титула получателя на основе полученной схемы xsd, чтобы передать его как тело запроса в метод GenerateTitleXml? Неужели надо вручную построчно формировать xml и заполнять все поля? Там же разные типы документов и заполнение будет разным. Если есть листинг процедуры, пришлите, пожалуйста |
|||
15
ILNIK19
29.01.25
✎
17:06
|
далее ошибка
MessagePatchToPost.RecipientTitles[0]: Формат титула покупателя должен соответствовать формату титула продавца (Data at the root level is invalid. Line 1, position 1.) |
|||
16
ILNIK19
30.01.25
✎
17:36
|
дело было в полке, убрали ее и заработало
|
|||
17
Волшебник
30.01.25
✎
19:56
|
(16) какая нахер полка?
|
|||
18
Multicvet
18.02.25
✎
18:20
|
Добрый день!
Подниму тему. Кто-то смог решить вопрос с подписанием УПД 970 регзаданием? |
|||
19
ILNIK19
18.02.25
✎
18:29
|
При запросе на создание сообщения /V3/PostMessage можно указать документ на полке, для этого в DocumentAttachment.SignedContent нужно заполнить поле NameOnShelf, поле Content не заполняется.
Метод PostMessage трактует переданное имя файла как локальное для пользователя, подробнее см. в документации. |
|||
20
Multicvet
18.02.25
✎
18:41
|
(19) С Вами есть возможность связаться?
|
|||
21
ILNIK19
18.02.25
✎
18:56
|
найдите контакт в телеге @vakrisi
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |