К статье
Практический материал

Справочники и Данные · 12 мин

Как загрузить XML в 1С: практическое руководство

Практическая инструкция по загрузке XML-файлов в 1С: типовые обработки, «Универсальный обмен данными», загрузка через код, типичные ошибки и проверка результата.

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

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

Ниже разобраны основные сценарии загрузки XML в типовые конфигурации 1С:Предприятие 8.3 (Управление торговлей, Бухгалтерия предприятия, Комплексная автоматизация, ERP), а также работа через «Конвертацию данных» и программную загрузку для нестандартных случаев.

Определите тип XML-файла перед загрузкой

Откройте файл в текстовом редакторе (Notepad++, VS Code) и посмотрите корневые элементы. Если в начале файла есть тег <ФайлОбмена> с атрибутами версии формата EnterpriseData или правилами конвертации — это файл обмена между базами 1С, и его можно загружать типовой обработкой. Если видите структуры вида <СФ>, <Документ> с полями ФНС — это электронный документ (счёт-фактура, УПД), который загружается через механизм ЭДО или обработку загрузки электронных документов.

XML из сторонних систем (CRM, интернет-магазины, банковские клиенты) обычно имеет собственную произвольную структуру. Такие файлы типовой обработкой не загружаются — потребуется либо специализированная обработка под конкретный источник, либо программная загрузка с сопоставлением полей. Банковские выписки чаще всего идут в формате 1CClientBankExchange (это текстовый формат, не XML) либо в XML по стандарту ISO 20022 — для них в типовых конфигурациях есть отдельная загрузка в разделе «Банк и касса».

Загрузка файла обмена 1С типовой обработкой

Если XML получен из другой базы 1С (например, выгрузка номенклатуры из УТ для загрузки в БП), используйте типовой механизм. В большинстве конфигураций на управляемых формах он доступен через раздел «Администрирование» → «Обмен данными» → «Загрузить данные». Альтернативный путь — внешняя обработка «Универсальный обмен данными в формате XML» (файл ВыгрузкаЗагрузкаДанныхXML82.epf или аналогичный из поставки конфигурации либо с диска ИТС).

Порядок работы в обработке простой: откройте вкладку «Загрузка данных», укажите путь к XML-файлу, при необходимости включите режим отладки и протоколирование ошибок, затем нажмите «Загрузить данные». Обработка прочитает правила конвертации из самого файла и создаст объекты. Если в базе уже есть объекты с совпадающими ключами поиска (GUID, код, ИНН+КПП для контрагентов), они будут обновлены, а не продублированы — при условии корректных правил поиска.

Порядок загрузки файла обмена 1С
  1. 1
    Сделайте резервную копию базы или выгрузку .dt
  2. 2
    Откройте «Администрирование — Обмен данными» или обработку «Универсальный обмен данными в формате XML»
  3. 3
    На вкладке «Загрузка данных» укажите путь к XML-файлу
  4. 4
    Включите протокол ошибок и при необходимости режим отладки
  5. 5
    Нажмите «Загрузить данные» и дождитесь завершения
  6. 6
    Проверьте протокол: число созданных и обновлённых объектов, список ошибок

Загрузка банковских выписок и документов ЭДО

Для банковских выписок в типовых конфигурациях (БП 3.0, УТ 11, КА, ERP) есть штатная загрузка: «Банк и касса» → «Выписки банка» → «Загрузить». Укажите файл, полученный из банк-клиента. Если банк выгружает XML по стандарту ISO 20022 (camt.053), современные версии конфигураций умеют читать и его; для старых версий может потребоваться обновление или конвертация файла в формат 1CClientBankExchange.

Электронные документы (УПД, счета-фактуры, накладные в XML по форматам ФНС) загружаются через подсистему «Обмен электронными документами»: «ЭДО» → «Загрузить документ из файла». Конфигурация распознает формат, создаст входящий документ и предложит сопоставить номенклатуру и контрагента с элементами ваших справочников. Сопоставление номенклатуры — ключевой этап: если пропустить его, в документах останутся незаполненные позиции.

