Роуминг
Эта страница описывает, как отправить титул перевозочного документа контрагенту другого оператора ЭДО и как проверить доставку.
Роуминг — обмен электронными перевозочными документами между организациями, которые работают через разных операторов ЭДО. Общее описание приведено на странице Роуминг.
Каждая организация отправляет и получает документы через своего оператора ЭДО. Операторы передают документы друг другу по технологии роуминга.
В Диадоке нет отдельного метода для отправки титулов в роуминг: отправить титул в ящик роумингового контрагента можно с помощью обычных методов, а Диадок передаст его оператору получателя.
Чтобы отправлять документы в роуминг:
Настройте роуминговую пару через автороуминг или заявку (необязательно).
Получите параметры титула, который собираетесь отправить.
Проверьте возможность отправки.
Отправьте титул.
Отследите доставку.
Настройка роуминговой пары
Роуминговая пара связывает ящики организаций, которые работают с разными операторами ЭДО. Она показывает операторам, что документы между организациями можно передавать.
Роуминг нужно настроить для каждой конкретной пары организаций, а не один раз для всех контрагентов. Если предстоит обмениваться документами с несколькими роуминговыми организациями, для каждой пары нужно настроить отдельные отношения.
Перед настройкой пары проверьте, поддерживает ли оператор контрагента автороуминг:
Найдите контрагента с помощью метода SearchFnsParticipants, передав в запросе ИНН и КПП. Сохраните идентификатор
FnsParticipantIdиз спискаParticipantsв ответе метода.Получите ящик контрагента в Диадоке с помощью метода GetOrCreateRoamingOrganizationByFnsParticipantId. В параметре
myBoxIdукажите ящик вашей организации, в теле запроса — сохраненный ранее идентификаторFnsParticipantId. Сохраните идентификатор ящикаBoxIdиз спискаBoxesв ответе: он понадобится для приглашения контрагента и отправки документов.Вызовите метод GetRoamingOperators, чтобы найти оператора контрагента: поле
FnsIdсовпадает с первыми тремя символамиFnsParticipantId. Автороуминг доступен, если в спискеFeaturesэтого оператора указана функция сName = SupportsAutoInvitation.
Методы SearchFnsParticipants и GetOrCreateRoamingOrganizationByFnsParticipantId находят контрагента и создают его представление в Диадоке. Эти методы сами по себе не настраивают роуминговую пару.
Автороуминг
Подробнее про автороуминг — в разделе Автороуминг.
Если оператор поддерживает функцию автороуминга SupportsAutoInvitation, выполните настройки:
Отправьте приглашение к партнерству с помощью метода AcquireCounteragent (V3):
передайте ящик вашей организации в параметре
myBoxId;передайте ящик контрагента в поле
BoxId.
Получите в ответе идентификатор операции
taskIdи проверьте результат приглашения с помощью метода AcquireCounteragentResult (V3).Дождитесь, пока контрагент примет приглашение. После принятия приглашения Диадок создаст роуминговую пару.
Проверьте с помощью метода GetCounteragents (V3) статус контрагента: он должен поменяться на
IsMyCounteragent.
Большинство операторов ЭДО поддерживают обмен перевозочными документами без настройки приглашений. Чтобы проверить, поддерживает ли Контур обмен перевозочными документами с оператором ЭДО вашего контрагента, вызовите метод GetOrganization. В ответе метод вернет данные контрагента в структуре Organization. Диадок обновляет поля Sociability, Comment и ReadyForEpdStatus раз в сутки по информации из базы ФНС. Подробнее — на странице Работа с организациями.
Если Контур поддерживает обмен перевозочными документами без приглашений с оператором ЭДО вашего контрагента, переходите к разделу Получение параметров титула.
Роуминг через заявку
Если оператор не поддерживает функцию автороуминга SupportsAutoInvitation, настройте роуминг через заявку:
Одна из организаций подает заявку на настройку роуминга своему оператору.
Дождитесь обработки заявки. Настройка может занять до двух рабочих дней.
После настройки найдите или создайте представление контрагента в Диадоке:
найдите его с помощью метода SearchFnsParticipants;
вызовите метод GetOrCreateRoamingOrganizationByFnsParticipantId.
Отправьте контрагенту приглашение с помощью метода AcquireCounteragent (V3) только в том случае, если это нужно для установления партнерских отношений.
Проверьте с помощью метода GetCounteragents (V3) статус контрагента: он должен поменяться на
IsMyCounteragent.
Заявку должна подавать только одна сторона. Если контрагент уже подал заявку, повторно ее отправлять не нужно.
Отправка титула
Получение параметров титула
Вызовите метод GetDocumentTypes (V3) для своего ящика. Для каждого титула, который планируете отправить контрагенту, получите из ответа метода следующие параметры:
DocumentTypes[].Name— идентификатор типа, в запросе отправки этоTypeNamedId;DocumentTypes[].Functions[].Name— имя функции, в запросе отправки этоFunction;DocumentTypes[].Functions[].Versions[].Version— версия;DocumentTypes[].Functions[].Versions[].Workflows— вид документооборота.
Проверка возможности отправки
Перед первой отправкой титула вызовите метод CanPostMessage, чтобы проверить возможность отправлять сообщения контрагенту. Передайте в запрос метода идентификаторы ящиков участников и параметры титула без содержимого документа и подписи.
Если метод вернул ошибки или предупреждения, не отправляйте титул. Исправьте параметры или проверьте, настроен ли роуминг для пары организаций.
Отправка титула
Отправьте титул с помощью метода PostMessage (V3) или PostMessagePatch (V4). Способы отправки для титулов электронных перевозочных документов описаны на странице Перевозочные документы. Метод нужно выбрать по сценарию конкретного титула.
Доставка в роуминг
Ответ метода PostMessage (V3) или PostMessagePatch (V4) подтверждает, что Диадок принял запрос, но не подтверждает доставку оператору получателя.
Чтобы проверить, доставлен ли титул до получателя, проверьте поле RoamingNotification в состоянии титула — оно хранится в DocflowV5.Titles[].ParticipantDocflows[].TitleDelivery.RoamingNotification.
Значение IsSuccess = true означает, что титул доставлен в роуминг.
Если доставка завершилась ошибкой, получите ее детали из поля Notification структуры RoamingNotification. Отследить ошибки роуминга можно в ленте событий. Для электронной транспортной накладной (ЭТрН) и заказа-заявки (ЭЗЗ) доступны подробные описания ошибок. В краткой информации о документе используйте поля RoamingNotificationStatus и RoamingNotificationStatusDescription структуры Document.
Статусы роуминга не заменяют статусы ГИС ЭПД.