Как загрузить файл XML в 1С 8.3: способы, шаги и разбор ошибок

· 12 мин

Содержание

Чтобы загрузить XML -файл в 1С 8.3, нужно сначала понять, что это за XML: для переноса данных между базами открывают внешнюю обработку через Файл → Открыть, для электронных документов — журнал Текущие дела ЭДО, для обмена по правилам — Администрирование → Синхронизация данных. Единой кнопки «Загрузить XML» в 1С нет, и это главная причина, по которой вопрос кажется сложнее, чем он есть.

Типичное заблуждение: раз файл один и тот же формат — значит и механизм один. На деле XML в 1С — это просто контейнер. Внутри может лежать выгрузка справочников, счёт-фактура от поставщика, прайс-лист интернет-магазина, декларация или ответ СФР. Для каждого случая — свой механизм загрузки, и попытка загрузить хмл-файл «не тем» способом как раз и даёт ошибки вида «Неверная структура файла обмена».

Ниже — пошаговая инструкция для всех рабочих вариантов: Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и ERP. С точными путями меню, проводками, проверочными отчётами и разбором ошибок, на которых чаще всего застревают.

Определите, какой у вас XML, — от этого зависит способ загрузки

Откройте файл любым текстовым редактором (Блокнот, Notepad++) и посмотрите первые 3–5 строк. Корневой тег почти всегда выдаёт формат.

Что видно в начале файлаЧто этоКуда загружать
<V8Exchange> или <_1CV8DtUD:Data>Выгрузка объектов между базами 1СОбработка «Выгрузка и загрузка данных XML»
<ФайлОбмена> / <ПравилаОбмена>Правила или данные конвертации (КД 2.0)Универсальный обмен данными в формате XML
<Message> + <Body> с EnterpriseDataСинхронизация по формату EnterpriseData (КД 3.0)Администрирование → Синхронизация данных
<Файл ИдФайл="ON_NSCHFDOPPR...">Счёт-фактура, УПД, акт от контрагентаТекущие дела ЭДО
<КоммерческаяИнформация>CommerceML: каталог, цены, заказыОбмен с сайтом (УТ 11, ERP)
<Файл ... <Документ КНД=...>Регламентированная отчётность, ответ ФНС/СФРЖурнал 1С-Отчётность
<AddressObjects>, <Houses>Выгрузка ФИАСЗагрузка адресного классификатора

Если файл пришёл в архиве — распакуйте его целиком, а не вытаскивайте один XML. В пакетах ЭДО рядом с документом лежат подписи и карточка, без них загрузка не пройдёт.

Откуда у вас взялся XML-файл?

Способ 1. Как загрузить XML-файл обработкой «Выгрузка и загрузка данных XML»

Это основной инструмент, когда данные переносят между двумя базами 1С с одинаковой конфигурацией: подняли копию, выгрузили справочник контрагентов или документы за период, загрузили в рабочую базу.

Обработка внешняя, в поставку конфигурации не входит — её берут из состава технологической поддержки платформы. Файл называется ВыгрузкаЗагрузкаДанныхXML82.epf (в старых сборках — V8Exchan82.epf).

Подготовка: что сделать до загрузки

  1. Сделайте архивную копию базы -приёмника — обработка пишет данные напрямую, откатить изменения штатно нельзя.
  2. Выгоните пользователей из базы. Загрузка объектов при активной работе даёт блокировки и битые ссылки.
  3. Сравните релизы конфигураций источника и приёмника. Расхождение в один подрелиз обычно не мешает, разные редакции (3.0 и 2.0) — мешают почти всегда.
  4. Проверьте права: нужна роль администратора и включённое право на интерактивное открытие внешних обработок.

Пошагово: загрузка в толстом клиенте

  1. Запустите базу в режиме Толстый клиент (обычное приложение). В тонком клиенте обработка откроется не всегда, а в веб-клиенте — не откроется.
  2. Меню Файл → Открыть…, выберите файл ВыгрузкаЗагрузкаДанныхXML82.epf.
  3. На предупреждение о небезопасном содержимом ответьте Да, если файл получен из доверенного источника.
  4. Перейдите на вкладку «Загрузка».
  5. В поле Имя файла для загрузки данных укажите путь к вашему XML, например D:\Exchange\kontragenty.xml.
  6. Снимите или оставьте флажки: Не записывать объекты в режиме обмена данными, Продолжать загрузку при возникновении ошибок.
  7. Нажмите Загрузить данные и дождитесь сообщения в служебных сообщениях.

