Администрирование · 10 мин
Как загрузить документ в 1С 8.3 из XML-файла
Как загрузить документ в 1С 8.3 из XML-файла: через универсальный обмен, обработку «Универсальный обмен данными» и типовые механизмы. Ошибки и проверка результата.
Загрузка документа из XML — одна из самых частых задач при переносе данных между базами 1С, при получении первички от контрагентов в электронном виде и при миграции из старых программ. Платформа 1С 8.3 поддерживает несколько форматов XML-обмена, и выбор инструмента зависит от того, каким способом файл был создан.
Главный вопрос перед началом работы — откуда взялся XML-файл. Если он выгружен из другой базы 1С обработкой «Универсальный обмен данными», то и загружать его нужно той же обработкой с теми же правилами обмена. Если файл получен из сторонней системы (сайт, ЭДО, банк-клиент), потребуется типовой механизм обмена конфигурации или отдельная обработка под конкретный формат.
Перед любой загрузкой в рабочую базу сделайте резервную копию или хотя бы проверьте загрузку на копии базы. Ошибка в правилах конвертации может создать тысячи дублей контрагентов и номенклатуры, а откатить такие изменения вручную — долгая и трудоёмкая работа.
Как определить формат XML-файла перед загрузкой
Откройте XML-файл в любом текстовом редакторе или браузере и посмотрите первые строки. Корневой элемент и пространства имён подскажут, каким механизмом файл был сформирован и как его правильно загрузить.
Типовой формат обмена 1С — загружается через встроенный механизм синхронизации данных
Файл для обработки «Универсальный обмен данными в формате XML»
Обмен с сайтами и торговыми системами, типовая загрузка в УТ и «Управление торговлей»
Электронный документооборот — загрузка через модуль ЭДО конфигурации
Если файл открывается, но структура не похожа ни на один из перечисленных вариантов, скорее всего, это произвольный XML из сторонней системы. Такой файл напрямую в 1С не загрузить — понадобится либо готовая обработка под этот формат, либо разработка собственной загрузки через ЧтениеXML или XDTO.
Загрузка через обработку «Универсальный обмен данными в формате XML»
Это самый распространённый способ переноса документов между базами 1С. Обработка входит в комплект поставки большинства типовых конфигураций, а также доступна в составе конфигурации «Конвертация данных». В управляемых формах её обычно можно найти через раздел «Администрирование» или открыть как внешнюю обработку через меню «Файл → Открыть».
- 1Откройте обработку «Универсальный обмен данными в формате XML» в базе-приёмнике
- 2Перейдите на закладку «Загрузка данных»
- 3Укажите путь к XML-файлу в поле «Имя файла для загрузки»
- 4Проверьте флаги: «Использовать транзакции» и «Режим отладки» при первой загрузке лучше включить
- 5Нажмите «Загрузить данные» и дождитесь окончания
- 6Проанализируйте протокол: количество загруженных объектов и список ошибок
При загрузке документов обратите внимание на флаг «Объекты загружаются с проведением» или аналогичный параметр в правилах. Если документы загружаются в режиме «запись без проведения», после загрузки их нужно будет провести — вручную или групповой обработкой проведения документов.
Критически важно, чтобы правила конвертации, с которыми выгружался файл, соответствовали конфигурации приёмника. Файл, выгруженный из «Управления торговлей 11», нельзя корректно загрузить в «Бухгалтерию предприятия» без специальных правил обмена между этими конфигурациями.
Загрузка через типовую синхронизацию данных (EnterpriseData)
Современные типовые конфигурации 1С (БП 3.0, УТ 11, ERP, ЗУП) используют формат EnterpriseData для обмена между собой. Если XML-файл получен из другой типовой базы через план обмена «Синхронизация данных», загружать его нужно не универсальной обработкой, а штатным механизмом синхронизации.
Порядок действий: откройте раздел «Администрирование → Синхронизация данных», создайте или откройте настройку синхронизации с нужной программой и выполните команду загрузки из файла. В некоторых конфигурациях есть отдельный пункт «Загрузить данные из файла» в форме настройки синхронизации.
Преимущество этого способа — встроенное сопоставление объектов. Перед окончательной записью система покажет, какие контрагенты и номенклатура будут сопоставлены с существующими, а какие созданы новыми. Обязательно просмотрите этот список: автоматическое сопоставление по ИНН и наименованию иногда ошибается.
Загрузка электронных документов из ЭДО
Если XML-файл — это электронный УПД, счёт-фактура или акт от оператора ЭДО, загружать его нужно через подсистему «Обмен электронными документами» в вашей конфигурации. В БП 3.0 и УТ 11 она встроена, для старых конфигураций может потребоваться внешний модуль ЭДО.
Типовой путь: раздел «Покупки» (или «Продажи») → «Электронные документы» → команда загрузки из файла. Система проверит подпись, если она прилагается, распознает формат (ФНС, CII и другие) и создаст документ поступления или реализации с заполненными табличными частями.
Загрузка произвольного XML через внешние обработки
Когда файл получен из нестандартного источника — сайта, CRM, самописной учётной системы — типовые механизмы не помогут. Существует три рабочих варианта.
Варианты загрузки нестандартного XML
Подходит, если формат распространён (CommerceML, YML, выписки банков). Ограничение: обработка должна соответствовать версии вашей конфигурации
Позволяет написать правила загрузки без изменения конфигурации. Требует навыков работы с КД и времени на отладку правил
Максимальная гибкость через ЧтениеXML или XDTO-фабрики. Нужен разработчик, но это единственный путь для сложных или меняющихся форматов
Для разовой загрузки простого файла часто достаточно небольшой обработки, которая читает XML через объект ЧтениеXML и создаёт документы программно. Ниже пример скелета такого кода.
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ИмяФайла);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента
И Чтение.Имя = "Документ" Тогда
НовыйДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
// чтение атрибутов и заполнение реквизитов
НовыйДок.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецЦикла;
Чтение.Закрыть();При программной загрузке всегда заполняйте обязательные реквизиты документа (организация, валюта, дата) и проверяйте существование элементов справочников перед записью ссылки. Запись документа с пустым обязательным реквизитом приведёт к ошибке или к «битым» данным.
Проверка результата и типичные ошибки
После загрузки не ограничивайтесь сообщением «Загрузка завершена». Откройте несколько загруженных документов и сверьте ключевые суммы и количества с исходной системой или с контрольным отчётом.
Как проверить результат загрузки
Совпадает с количеством в источнике или в протоколе загрузки
Документов меньше — часть отклонена с ошибками, смотрите протокол
Совпадают с исходными данными до копейки
Расхождения — неверное сопоставление единиц измерения или валюты
Ссылки ведут на существующие элементы, дублей нет
Созданы дубли по наименованию или появились «битые» ссылки
Документы проведены и формируют движения
Документы записаны, но не проведены — отчёты их не видят
Отдельная частая проблема — кодировка файла. 1С корректно читает UTF-8 и UTF-16, но если файл сохранён в ANSI или содержит некорректный BOM, наименования контрагентов и товаров могут исказиться. При подозрении на проблему кодировки откройте файл в редакторе и пересохраните его в UTF-8.
Что важно запомнить
Способ загрузки определяется форматом XML: универсальная обработка — для файлов конвертации данных, синхронизация — для EnterpriseData, модуль ЭДО — для электронных документов. Всегда делайте копию базы, загружайте с протоколом и сверяйте результат по суммам и количеству документов.
Частые вопросы
Можно ли загрузить XML из 1С 7.7 в 1С 8.3?
Да, но не напрямую. Для переноса используются правила конвертации: из 7.7 данные выгружаются специальной обработкой в XML, затем загружаются в 8.3 через «Универсальный обмен данными». Для типовых переходов (например, из «Торговля и склад 7.7» в УТ 11) существуют готовые правила переноса.
Почему документы загрузились, но не видны в отчётах?
Чаще всего документы записаны без проведения. Откройте журнал документов, отфильтруйте непроведённые и проведите их вручную или через обработку «Групповое проведение документов». Также проверьте, что даты документов попадают в период отчёта и указана нужная организация.
Что делать, если при загрузке возникает ошибка «Ошибка формата потока»?
Файл повреждён, обрезан при передаче или это вовсе не XML. Проверьте, что файл открывается в браузере без ошибок и заканчивается закрывающим корневым тегом. Если файл передавался по почте или через мессенджер, запросите его повторно, желательно в архиве.
Как загрузить несколько XML-файлов сразу?
Универсальная обработка работает с одним файлом за раз, но файлы можно объединить или загружать последовательно. Механизм синхронизации данных и модуль ЭДО умеют загружать пакеты из каталога. Для регулярной массовой загрузки имеет смысл настроить регламентное задание или написать обработку пакетной загрузки.
Будут ли дубли контрагентов при повторной загрузке того же файла?
Если загрузка идёт с поиском по уникальному идентификатору (стандарт для обмена между одинаковыми конфигурациями) — нет, объекты обновятся. Если поиск настроен по реквизитам (ИНН, наименование), дубли возможны при малейших расхождениях в написании. Перед повторной загрузкой проверьте настройки поиска в правилах обмена.
Можно ли загрузить XML в файловую базу без режима «Конфигуратор»?
Да, все описанные способы — универсальная обработка, синхронизация, ЭДО — работают в режиме «Предприятие» и не требуют монопольного доступа или изменения конфигурации. Внешние обработки открываются через «Файл → Открыть», если у пользователя есть соответствующие права.