Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибка начение атрибута @ИдФайл имеет неверный формат при АПИ и допсведения при загрузке через интерфейс Диадок #686

Closed
AlexDevToDeath opened this issue Sep 20, 2021 · 7 comments
Labels
help wanted Запрос помощи в настройке интеграции

Comments

@AlexDevToDeath
Copy link

ON_NSCHFDOPPR_5047085094_504701001_7701368645_772801001_20210917_3f01c61d-593a-47bf-bbe4-3aa8d06910b0.xml.zip

Выгружаем Файл (во вложении) из 1С Бухгалерия как через АПИ, так и штатными средствами 1С.
1С Бухгалтерия типовая, версия Бухгалтерия предприятия, редакция 3.0 (3.0.96.35)
Если файл выгружаем через АПИ
SendTask.AddDocumentFromFile("UniversalTransferDocument", "СЧФДОП", "utd820_05_01_01",ПутькФайлуXML)

Получаем ошибку:

Uploading ON_NSCHFDOPPR_5047085094_504701001_7701368645_772801001_20210917_3f01c61d-593a-47bf-bbe4-3aa8d06910b0.txt…

Произошла исключительная ситуация (PackageSendTask2.Send): ##100[Ошибка сервера Диадок]code:400, HTTP error: MessageToPost.DocumentAttachments[0]: { Location = /Файл/@ИдФайл, Message = Значение атрибута @ИдФайл имеет неверный формат: ON_NSCHFDOPPR_5031081930_503101001_7701368645_772801001_20210917_ae83c34b-94a0-43e7-aedb-4b70de6321c9 (@ИдОтпр=7701368645_772801001, @ИдПол=5031081930_503101001)
При отстутствии /Файл/Документ/ТаблСчФакт/СведТов/ДопСведТов/НомСредИдентТов и /Файл/Документ/ТаблСчФакт/СведТов/ДопСведТов/СведПрослеж значение @ИдФайлON_NSCHFDOPPR_5047085094_504701001_7701368645_772801001_20210917_3f01c61d-593a-47bf-bbe4-3aa8d06910b0.xml.zipдолжно начинаться с ON_NSCHFDOPPR_, ON_NSCHFDOPPRMARK_ или ON_NSCHFDOPPRPROS };{ Location = /Файл/СвУчДокОбор/СвОЭДОтпр, Message = Поле СвОЭДОтпр должно присутствовать }

Если же этот же файл пытаемся отправить через интерфейс диадок, то получаем следубщие ошибки (хотя все поля и парсятся):

image
image
image

Отсюда вопрос: Что именно не так в файле, почему все сведения через интрефес диадок парсятся но все допсведения помечены красненьким крестом?
Какая минимальная версия 1С БУхгалтерия совместима с текущим АПИ Диадок?

@GilimkhanovDenis GilimkhanovDenis added the help wanted Запрос помощи в настройке интеграции label Sep 20, 2021
@GilimkhanovDenis
Copy link
Contributor

Добрый день

В файле неправильный контент:
Согласно формату в ИдФайл должны быть указаны идентификаторы участников ЭДО (см Organization.FnsParticipantId и Counteragent.FnsParticipantId), а не ИНН_КПП
Поле СвОЭДОтпр должно присутствовать

Про версию конфигурации не сможем подсказать.

@AlexDevToDeath
Copy link
Author

AlexDevToDeath commented Sep 20, 2021

Добрый день

В файле неправильный контент:
Согласно формату в ИдФайл должны быть указаны идентификаторы участников ЭДО (см Organization.FnsParticipantId и Counteragent.FnsParticipantId), а не ИНН_КПП
Поле СвОЭДОтпр должно присутствовать

Про версию конфигурации не сможем подсказать.

