При выгрузке данных из 1С:ERP в 1С:Бухгалтерию пользователи часто сталкиваются с различными ошибками обмена. Одной из таких специфичных проблем является ошибка проверки данных XDTO, которая возникает при попытке передать документ "Счет-фактура выданный (аванс)". Рассмотрим эту проблему подробно и разберем шаги по ее устранению.
Автор темы столкнулся со следующей ошибкой при первом обмене из 1С:ERP 2.5 в 1С:Бухгалтерию 3:
ПКО: Документ_СчетФактураВыданныйАванс_Отправка.
Объект: Документ объект: Счет-фактура выданный (аванс), Счет-фактура выданный (аванс) БПА000000273 от 31.12.2020 23:59:59 (e1cib/data/Документ.СчетФактураВыданныйАванс?ref=949c0cc47a6bd25311eb597ffbbceb6f).
Ошибка проверки данных XDTO:
Структура объекта '/ДокументыОснования/Строка[1]' не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8}Документ.СчетФактураВыданный.ДокументыОснования.Строка Проверка свойства 'ДокументОснование':
форма: Элемент
имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8}ДокументОснование тип: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8}СоставнойДокументРасчетов Отсутствует обязательное свойство
Эта ошибка указывает на то, что в выгружаемом документе СчетФактураВыданныйАванс или связанных с ним данных отсутствует обязательное свойство ДокументОснование или оно имеет некорректный тип, который не соответствует XDTO-схеме обмена EnterpriseData 1.8. Схема обмена ожидает, что свойство ДокументОснование будет иметь тип СоставнойДокументРасчетов, но по факту это условие не выполняется.
Давайте выясним, почему возникает такая ошибка. Автор темы, в ходе диагностики, сообщил, что типом документа-основания в ERP является "Первичный документ". Это является ключевой подсказкой.
EnterpriseData и конфигурация 1С:Бухгалтерия 3.0, скорее всего, ожидают более специфичный тип документа в качестве основания для авансового счета-фактуры. Как правило, таким основанием выступает платежный документ, подтверждающий получение аванса, например, ПоступлениеНаРасчетныйСчет или ПриходныйКассовыйОрдер. Обобщенный тип "Первичный документ" не является достаточно конкретным для системы-приемника и XDTO-схемы, что приводит к ошибке валидации данных.СоставнойДокументРасчетов: В ошибке явно указано, что ожидается тип СоставнойДокументРасчетов. Этот составной тип обычно включает в себя различные виды платежных и расчетных документов. Если в ERP в поле "Документ-основание" указан именно "Первичный документ", то при конвертации он может не маппиться на один из допустимых типов, составляющих СоставнойДокументРасчетов, или вообще не иметь всех необходимых полей для корректного представления.ДокументыОснования: Автор отметил, что не видит табличной части ДокументыОснования в интерфейсе документа. Это нормальное поведение. Многие структуры данных, используемые для обмена по стандарту EnterpriseData, являются внутренними и не отображаются напрямую пользователю в форме документа. Они формируются при выгрузке данных в соответствии с правилами обмена и XDTO-схемой. Ошибка ссылается именно на эту внутреннюю структуру.СчетФактураВыданный в ошибке для авансового документа: Тот факт, что в тексте ошибки XDTO упоминается Документ.СчетФактураВыданный.ДокументыОснования.Строка, хотя речь идет о СчетФактураВыданныйАванс, может указывать на несколько аспектов:
Для устранения ошибки XDTO при выгрузке "Счета-фактуры выданного (аванс)" предлагаем следующий алгоритм действий:
Мы настоятельно рекомендуем использовать максимально близкие и актуальные версии платформы 1С:Предприятия и конфигураций 1С:ERP и 1С:Бухгалтерия. Несоответствие версий часто является источником проблем при обмене данными, так как схемы XDTO и правила конвертации постоянно дорабатываются. Убедитесь, что обе базы обновлены до последних стабильных релизов, совместимых друг с другом. Автор темы указал версии 2.5.6.98 для ERP и 3.0.87.28 для БУХ, что само по себе не является критичным разбросом, но всегда стоит проверить наличие более свежих патчей и обновлений.
Это самый важный шаг. Нам необходимо убедиться, что документ-основание в ERP заполнен корректно и имеет ожидаемый тип.
Счет-фактура выданный (аванс) БПА000000273 от 31.12.2020 23:59:59. Откройте этот документ в базе 1С:ERP.В некоторых конфигурациях 1С, особенно в современных релизах, есть возможность посмотреть, какие данные будут отправлены при обмене. Мы можем воспользоваться этой функцией, чтобы провести дополнительную диагностику.
Если проблема не решилась корректировкой документа-основания, возможно, дело в правилах обмена. Мы рассмотрим два основных сценария:
Документ_СчетФактураВыданныйАванс_Отправка: Это программный код объекта, указанный в ошибке.ДокументыОснования и свойства ДокументОснование внутри нее. Убедитесь, что источник данных (документ-основание из ERP) корректно маппируется на целевой тип СоставнойДокументРасчетов и что все обязательные поля (номер, дата) передаются. Возможно, потребуется добавить или скорректировать алгоритм для корректного преобразования "Первичного документа" в ожидаемый тип или для извлечения его ключевых реквизитов.Для глубокого понимания проблемы, особенно если предыдущие шаги не помогли, мы можем выгрузить данные в XML-файл и изучить его структуру. Это позволит увидеть, как 1С:ERP формирует данные перед отправкой и выявить точное место ошибки.
Счета-фактуры выданного (аванс). Затем найдите блок <ДокументыОснования> и внутри него элемент <Строка>, а уже в нем — <ДокументОснование>.<ДокументОснование>. Вы должны увидеть теги, описывающие тип документа, его уникальный идентификатор, номер, дату и другие реквизиты. Если этот элемент пуст, некорректно сформирован или содержит только обобщенные данные, это подтвердит проблему с передачей документа-основания. Например, корректный фрагмент мог бы выглядеть примерно так:
<ДокументыОснования>
<Строка НомерСтроки="1">
<ДокументОснование>
<Ссылка>
<ТипОбъекта>Документ.ПоступлениеНаРасчетныйСчет</ТипОбъекта>
<Идентификатор>{GUID_платежного_документа}</Идентификатор>
<НомерДокумента>000000123</НомерДокумента>
<ДатаДокумента>2020-12-31</ДатаДокумента>
</Ссылка>
<Номер>000000123</Номер>
<Дата>2020-12-31</Дата>
</ДокументОснование>
</Строка>
</ДокументыОснования>
Если вместо этого вы видите отсутствие этих тегов, пустые значения или некорректный тип, это прямо укажет на ошибку в формировании XML.
Ошибка XDTO при обмене "Счета-фактуры выданного (аванс)" из 1С:ERP в 1С:Бухгалтерию чаще всего связана с тем, что документ-основание, по которому был выписан авансовый счет-фактура, имеет некорректный или слишком общий тип (например, "Первичный документ") в ERP. Система-приемник и XDTO-схема обмена EnterpriseData ожидают конкретный платежный документ с определенными реквизитами. Последовательная проверка версий, корректировка документа-основания в ERP, а также анализ правил обмена и XML-файла помогут вам локализовать и устранить эту проблему, обеспечив успешный обмен данными.