Впервые за 7 лет существования проекта сегодня встретился косяк программы "УСЕга", а так как эта ошибка от рождения и весьма неожиданная, правда не приводящая к проблемам, то на выяснение её источника потратил много времени, а всё из-за того, что изначально обязательными атрибутами КА являлись краткое и полное наименование, т.е. они всегда существали в теле XML накладных... Да и с данным поставщиком работает "всю жизнь" и никогда таких заморочек не возникало. Даже созванивался с тамошними специалистами - у них ничего не менялось??? Правда после нахождения источника косяка - всё же менялось! В новых версиях их программы была проведена, наверное от "безделия" оптимизация размеров исходящих документов.
Стартовая суть вопроса - в справке по ТТН отражает ХЗ какого поставщика, но все прочие атрибуты абсолютно правильные:
Конечно первым делом изучаю файл ТТН и ... не нахожу ничего "особенного". Грешу на других - сейчас активно ковыряются в реальной базе средствами многих программ, т.е. могли типа испортить БД, удаляю этого КА вообще из БД, выяснив, что это производитель и всё равно восстановиться при перезапросе остатков... Не найдя источника проблем начал изучать "зеркало", т.е. искать, где сам когда-то мог накосячить, построчно разбирая код... и всё нашел... Конечно исправлю этот мой косяк, когда придумаю другие алгоритмы, а пока
источник проблемы отражения информации. Показываю, удалив ненужную инфу:
Код:
<ns:Owner>
<ns:FSRAR_ID>01</ns:FSRAR_ID>
</ns:Owner>
<ns:Document>
<ns:WayBill_v4>
<wb:Identity>000164081-20221020-194011</wb:Identity>
<wb:Header>
<wb:NUMBER>14851</wb:NUMBER>
<wb:Shipper>
<oref:UL>
<oref:FullName>Общество с ограниченной ответственностью "В...и"</oref:FullName>
</oref:UL>
</wb:Shipper>
<wb:Consignee>
</wb:Consignee>
<wb:Transport>
</wb:Transport>
</wb:Header>
<wb:Content>
<wb:Position>
<wb:Identity>1</wb:Identity>
<wb:Product>
<pref:FullName>Коньяк ординарный пятилетний региона Коньяк Селексьон Спесиаль Гранд Шампань Даниель Бужу</pref:FullName>
<pref:Producer>
<oref:FO>
<oref:FullName>САРЛ Бужу</oref:FullName>
<oref:ShortName>САРЛ Бужу</oref:ShortName>
В предположении, что <wb:Shipper> идет в описании первыми тегами ищу его атрибуты и короткое и длинное имя... а так, как тэги по коротким именам у поставщика, покупателя они "оптимизировали", то пролетаю до первого тега краткого имени, получается в описании производителя первого товара ТТН: <oref:ShortName>САРЛ Бужу</oref:ShortName> и запоминаю его как короткое имя поставщика.
Затем программа во всех дочерних режимах наименование поставщика отражает по принципу - если есть короткое имя, то отражает его, а если нет, то отражает обрезанное длинное имя