Ответ немного странен и не полон, прошу прощения.

  1. Если мы пользуемся стандартным рабочим кабинетом Диадок (бухгалтер руками выгрузил файл из 1С и руками в личном кабинете через интернет браузер его загружает) - откуда в файле возьмутся ИД из Организации и Контрагента из диадок?
  2. Продолжение вопроса 1 (вариант выгрузки руками и загрузки файла через интернет браузер) - почему на скриншотах выше диадок ругается не на контрагента или организацию, а на допинформацию?
  3. Вопрос уже не про ручную выгрузку, а про вариант загрузки через апи. В настоящий момент файлы, выгруженные из более ранеей версии 1С, где тоже указаны ИНН и КПП как в текущем файле, через апи отправляются. При этом при отправке через АПИ в актуальной документации указано, что контрагент и организация указываются примерно следующим образом:
    SendTask = мПараметры.Organization.CreatePackageSendTask2();
    SendTask.CounterAgentId = элем.КонтрагентИД;
    т.е. они явно указываются не в файле, в самом методе SendTask2. Этот подход поменялся ? Теперь надо указывать в файле? вместе со старым кодом или вместо?

@GilimkhanovDenis
Copy link
Contributor

  1. Если мы пользуемся стандартным рабочим кабинетом Диадок (бухгалтер руками выгрузил файл из 1С и руками в личном кабинете через интернет браузер его загружает) - откуда в файле возьмутся ИД из Организации и Контрагента из диадок?

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

  1. Продолжение вопроса 1 (вариант выгрузки руками и загрузки файла через интернет браузер) - почему на скриншотах выше диадок ругается не на контрагента или организацию, а на допинформацию?

Если речь про красные крестики, то это кнопка для удаления строки. О каких ошибках на скриншоте речь?

  1. Вопрос уже не про ручную выгрузку, а про вариант загрузки через апи. В настоящий момент файлы, выгруженные из более ранеей версии 1С, где тоже указаны ИНН и КПП как в текущем файле, через апи отправляются. При этом при отправке через АПИ в актуальной документации указано, что контрагент и организация указываются примерно следующим образом:
    SendTask = мПараметры.Organization.CreatePackageSendTask2();
    SendTask.CounterAgentId = элем.КонтрагентИД;
    т.е. они явно указываются не в файле, в самом методе SendTask2. Этот подход поменялся ? Теперь надо указывать в файле? вместе со старым кодом или вместо?
SendTask = мПараметры.Organization.CreatePackageSendTask2();
SendTask.CounterAgentId = элем.КонтрагентИД;

Так задаётся ящик в который будет отправлен документ. Контент документа будет ровно тот, который загружаете методом
SendTask.AddDocumentFromFile("UniversalTransferDocument", "СЧФДОП", "utd820_05_01_01",ПутькФайлуXML)

В общем случае эSendTask.CounterAgentId может относиться к организации, отличной от той, которая указана в участниках докуентооборота в контенте документа.

Что касается "раньше отправлялось" - вероятно, раньше использовался PackageSendTask , а не PackageSendTask2. В нём метод с аналогичным названием сначала разбирал контент документа в объектную модель, а потом перегенерировал. Т.е. отправлялся не тот же контент, который был загружен

@AlexDevToDeath
Copy link
Author

  1. Если мы пользуемся стандартным рабочим кабинетом Диадок (бухгалтер руками выгрузил файл из 1С и руками в личном кабинете через интернет браузер его загружает) - откуда в файле возьмутся ИД из Организации и Контрагента из диадок?

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

  1. Продолжение вопроса 1 (вариант выгрузки руками и загрузки файла через интернет браузер) - почему на скриншотах выше диадок ругается не на контрагента или организацию, а на допинформацию?

Если речь про красные крестики, то это кнопка для удаления строки. О каких ошибках на скриншоте речь?

  1. Вопрос уже не про ручную выгрузку, а про вариант загрузки через апи. В настоящий момент файлы, выгруженные из более ранеей версии 1С, где тоже указаны ИНН и КПП как в текущем файле, через апи отправляются. При этом при отправке через АПИ в актуальной документации указано, что контрагент и организация указываются примерно следующим образом:
    SendTask = мПараметры.Organization.CreatePackageSendTask2();
    SendTask.CounterAgentId = элем.КонтрагентИД;
    т.е. они явно указываются не в файле, в самом методе SendTask2. Этот подход поменялся ? Теперь надо указывать в файле? вместе со старым кодом или вместо?
