Рассмотрим распространенную и неприятную ситуацию в оптово-розничной торговле алкогольной продукцией. Поставщик оформляет товарно-транспортную накладную (ТТН), отправляет ее в ЕГАИС и получает регистрационный номер WBRegId. Затем обнаруживается ошибка, отправляется отказ за грузополучателя, фиксируется тикет о распроведении документа, и поставщик повторно выгружает исправленную ТТН в ЕГАИС, получая совершенно новый WBRegId. Однако клиент утверждает, что исправленная накладная до него не дошла и в его учетной системе не отображается.
Разберем подробно причины такого поведения ЕГАИС и учетных систем контрагентов, а также выясним, какие технические шаги необходимо предпринять отправителю и получателю для успешного обмена.
Проанализируем структуру XML-пакета накладной WayBill, отправляемого в ЕГАИС. В заголовке документа присутствует тег wb:Identity:
<xs:element name="Identity" type="c:IdentityType" nillable="false" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Идентификатор накладной (клиентский, к заполнению необязательный)</xs:documentation>
</xs:annotation>
</xs:element>
В это поле типовые конфигурации 1С и сторонние учетные системы обычно выгружают внутренний уникальный идентификатор (GUID) документа. Если после отзыва старой накладной вы отправляете исправленный документ с тем же самым GUID в поле wb:Identity, на стороне грузополучателя могут возникнуть следующие проблемы:
Identity для контроля дублей. Обнаружив накладную с уже известным Identity, программа считает ее повтором уже обработанного (или отклоненного) документа и просто игнорирует входящий XML.WBRegId. Учетная система получателя сопоставляет саму накладную и регистрационную справку по идентификатору Identity. Если он совпадает со старой версией, новая справка может привязаться к ранее отмененной ТТН.Решение для отправителя: При повторной отправке накладной в 1С создавайте новый документ с генерацией нового GUID либо программно обновляйте значение поля wb:Identity. Старый документ в базе следует перевести в статус «Отменен/Отозван» для сохранения корректной истории.
Выясним, как работают типовые конфигурации 1С на стороне грузополучателя (например, «1С:Розница» или «1С:Управление торговлей»). Даже если документу присвоен новый WBRegId, механизм загрузки входящих ТТН проверяет уникальность по реквизитам:
ФСРАР_ID грузоотправителя;Если в информационной базе покупателя уже зарегистрирована первая версия накладной (пусть и со статусом отказа), повторная загрузка с теми же номером и датой может автоматически отсекаться встроенным алгоритмом поиска дубликатов. Чтобы избежать подобных коллизий, рекомендуется при существенных исправлениях дополнять номер накладной буквенным или числовым суффиксом, либо очищать отмененную накладную в базе получателя перед повторной загрузкой.
Посмотрим на ситуацию со стороны транспортного модуля (УТМ). Служба ЕГАИС не всегда моментально доставляет входящие пакеты конечному получателю. Документ может застрять на центральном сервере или в очереди УТМ контрагента по следующим причинам:
ФСРАР_ID (например, если у обособленного подразделения клиента недавно сменился КПП или адрес лицензии).Разберем по шагам порядок действий для локализации и устранения проблемы:
WBRegId и ФСРАР_ID отправителя. Если статус указывает «Отправлено в УТМ получателя», значит, со стороны ЕГАИС документ передан успешно и проблема находится исключительно в учетной системе или УТМ клиента.WBRegId. Сервер ЕГАИС повторно положит пакет документа в очередь входящих сообщений УТМ получателя.Чтобы минимизировать риск потери накладных и разногласий с контрагентами, придерживайтесь следующих правил:
wb:Identity (новым GUID), не перезаписывая отправленные ранее реквизиты.WBRegId новой накладной, чтобы его оператор мог выполнить точечный поиск и принудительную загрузку документа.