diadocsdk-csharp icon indicating copy to clipboard operation
diadocsdk-csharp copied to clipboard

Формирование ИДПол при отправке в роуминг

Open Kat1on opened this issue 4 years ago • 14 comments

Версия sdk 1.83.0.0 У нас есть контрагент в роуминге Synerdocs 2IGd6d8839d-78df-47ff-89ca-20c9378be073 (81d022b5-49f2-45ce-99e7-6e6a49e4fb2e). При этом в списке наших контрагентов у нас только этот контрагент.

При этом есть контрагент в роуминге Тензор 2BE515a2f9a81a711e29ac5005056917125 (cac2cb09-e90b-48c6-8973-7d5aac23ea21).

Отправляем УПД СЧФДОП в 820 приказе. В случае с Synerdocs ИДПол, ИДФайл формируется Диадока (2BM-7705716967-2012052808214990062630000000000). В случае с Тензор все формируется корректно

OrgName - заполняем Inn - заполняем Kpp - заполняем Address - заполняем FnsParticipantId - не заполняем OrgType - заполняем https://github.com/diadoc/diadocsdk-csharp/issues/392 рекомендуют добавить заполнение FnsParticipantId.

Есть ли настройка на роуминге, которая обязует заполнять FnsParticipantId?

Kat1on avatar Sep 23 '20 06:09 Kat1on

В #392 правильно рекомендуют заполнять FnsParticipantId. Как указано в документации https://api-docs.diadoc.ru/ru/latest/proto/utd/ExtendedOrganizationInfo.html В зависимости от контекста использования структуры ExtendedOrganizationInfo требования к обязательности заполнения ее полей могут меняться.

ichechulina avatar Sep 24 '20 13:09 ichechulina

Но зачем нам заполнять FnsParticipantId если по инн\кпп мы однозначно можем найти ящик? почему при формировании одного и того же типа документа для разных контрагентов отличаются правила?

Kat1on avatar Sep 25 '20 11:09 Kat1on

В случае, если не указаны какие-либо данные о контрагенте при генерации документа, мы пытаемся найти данные самостоятельно. Так как с данными инн-кпп есть три ящика в Диадока, есть вероятность, что итоговый результат будет отличатся от ожидаемого.

Для однозначного поведения рекомендуем заполнять ФНС идентификатор самостоятельно.

i82 avatar Sep 25 '20 13:09 i82

Мы заполняем все реквизиты получателя(см.вложение), но при этом идпол и идфайла некорректно заполняется image_2020_09_22T12_37_18_615Z

Kat1on avatar Sep 30 '20 07:09 Kat1on

@Kat1on вам надо определиться со способом заполнения данных либо указывайте все данные в структуре ExtendedOrganizationDetails вместе с идентификатором, либо выбирайте ExtendedOrganizationReference и указывайте boxid. У контрагентов может быть разное количество роуминговых ящиков, поэтому по инн-кпп нельзя точно определить какой роуминговый ящик нужен, выбирается какой-то.

OlgaPetushina avatar Sep 30 '20 12:09 OlgaPetushina

Мы заполняем ExtendedOrganizationDetails, без идентификатора ФНС. Но по инн-кпп есть только один роуминговый клиент, почему идпол некорректно формируется? image При этом методом GetBox получаем корректный ящик.

Kat1on avatar Oct 01 '20 09:10 Kat1on

При генерации используется логика, отличная от логики в методе GetBox, но учитывающая все возможные ящики в Диадоке. Изменение этой логики не планируется. Поэтому вам рекомендуем либо указывать все данные в структуре ExtendedOrganizationDetails вместе с идентификатором, либо использовать ExtendedOrganizationReference и указывать boxid

NataliaShumikhina avatar Oct 05 '20 13:10 NataliaShumikhina

Но вопрос остается актуальным... Почему при прочих равных для одного клиента работает без идентификатора, а для другого клиента надо указать? Причем методы генерации обоих документов для клиентов одинаковые. Заметили еще, что при формировании документа не заполняется кпп в идпол и идфайл, но мы его отправляем. С чем это может быть связанно? image

Kat1on avatar Oct 07 '20 09:10 Kat1on

Если для организации в Диадоке создан один ящик, то проблемы выбора не возникает. Для инн 4003014954 ящик как раз один

i82 avatar Oct 08 '20 06:10 i82

инн 4003014954 это отправитель, с ним проблем нет. Клиент МГК 2 ящика в диадоке, проблем с отправкой (отправляем на роуминг) нет. image Клиент Дистрибьшен 3 ящика (при этом наш контрагент только один роуминговый). Ранее скриншот отправляла. Т.е. проблема явно не с заполнением всех данных ExtendedOrganizationDetails ( FnsParticipantId)

Kat1on avatar Oct 08 '20 07:10 Kat1on

Заметили еще, что при формировании документа не заполняется кпп в идпол и идфайл, но мы его отправляем. С чем это может быть связанно?

ИдПол - идентификатор участника ЭДО, который формируется не при каждой отправке документа, а один раз при регистрации организации. Вероятно, изначально для организации не был указан КПП, поэтому идентификатор сформировался без него.

По формированию ИдПол в случае нескольких ящиков. Проверили на своей стороне для МГК - при генерации, если использовать структуру ExtendedOrganizationDetails и явно не указать FnsParticipantId, то в ИдПол подставится идентификатор диадочного ящика, а не роумингового. Чтобы все работало корректно для всех контрагентов, вам нужно либо использовать ExtendedOrganizationDetails и всегда указывать для роуминговых ящиков FnsParticipantId, либо использовать структуру ExtendedOrganizationReference с указанием boxid

NataliaShumikhina avatar Oct 12 '20 04:10 NataliaShumikhina

А возможно ли такая ситуация: в документе для МГК указан ИдПол диадочного ящика, но в контрагентах у нас только роуминговый ящик и отправка идет на роуминг вне зависимости от ИдПол?

Kat1on avatar Oct 13 '20 07:10 Kat1on

Нет, такого быть не должно. Если диадочный КА не заблокирован вами и не заблокировал вас (статус КА не IsRejectedByMe и не RejectsMe ) и КА принимает документы от всех ящиков (Sociability = AllOrganizations), то документ будет отправлен в диадочный ящик.

aeremina88 avatar Oct 13 '20 11:10 aeremina88

Обнаружили следующую ситуацию отправляем клиенту в роуминг, видим, что документ принят в роуминге, но при этом ИДпол диадочный. image image image

При отправке в Synerdocs ситуация такая же, но документ у клиента в ошибке: Неправильный порядок следования идентификаторов отправителя и получателя в идентификаторе файла (атрибут ИдФайл). Сначала должен быть указан идентификатор получателя, затем идентификатор отправителя.;InvalidFormatField;Document.Content;. Изначально в техподдержке сказали, что скорее всего это потому что ИДпол сформировался диадочный. Но судя по всему это все таки какая -то надстройка на роуминге. Отличие клиента в Synerdocs в том, что КПП роумингового участника, отличается от КПП диадочного участника.

Kat1on avatar Oct 13 '20 20:10 Kat1on