SendTask = мПараметры.Organization.CreatePackageSendTask2();
SendTask.CounterAgentId = элем.КонтрагентИД;

Так задаётся ящик в который будет отправлен документ. Контент документа будет ровно тот, который загружаете методом
SendTask.AddDocumentFromFile("UniversalTransferDocument", "СЧФДОП", "utd820_05_01_01",ПутькФайлуXML)

В общем случае эSendTask.CounterAgentId может относиться к организации, отличной от той, которая указана в участниках докуентооборота в контенте документа.

Что касается "раньше отправлялось" - вероятно, раньше использовался PackageSendTask , а не PackageSendTask2. В нём метод с аналогичным названием сначала разбирал контент документа в объектную модель, а потом перегенерировал. Т.е. отправлялся не тот же контент, который был загружен

  1. Приложенный файл веб интерфейс Диадок (ручная отправка через браузер) не принимает. Пишет только, что есть ошибки. Если удалить всю доп информацию, то файл принимается. Почему?
    image

  2. Нет, данный программный код не менялся последние два квартала. Использовали сразу PackageSendTask2. Более того, если я сейчас (только что проверил) пихаю в него хмл, сделанную до 01.07, то документ уходит и диадок принимает.

@GilimkhanovDenis
Copy link
Contributor

  1. Приложенный файл веб интерфейс Диадок (ручная отправка через браузер) не принимает. Пишет только, что есть ошибки. Если удалить всю доп информацию, то файл принимается. Почему?

С данным вопросом обратитесь в техподдержку

  1. Можно пример XML, который подобным образом отправляется?

@AlexDevToDeath
Copy link
Author

  1. Приложенный файл веб интерфейс Диадок (ручная отправка через браузер) не принимает. Пишет только, что есть ошибки. Если удалить всю доп информацию, то файл принимается. Почему?

С данным вопросом обратитесь в техподдержку

  1. Можно пример XML, который подобным образом отправляется?

Давайте пойдем от противного.
Во вложении файл.
Исправили его так, как вы сказали

Но ошибка при отправке через АПИ (код отправки тот же) не поменялась за исключением того, что пропала последняя ее часть, а именно, исчезло "Message = Поле СвОЭДОтпр должно присутствовать": .

Код отправки: SendTask.AddDocumentFromFile("UniversalTransferDocument", "СЧФДОП", "utd820_05_01_01",ПутькФайлуXML)

Текст ошибки:

ОтправленныеДокументы = SendTask.Send();
по причине:
Произошла исключительная ситуация (PackageSendTask2.Send): ##100[Ошибка сервера Диадок]code:400, HTTP error: MessageToPost.DocumentAttachments[0]: { Location = /Файл/@ИдФайл, Message = Значение атрибута @ИдФайл имеет неверный формат: ON_NSCHFDOPPR_7701368645_772801001_9715326381_771501001_20210915_6544a794-8544-4012-b307-b5e0fd210c1c (@ИдОтпр=dc74b700-f93c-11e8-80da-0cc47a31ea11, @ИдПол=5b506d04-a26f-11eb-8db3-ac1f6bc56bbd)
При отстутствии /Файл/Документ/ТаблСчФакт/СведТов/ДопСведТов/НомСредИдентТов и /Файл/Документ/ТаблСчФакт/СведТов/ДопСведТов/СведПрослеж значение @ИдФайл должно начинаться с ON_NSCHFDOPPR_, ON_NSCHFDO

ДляДиадок.txt

@GilimkhanovDenis
Copy link
Contributor

fixe.txt
Попробуйте такой

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Запрос помощи в настройке интеграции
Projects
None yet
Development

No branches or pull requests

2 participants