Загрузка XML из сторонних систем

Когда XML пришёл из CRM, сайта или самописной программы, типовой загрузчик его не поймёт. Практических варианта три. Первый — найти или заказать специализированную обработку под конкретный источник: для популярных платформ (интернет-магазины, маркетплейсы) такие обработки существуют и часто идут в составе модулей интеграции. Второй — использовать «Конвертацию данных 2.1/3.0»: написать правила, которые описывают, как узлы XML превращаются в объекты 1С, и загружать через «Универсальный обмен данными».

Третий вариант — программная загрузка встроенными средствами платформы. 1С умеет читать XML объектами ЧтениеXML (потоковое чтение больших файлов) и ЧтениеXML + ПостроительDOM (загрузка всего документа в память как дерева). Для файлов, соответствующих XSD-схеме, удобен механизм XDTO: вы добавляете схему в конфигурацию как «Пакет XDTO» и читаете файл через ФабрикаXDTO.ПрочитатьXML(), получая типизированные объекты вместо ручного разбора узлов.

Пример простейшего потокового чтения XML с созданием элементов справочника:

Чтение = Новый ЧтениеXML;

Чтение.ОткрытьФайл("C:\Обмен\nomenklatura.xml");

Пока Чтение.Прочитать() Цикл

Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента

И Чтение.Имя = "Товар" Тогда

Наименование = Чтение.ПолучитьАтрибут("Наименование");

НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();

НовыйЭлемент.Наименование = Наименование;

НовыйЭлемент.Записать();

КонецЕсли;

КонецЦикла;

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

Для больших файлов (сотни тысяч строк) обязательно используйте потоковое чтение и записывайте данные порциями в транзакции — загрузка всего файла в DOM или запись каждого элемента в отдельной транзакции резко замедлят процесс и могут привести к нехватке памяти или блокировкам.

Сравнение способов загрузки XML

Типовая обработка обмена данными

Подходит для файлов обмена между базами 1С. Не требует программирования, но не читает произвольные XML из сторонних систем.

Конвертация данных

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

Программная загрузка (ЧтениеXML, XDTO)

Максимальная гибкость для разовых и нестандартных файлов. Требует навыков разработки и тестирования на копии базы.

Специализированные обработки и модули интеграции

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

Подготовка базы и контроль результата

Перед любой массовой загрузкой сделайте резервную копию: для файловой базы — выгрузку в .dt через конфигуратор, для клиент-серверной — средствами СУБД или плановым заданием. Это единственный надёжный способ откатиться, если загрузка создала тысячи некорректных объектов. Загрузку нового формата всегда сначала отрабатывайте на копии базы.

Убедитесь, что в базе заполнены обязательные связанные данные: валюты, единицы измерения, ставки НДС, организация, склады. Если файл ссылается на валюту или склад, которых нет в базе, объекты либо не создадутся, либо создадутся с пустыми реквизитами — и ошибки всплывут позже, при проведении документов и формировании отчётов.

После загрузки сверьте количество объектов с источником: число строк в XML (посчитайте вхождения ключевого тега в текстовом редакторе) должно совпадать с числом созданных/обновлённых элементов в протоколе загрузки. Выборочно откройте несколько объектов и проверьте реквизиты: суммы, даты, ставки НДС, ссылки на контрагентов.

Контрольные точки

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

Протокол обмена
Норма

Нет строк с ошибками, число загруженных объектов совпадает с ожидаемым

Тревожный признак

Ошибки преобразования, объекты пропущены, протокол пуст при ненулевом файле

Количество объектов
Норма

Совпадает с числом записей в XML

Тревожный признак

Объектов меньше — часть потеряна; больше — вероятны дубли

Ключевые реквизиты
Норма

Суммы, даты, контрагенты и номенклатура заполнены и корректны

Тревожный признак

Пустые ссылки, обнулённые суммы, даты по умолчанию (01.01.0001)

Проведение документов
Норма

Загруженные документы проводятся без ошибок

Тревожный признак

Ошибки проведения из-за незаполненных реквизитов или дублей

Типичные ошибки и их устранение