Флажок «Продолжать загрузку при возникновении ошибок» удобен для диагностики, но в рабочей базе опасен: часть объектов загрузится, часть — нет, и вы получите документы без ссылок на номенклатуру.

Чем отличается загрузка в режиме обмена

Если флажок Не записывать объекты в режиме обмена данными снят, объекты пишутся без проведения документов и без выполнения части проверок — быстро, но без движений по регистрам. Потом документы придётся перепровести: Операции → Групповое перепроведение документов (в Бухгалтерии 3.0 — Администрирование → Обслуживание → Проведение документов).

Если флажок установлен — срабатывает обычная запись с проведением. Медленнее, зато проводки формируются сразу.

Способ 2. Универсальный обмен данными в формате XML (правила КД 2.0)

Этот способ применяют, когда конфигурации разные: например, выгрузка из самописной базы в Бухгалтерию 3.0 или перенос из 1С 7.7. Загрузка идёт по правилам обмена — тоже XML-файлу, который описывает соответствие объектов.

Порядок действий:

  1. Получите два файла: правила обмена (обычно ПравилаОбмена.xml или *_rules.xml) и файл с данными.
  2. Откройте обработку: в типовых конфигурациях — Администрирование → Обмен данными → Универсальный обмен данными в формате XML. Если пункта нет, используйте внешнюю обработку V8Exchan.epf через Файл → Открыть.
  3. Вкладка «Загрузка данных» → поле Имя файла, укажите XML с данными.
  4. Если правила встроены в файл данных, загрузятся автоматически. Если нет — на вкладке Дополнительные настройки укажите файл правил.
  5. Нажмите Загрузить.

Полезные настройки на вкладке «Дополнительные настройки»:

  • 📌 Загружать данные в режиме обмена — не проводить документы, писать быстро.
  • 📌 Использовать транзакции и количество элементов в транзакции — при больших файлах ставьте 100–500, иначе транзакция распухает и база растёт.
  • 📌 Записывать регистры наборами записей — ускоряет загрузку движений.
  • 📌 Отладка алгоритмов обработчиков — включайте только когда ищете причину ошибки.
Сопоставление полей
Поле в XML→Что ищет 1С
ИНН контрагента→Справочник «Контрагенты», поиск по ИНН+КПП
Артикул товара→Справочник «Номенклатура», поиск по артикулу
Код по ОКЕИ→Справочник «Единицы измерения»
НомерДокумента + Дата→Документ, поиск по номеру и дате в пределах организации
СтавкаНДС→Перечисление «Ставки НДС», по строковому представлению

Если сопоставление не настроено, 1С создаст новые элементы справочников вместо поиска существующих. Отсюда классика: 200 дублей контрагентов после «удачной» загрузки.

Способ 3. Как загрузить файл XML электронного документа (ЭДО)

Счёт-фактура, УПД, товарная накладная, акт от контрагента приходят именно в XML. Если оператор ЭДО подключён, документы загружаются сами. Но файл часто передают «мимо» оператора — на флешке или почтой.

Пошаговая инструкция:

  1. Перейдите в журнал ЭДО: в Бухгалтерии 3.0 — Продажи → Текущие дела ЭДО (или Покупки → Текущие дела ЭДО, журнал один и тот же). В УТ 11 — НСИ и администрирование → Обмен электронными документами → Текущие дела ЭДО.
  2. Нажмите Ещё → Загрузить электронный документ из файла. В части релизов команда называется Загрузить и вынесена на панель журнала.
  3. Выберите распакованный пакет: XML документа плюс файлы подписи, если они есть.
  4. Документ попадёт на вкладку Входящие со статусом «Требуется отразить в учёте».
  5. Откройте его и нажмите Отразить в учёте — 1С создаст документ Поступление (акт, накладная, УПД) и подставит строки.
  6. Сверьте сопоставление номенклатуры. При первой загрузке от нового поставщика 1С попросит сопоставить его наименования с вашими — это делается один раз.

