Доброго дня!
В начале этой недели или в конце прошлой неделе (не это главное) столкнулись с одной интересной проблемой.
На текущий момент как решать именно такую проблему мы знаем, но тут хотелось бы всё же написать, что такая проблема существует, и вероятно требует решения.
Всё было так:
1. Существует поставщик алкогольной продукции.
2. Данный поставщик совершил нам отгрузку алкогольной продукции, в комплекте с данной продукцией прислал бумажные документы.
3. В бумажных документах указан номер накладной, который всегда там указывается.
4. Поставщик прислал так же в системе ЕГАИС через УТМ электронную версию ТТН с таким же номером, как бумажная версия и номером вида TTN-xxx.
5. Мы получили данную накладную, проверили её и начали процесс подтверждения.
6. Поставщик в свою очередь увидел, что он ошибся, когда формировал накладную, и отменил ту накладную ТТН, которую мы проверяли, аннулировал её и выслал повторно новую накладную с таким же номером, как бумажная ТТН, но с номером вида TTN-xxx на единицу больше.
7. Таким образом у нас стало две ТТН от одного поставщика, с номером, который совпадает с бумажной ТТН, но разными номерами внутри.То есть программа могла различить, что ТТН разные.
8. Вот тут было самое интересное.
Аннулирование ТТН произошло в тот момент, когда мы её загрузили и начали проверять.
То есть в момент времени, когда мы нажали кнопку "Загрузить", ТТН была в нормальном виде. Далее ТТН была у нас и мы работали с ней автономно. В этот же самый момент времени, пока мы проверяли соответствие позиций, поставщик у себя обнаружил ошибку и вероломно удалил у себя данную ТТН и прислал к нам новую ТТН с другим составом продукции.
9. Мы будучи уверены в том, что эта ТТН одна и она нормальная нажали, что мы отправляем данную ТТН в УТМ, но при попытке отправки мы получили ошибку.
Ошибка состояла в том, что мы пытались подтвердить удаленную ТТН.
Но мы не знали в момент подтверждения того, что данная ТТН удалена.
10. Далее, когда данная проблема была нами обнаружена, когда мы получили ошибку. Мы связались с поставщиком, выяснили подробности, в том числе и то, что поставщик на своей стороне удалил данную ТТН и создал другую ТТН.
11.После некоторых манипуляций мы всё же подтвердили нашу вторую, правильную ТТН и вроде как сейчас проблемы нет.
Из всего этого я вижу следующее.
Программа получает список ТТН и работает с ними автономно, при этом, если на сервере УТМ происходят какие то изменения с ТТН, программа об этом узнать не может, потому что нет механизма проверки, защиты от ошибки.
Пока не отправишь АКТ, не узнаешь, проблема с ТТН есть или нет.
Обновление списка ТТН и их статусов происходит только при нажатии "стрелки с площадкой", при нажатии кнопку "загрузить".
Если кнопку не нажимать, актуальный список ТТН не выводится.
Таким образом, тут я вижу проблему, мы не знаем актуальна ли наша ТТН или нет, в тот момент, когда мы её хотим подтвердить.