Импорт XML-накладной в 1С: разбор способов и настроек
Содержание
Накладная в формате XML попадает в 1С тремя разными путями, и выбор зависит от того, откуда файл пришёл. Если это формализованный документ от поставщика через оператора — его принимают в модуле ЭДО. Если это выгрузка из другой программы или интернет-магазина — через обмен в формате CommerceML. Если обмен идёт между двумя базами 1С — через EnterpriseData и синхронизацию данных.
Главная ошибка — пытаться открыть XML
-файл накладной напрямую через Файл → Открыть. Так загружается только внешняя обработка или отчёт, а товарный документ в формате XML обрабатывается специальными механизмами. Ниже — какой механизм под какой файл и как его настроить.
С чего начать: определите формат файла
Прежде чем что-то настраивать, откройте XML-файл в блокноте и посмотрите на первые строки — по ним видно, какого он формата.
- 📄 Формат ФНС (формализованный документ). В начале файла встретятся теги вида
<Файл ИдФайл=...>,<СвУчДокОбор>, упоминаниеУПД,ДОПилиТОРГ-12. Это электронная накладная или УПД по формату Федеральной налоговой службы. Грузится через ЭДО. - 📄 CommerceML (КоммерцияМЛ). В корне документа тег
<КоммерческаяИнформация ВерсияСхемы="2.05">или похожей версии. Это стандарт выгрузки товаров и документов между программами 1С и с интернет-магазинами. - 📄 EnterpriseData. Файл содержит пространство имён
EnterpriseDataи теги вида<Документ.РеализацияТоваровУслуг>. Это универсальный формат обмена между конфигурациями 1С.
Если формат вам неизвестен и теги не похожи ни на один из перечисленных — файл сформирован нетиповой системой. Для него нужен либо индивидуальный план обмена, либо конвертация во внешней обработке (об этом в разделе про пользовательские форматы).
Расширение .xml ещё ничего не говорит о содержимом. Один и тот же тип документа «реализация товаров» в трёх форматах выглядит внутри совершенно по-разному.
Приём формализованной накладной через ЭДО
Самый частый случай — поставщик прислал электронную накладную
или УПД. Когда обмен настроен через оператора (1С-ЭДО, 1С-Такском), документ приходит сам и загружать XML вручную не нужно.
Путь к рабочему месту в «1С:Бухгалтерии 3.0»:
- Откройте
Покупки → Текущие дела ЭДО(для входящих от поставщиков) илиПродажи → Текущие дела ЭДО(для исходящих). - В списке входящих найдите присланный документ и откройте его.
- Нажмите кнопку создания документа учёта — система предложит сопоставить номенклатуру поставщика с вашей и создаст
Поступление (акт, накладная). - Проверьте сопоставление и проведите документ.
Чтобы обмен вообще работал, он должен быть включён: Администрирование → Обмен электронными документами. Там подключается учётная запись оператора и настраиваются виды документов, которыми вы обмениваетесь.
Сопоставление номенклатуры программа делает только при первой поставке от конкретного контрагента. Один раз связав код поставщика со своей позицией, она запоминает связь — следующая накладная от того же контрагента подтянет товары автоматически. Поэтому первая загрузка от нового поставщика идёт медленно, а дальше быстро.
Отдельно стоит различать уточнение и аннулирование электронного документа. Если поставщик прислал исправленную накладную, она приходит как новый входящий документ со ссылкой на исходный — не загружайте обе, иначе задвоите поступление. Аннулирование — это двустороннее действие в канале ЭДО, а не удаление документа у себя в базе.
Если XML-файл накладной у вас на диске
Бывает, что оператор у вас не подключён, а контрагент прислал XML-файл формализованного документа по почте. Его можно загрузить вручную.
- Зайдите в
Покупки → Текущие дела ЭДО. - В командной панели списка найдите команду загрузки электронного документа из файла (она может быть в меню
Ещё). - Укажите путь к XML-файлу. Если рядом лежит файл подписи (
.sigили.p7s), укажите и его — система проверит целостность. - Дальше документ обрабатывается так же, как пришедший по каналу: сопоставление номенклатуры и создание поступления.
Накладная без обязательных реквизитов (нет ИНН, не заполнен раздел с данными о сделке) при ручной загрузке даст ошибку проверки формата. Такой файл поставщику придётся перевыставить — исправить XML руками нельзя, иначе слетит электронная подпись.
Точное название команды загрузки отличается между релизами, но она всегда находится в рабочем месте ЭДО, а не в меню Файл.
Загрузка товаров и документов через CommerceML
CommerceML — формат для обмена с сайтами и другими программами 1С, не завязанный на оператора ЭДО. По нему выгружают каталог товаров, цены, остатки и сами документы. Накладная в этом формате — это обычно пакет файлов, а не один XML.
Настройка в «1С:Бухгалтерии» и «1С:Управление торговлей» идёт через механизм обмена с сайтом:
- Откройте раздел интеграции с сайтом (в БП —
Администрирование → Обмен с сайтом, в УТ соответствующий пункт разделаНСИ и администрирование). - Создайте узел обмена и укажите каталог, куда складываются файлы выгрузки.
- В настройках выберите, что принимать: товары, цены, заказы, документы.
- Запустите загрузку — вручную кнопкой или по расписанию регламентным заданием.
Файлы CommerceML обычно называются по назначению: import.xml — номенклатура, offers.xml — цены и остатки, отдельный файл — документы (заказы, накладные). Загружайте файлы только из доверенного источника: некорректный пакет может создать дубли номенклатуры.
Версия схемы в теге ВерсияСхемы имеет значение. Распространены версии 2.05, 2.08 и 2.10 — они отличаются набором доступных тегов (например, поддержкой характеристик и упаковок товара). Если отправитель выгружает по более новой версии, чем понимает ваш релиз, часть данных просто не загрузится. Лечится обновлением конфигурации до релиза, который поддерживает нужную версию схемы.
Обмен по CommerceML бывает односторонним (только приём каталога) и двусторонним (приём заказов и отправка статусов, остатков). Для накладной от поставщика достаточно одностороннего приёма документов; настройку отправки включать не нужно, чтобы не слать лишнее обратно.
Если каталога ещё нет и обмен не настраивался, разовую загрузку товаров удобнее делать через Покупки → Загрузка из файла, но этот механизм работает с Excel и табличными файлами, а не с XML CommerceML.
Синхронизация между базами 1С через EnterpriseData
Когда накладную в XML выгружает другая база 1С (например, из обособленного подразделения или из «1С:Управление нашей фирмой» в «1С:Бухгалтерию»), используется формат EnterpriseData и типовая синхронизация.
Путь: Администрирование → Синхронизация данных.
- Включите флаг использования синхронизации данных.
- Создайте настройку, выбрав вариант «через универсальный формат» (EnterpriseData).
- Задайте способ обмена: прямое подключение к другой базе, обмен через каталог на диске или через FTP.
- Выполните первую синхронизацию — программа перенесёт справочники и документы, в том числе накладные (реализации и поступления).
Главное преимущество EnterpriseData — не нужно писать правила конвертации под каждую пару конфигураций. Формат единый, типовые конфигурации понимают его «из коробки».
Если базы — одной версии одной конфигурации, вместо EnterpriseData подойдёт обмен по прямому плану (Полный или По организации). Он переносит документы точнее, но работает только между одинаковыми конфигурациями.
Пользовательские форматы и XSD-схемы
Если XML сформирован сторонней системой (складская программа, маркетплейс, собственная разработка), типовой механизм его не примет: структура тегов не совпадёт с ожидаемой. Здесь работают два подхода.
Конвертация данных . Для обмена между разными конфигурациями применяется типовое решение «1С:Конвертация данных». В нём создаются правила: какому реквизиту документа 1С соответствует какой тег XML. Правила выгружаются в файл и подключаются к базе как обработка. Это основной инструмент, когда структуры не совпадают.
Разбор XML средствами встроенного языка. Для разового импорта пишут внешнюю обработку , которая читает файл последовательно. Базовый шаблон чтения:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ИмяТега = ЧтениеXML.Имя;
// обработка нужного тега
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
Для документов со сложной вложенностью удобнее десериализация через ФабрикаXDTO, если к XML есть XSD-схема.
Зачем нужна XSD-схема
XSD — это описание структуры XML: какие теги обязательны, какого они типа, в каком порядке идут. Для формализованных документов ФНС свои XSD-схемы, и файл накладной обязан им соответствовать — иначе оператор и приёмная сторона его отклонят.
- ✅ Схема есть → можно проверить файл на соответствию формату ещё до загрузки.
- ✅ Схема есть → в 1С можно построить
ФабрикаXDTOи читать документ объектами, а не перебором тегов. - ❌ Схемы нет → остаётся ручной разбор тегов и ручная же проверка обязательных полей.
Сопоставление кодов — самое узкое место. Если артикул поставщика не найден в вашем справочнике, строка либо не загрузится, либо создаст новую позицию-дубль. Поэтому в механизмах ЭДО и обмена предусмотрен шаг ручного сопоставления номенклатуры.
Разбор ошибок при импорте
Не редактируйте XML формализованной накладной в блокноте, чтобы «подогнать» теги. Любое изменение после подписания делает документ недействительным. Все исправления — только перевыставлением со стороны отправителя.
Сверка данных после загрузки
Загрузка прошла без ошибок — это ещё не значит, что документ корректен. Проверьте созданное поступление до проведения:
- Суммы. Итог по документу должен совпасть с итогом в исходном XML. Расхождение на копейки — обычно разное округление строк; крупное расхождение означает, что потерялась строка или цена.
- Количество строк. Число позиций в табличной части должно совпасть с числом товаров в файле.
- НДС. Ставка и сумма налога должны соответствовать присланным, а не подставиться «по умолчанию» из карточки номенклатуры.
- Контрагент и договор. Подставился именно тот поставщик и тот договор, по которому идёт поставка.
Для массовой сверки после партии загрузок удобно построить Отчёты → Универсальный отчёт по регистру «Закупки» или оборотно-сальдовую ведомость по счёту 60 — суммы поступлений должны сойтись с суммами в исходных файлах.
Можно ли открыть XML-накладную двойным кликом?
Поставщик прислал XML, но оператор ЭДО у меня не подключён. Что делать?
Текущие дела ЭДО, указав путь к файлу и к файлу подписи. Для полноценного юридически значимого обмена оператора лучше подключить.