Какие проводки сформируются

Пример: загрузили УПД от поставщика на партию товара 120 000 ₽, в том числе НДС 20 % — 20 000 ₽.

ОперацияДебетКредитСумма, ₽
Поступил товар на склад41.0160.01100 000
Предъявлен НДС поставщиком19.0360.0120 000
НДС принят к вычету (после регистрации счёта-фактуры)68.0219.0320 000

Если вместо товара в файле услуги, вместо 41.01 встанет затратный счёт из договора или настроек — 26, 44.01, 20.01.

После загрузки документа из XML обязательно проверьте счёт учёта и ставку НДС в строках. Поставщик передаёт свои данные, а счета подставляются по вашим настройкам номенклатуры — расхождения бывают регулярно.

Способ 4. Загрузка каталога и цен в формате CommerceML (УТ 11, ERP)

Прайс-листы, каталоги и заказы с сайта передаются файлами import.xml (номенклатура), offers.xml (цены и остатки), orders.xml (заказы). Это стандарт CommerceML, и грузится он только через механизм обмена с сайтом.

  1. Откройте НСИ и администрирование → Интеграция с другими программами → Обмен с сайтом.
  2. Включите флажок Обмен с сайтом и создайте настройку обмена.
  3. Выберите способ обмена через каталог на диске, укажите папку, куда положили файлы.
  4. Отметьте, что загружаем: товары, цены, заказы.
  5. Нажмите Выполнить обмен или дождитесь регламентного задания.

Что стоит проверить после загрузки:

  • 🔎 НСИ и администрирование → Номенклатура — не появились ли дубли с теми же наименованиями.
  • 🔎 Отчёт Цены номенклатуры — применился ли нужный вид цены.
  • 🔎 Журнал регистрации — записи обмена с текстом ошибок по строкам, которые не загрузились.

Способ 5. Отчётность, классификаторы и файлы от госорганов

Файлы ФНС, СФР и Росстата — тоже XML, но к обработкам обмена отношения не имеют.

Регламентированный отчёт. Отчёты → Регламентированные отчёты (или 1С-Отчётность) → кнопка Загрузить → Из файла. Так подтягивают декларацию, подготовленную в другой программе, чтобы отправить её из 1С.

Ответ или уведомление из ФНС/СФР. Загружается в том же журнале командой загрузки входящих документов. В ЗУП 3.1 путь: Отчётность, справки → 1С-Отчётность → вкладка входящих документов.

Адресный классификатор ФИАС. Администрирование → Интернет-поддержка и сервисы → Загрузка адресного классификатора → Загрузить адреса из каталога на диске. Выгрузки ФИАС распространяются в XML; выбирайте папку, а не отдельный файл.

Прочие классификаторы (ОКОФ, банки, курсы валют) штатно грузятся из сервиса, а не из файла. Если интернета нет — ищите в той же группе команд вариант «из файла на диске».

Типичные ошибки при загрузке XML в 1С 8.3

Почти все проблемы сводятся к пяти причинам: не тот механизм, не та кодировка, не тот релиз, не хватает прав, файл битый.

Диагностика: выберите симптом

Чем проверить результат загрузки

Загрузка «прошла без ошибок» и загрузка «прошла правильно» — разные вещи. Минимальный набор проверок:

  1. Журнал регистрации — Администрирование → Обслуживание → Журнал регистрации. Отфильтруйте по времени загрузки, смотрите записи с уровнем «Ошибка» и «Предупреждение».
  2. Оборотно-сальдовая ведомость — Отчёты → Оборотно-сальдовая ведомость за период загрузки. Сверьте итоги с источником.
  3. Экспресс-проверка учёта — Отчёты → Экспресс-проверка. Ловит документы без проводок , незакрытые счета, расхождения по НДС.
  4. Отчёт по движениям документа — открыть загруженный документ → Ещё → Движения документа. Покажет, что реально попало в регистры.
  5. Поиск дублей — Администрирование → Обслуживание → Поиск и удаление дублей по номенклатуре и контрагентам.

