diadoc / diadocsdk-1c-docs

1C documentation - http://1c-docs.diadoc.ru/
https://developer.kontur.ru/Docs/Diadoc/COM/index.html
26 stars 22 forks source link

Проблема с заполнением адреса грузополучателя #1082

Closed dorexpro closed 1 month ago

dorexpro commented 1 month ago

Доброго дня.

Столкнулся внезапно с ошибкой при заполнении адреса грузополучателя. 1С 7.7, самописное решение. Компонента версии AddIn x86 5.45.0.912 и обновить пока нет возможности. До недавних пор адрес грузополучателя передавался вместе с наименованием грузополучателя, все работало и все были довольны. Но недавно один из контрагентов указал, на это, как на ошибку. Пришлось делать по правилам - отрезать адрес от наименования и раскладывать по разным полям. Теперь код заполнения грузополучателя выглядит примерно так:

Consignee = СодержаниеСчетаФактуры.Consignees.AddConsignee();

Consignee.OrganizationDetails.OrgName       = СокрЛП(сзДанные.Получить("Грузополучатель_Наименование"));
Consignee.OrganizationDetails.INN           = СокрЛП(сзДанные.Получить("ИННКПППокупателя_ИНН"));
Consignee.OrganizationDetails.KPP           = СокрЛП(сзДанные.Получить("ИННКПППокупателя_КПП"));

Consignee.OrganizationDetails.LegalEntityId = "LegalEntity";

Consignee.OrganizationDetails.FnsParticipantId = идЭДО;

ConsigneeForeignAddress = Consignee.OrganizationDetails.Address.ForeignAddress;
ConsigneeForeignAddress.Country = "643";
ConsigneeForeignAddress.Address = сзДанные.Получить("Грузополучатель_Адрес");

Все работало до вчерашнего дня. Сегодня в выгрузку попал документ, где строка адреса длиной 264 символов. И внезапно получили критическую ошибку с текстом:

PackageSendTask2.Send: ##100[Ошибка сервера Диадок]code:400, HTTP error: Invalid data UserContractData: Line: 28, Position: 36,

/UniversalTransferDocumentWithHyphens[1]/Consignees[1]/Consignee[1]/OrganizationDetails[1]/Address[1]/ForeignAddress[1]/@Address: The 'Address' attribute is invalid - The value '193149, Россия,

Текст ошибки внезапно обрывается и непонятно в итоге что компоненте не нравится в этом адресе. Насколько мне удалось раскопать по XSD, строка адреса в этом случае ограничено длиной в 1000 символов. Даже с перекодировкой русских символов вроде как должно хватить.

В чем проблема и как ее исправить?

dorexpro commented 1 month ago

На самом деле длина адреса грузополучаетеля и покупателя - 256 символов. Получить состав и типы полей - тот еще квест.