Самая частая проблема — ошибка чтения XML на этапе открытия файла: «Ошибка разбора XML». Причины: файл в кодировке, отличной от заявленной в прологе; обрезанный при передаче файл (нет закрывающего корневого тега); спецсимволы в значениях без экранирования. Откройте файл в редакторе с валидацией XML — он покажет строку с ошибкой. Файлы, выгруженные из Windows-программ, часто идут в ANSI (windows-1251), тогда как 1С по умолчанию ожидает UTF-8; пересохраните файл в нужной кодировке или укажите её при чтении.

Вторая группа — дубли справочников. Если правила поиска объектов настроены только по наименованию, а в файле и базе наименования отличаются пробелами или сокращениями, загрузка создаст дубли контрагентов и номенклатуры. Лечится настройкой правил поиска (по ИНН/КПП, по коду, по GUID) и предварительной чисткой базы. Третья группа — ошибки прав на объекты и даты запрета изменения данных: если загружаемые документы попадают в закрытый период, они не запишутся; проверьте дату запрета в разделе «Администрирование».

Типичные ошибки при загрузке XML
01
Загрузка в рабочую базу без резервной копии — при ошибке откатить тысячи созданных объектов вручную практически невозможно
02
Попытка загрузить произвольный XML типовой обработкой обмена — обработка отклонит файл или завершится с ошибкой правил
03
Игнорирование протокола ошибок — часть объектов молча пропускается, расхождения обнаруживаются при сверке через месяцы
04
Повторная загрузка того же файла без проверки — дубли документов и справочников
05
Загрузка документов в закрытый период — объекты не записываются, а пользователь считает загрузку успешной

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

Можно ли загрузить XML в 1С без программиста?

Да, если это файл обмена между базами 1С, банковская выписка или электронный документ — для них есть типовые механизмы с интерфейсом. XML произвольной структуры из сторонней системы без доработок загрузить не получится: потребуется готовая обработка под этот формат или помощь разработчика.

Почему обработка пишет «Ошибка в формате файла обмена»?

Чаще всего файл не является файлом обмена 1С (нет нужных служебных тегов) или повреждён при передаче. Откройте его в текстовом редакторе и проверьте начало: должны быть пролог <?xml ...?> и корневой элемент файла обмена. Также проверьте, что файл скачан полностью и его размер совпадает с источником.

Как загрузить очень большой XML-файл?

Используйте потоковое чтение (ЧтениеXML без построения DOM), пишите данные порциями с фиксацией транзакции и отключите в обработках лишнее протоколирование. Для файлов обмена 1С типовая обработка сама работает потоково, но на слабом сервере загрузку лучше запускать в нерабочее время.

Что делать, если после загрузки появились дубли контрагентов?

Сначала прекратите повторные загрузки. Затем используйте типовую обработку «Поиск и удаление дублей» (входит в состав конфигураций на БСП) для объединения дублей с заменой ссылок во всех документах. После чистки настройте правила поиска в правилах обмена — по ИНН и КПП вместо наименования.

Подойдёт ли инструкция для 1С 7.7?

Нет. В 1С 7.7 нет встроенных объектов ЧтениеXML и типовых обработок формата EnterpriseData; там XML разбирается через внешние компоненты (например, Microsoft XML Parser) или текстовый разбор. Материал статьи относится к платформе 1С:Предприятие 8.x.

Можно ли автоматизировать регулярную загрузку XML?

Да. Настройте регламентное задание, которое вызывает процедуру загрузки из указанного каталога, либо используйте планы обмена с расписанием для файлов обмена 1С. Обязательно добавьте логирование и уведомление об ошибках, чтобы не пропустить сбой загрузки.

Итог

Что важно запомнить

Сначала определите тип XML: файл обмена 1С грузится типовой обработкой, выписки и электронные документы — штатными механизмами разделов «Банк» и «ЭДО», произвольные файлы — через Конвертацию данных или код. Перед загрузкой сделайте копию базы, после — сверьте количество объектов и проверьте протокол ошибок. Повторная загрузка без контроля — главный источник дублей.