Запишите количество объектов до загрузки (например, число элементов справочника «Контрагенты») и сравните после. Разница должна совпадать с количеством новых записей в файле.

Когда XML загружать не нужно

Иногда задачу решают проще, и загрузка XML оказывается лишней работой:

  • 🚫 Перенос базы целиком. Используйте выгрузку в .dt: Администрирование → Выгрузить информационную базу. XML здесь не нужен.
  • 🚫 Загрузка таблицы из Excel. Для прайс-листов и остатков в XLSX есть штатная «Загрузка данных из внешнего файла»: Справочники → Номенклатура → Загрузить.
  • 🚫 Банковская выписка. Большинство банков отдают формат 1CClientBankExchange (текстовый) или работают через ДиректБанк — XML требуется редко.
  • 🚫 Регулярный обмен между своими базами. Настройте полноценную синхронизацию через EnterpriseData один раз, вместо ручной выгрузки-загрузки файлов каждую неделю.

Загрузка XML своим кодом: когда без разработчика не обойтись

Если формат самописный — например, выгрузка из складской программы со своими тегами — штатного механизма нет. Пишется обработка, которая читает файл и создаёт объекты.

Базовый шаблон чтения через ЧтениеXML и СериализаторXDTO:

ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("\\server\exchange\data.xml");

Пока ЧтениеXML.Прочитать() Цикл
    Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента
        И ЧтениеXML.Имя = "Контрагент" Тогда

        Элемент = Справочники.Контрагенты.СоздатьЭлемент();
        Элемент.Наименование = ЧтениеXML.ПолучитьАтрибут("Наименование");
        Элемент.ИНН = ЧтениеXML.ПолучитьАтрибут("ИНН");
        Элемент.Записать();

    КонецЕсли;
КонецЦикла;

ЧтениеXML.Закрыть();

Если XML создан самой 1С через ЗаписатьXML, объект читается одной строкой:

Объект = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
Объект.Записать();

Три правила, которые экономят время:

  • Перед записью ищите существующий объект по ИНН или коду, иначе получите дубли.
  • Оборачивайте загрузку в транзакцию порциями по 100–500 объектов.
  • Пишите в лог номер строки файла, на которой упала обработка, — без этого отладка большого файла превращается в угадывание.

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

Частые вопросы

Как загрузить XML-файл в 1С 8.3 через тонкий клиент?
Штатные механизмы (ЭДО, синхронизация, регламентированная отчётность) работают в тонком клиенте без ограничений. Внешнюю обработку «Выгрузка и загрузка данных XML» лучше запускать в толстом клиенте — в тонком она открывается не во всех релизах платформы.
Почему при загрузке пишет «Неверная структура файла обмена»?
Файл загружают не тем механизмом. Откройте XML в Блокноте и посмотрите корневой тег: V8Exchange — обработка выгрузки-загрузки, ФайлОбмена — универсальный обмен по правилам, Message — синхронизация EnterpriseData.
Можно ли загрузить XML из базы с другой конфигурацией?
Обработкой «Выгрузка и загрузка данных XML» — нет, она требует совпадения структуры метаданных. Для разных конфигураций нужен универсальный обмен с файлом правил, созданных в Конвертации данных.
Документы загрузились, а проводок нет — что делать?
Загрузка шла в режиме обмена данными, без проведения. Выполните Операции → Групповое перепроведение документов за период загрузки и проверьте результат оборотно-сальдовой ведомостью.
Как загрузить XML счёта-фактуры без подключённого ЭДО?
Открыть журнал Текущие дела ЭДО можно и без подключённого оператора — загрузка файла с диска доступна после включения ЭДО в настройках обмена электронными документами. Без этого придётся заводить документ вручную по данным файла.
Что делать с ошибкой кодировки при загрузке XML?
Пересохранить файл в UTF-8 без BOM так, чтобы фактическая кодировка совпадала с указанной в заголовке <?xml version="1.0" encoding="UTF-8"?>. Чаще всего проблема именно в расхождении заголовка и реального содержимого.
Как загрузить большой XML-файл, если 1С зависает?
Уменьшить количество элементов в транзакции до 100–500, разбить выгрузку на части по периодам или видам объектов, запускать загрузку в монопольном режиме на 64-разрядном сервере.