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

Администрирование · 10 мин

Как загрузить XML-файл в 1С 8.3

Практические способы загрузки XML в 1С 8.3: типовые обработки, универсальный обмен данными, загрузка номенклатуры и контрагентов, типичные ошибки и их решение.

Загрузка XML-файлов в 1С 8.3 — рутинная задача: так переносят номенклатуру от поставщиков, контрагентов, банковские выписки, данные между базами и документы из внешних систем. Способ загрузки зависит от того, что именно содержит файл: структура «Коммерческая информация» (CommerceML), файл выгрузки из другой базы 1С, банковская выписка или произвольный XML, под который нужна своя обработка.

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

Ниже разобраны рабочие сценарии: от простой загрузки номенклатуры из прайса поставщика до универсального обмена данными между базами и программного чтения XML через встроенный язык.

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

Откройте файл в любом текстовом редакторе (Notepad++, Блокнот) и посмотрите первые строки. Корневой элемент подскажет формат: <КоммерческаяИнформация> — это CommerceML (прайсы, каталоги, заказы с сайтов), <ФайлОбмена> или признаки правил КД — выгрузка из другой базы 1С, <СчетаПК> или <1CClientBankExchange> — банковская выписка (хотя выписки чаще в текстовом формате).

Если файл получен от поставщика или контрагента, уточните, из какой системы он выгружен. Многие «XML-прайсы» на деле имеют произвольную структуру, которую типовая 1С не поймёт без доработки. В этом случае потребуется либо внешняя обработка, либо предварительное преобразование файла.

Корневой элемент КоммерческаяИнформацияCommerceML

Подходит для типовой загрузки номенклатуры и заказов

Упоминание правил обмена и ПКОВыгрузка КД 2.0

Загружается через Универсальный обмен данными XML

Произвольные теги без стандартной схемыНестандартный XML

Нужна внешняя обработка или программная загрузка

Загрузка номенклатуры и цен из XML поставщика

В типовых конфигурациях «Управление торговлей 11», «Комплексная автоматизация 2» и «ERP» есть встроенный механизм загрузки данных от поставщиков. Путь: раздел «Закупки» → «Сервис» → «Загрузка данных от поставщиков» (в разных версиях название может отличаться — «Загрузка цен поставщика», «Регистрация поставщиков»).

Порядок действий: укажите файл, выберите поставщика, сопоставьте колонки или элементы XML с реквизитами номенклатуры (наименование, артикул, цена, штрихкод), задайте режим — создавать новые позиции или обновлять существующие. После сопоставления запустите загрузку и проверьте протокол: система покажет, сколько позиций создано, обновлено и отклонено.

Если файл в формате CommerceML (например, выгрузка каталога с сайта на «1С-Битрикс»), используйте типовой обмен с сайтом: «Администрирование» → «Обмен с сайтами» или обработку импорта каталога. Там загрузка выполняется по стандартной схеме без ручного сопоставления полей.

Загрузка контрагентов и справочников

Для контрагентов в типовых конфигурациях («Бухгалтерия предприятия 3.0», «Управление торговлей») есть механизм загрузки из файлов, но чаще он ориентирован на Excel/CSV. Если данные пришли именно в XML, проверьте, нет ли в конфигурации обработки «Загрузка данных из файла» в карточке справочника — некоторые версии понимают и XML-структуры.

Альтернатива — конвертировать XML в табличный формат (например, открыть в Excel, если структура плоская) и загрузить штатным механизмом «Загрузка данных из файла», доступным в списке справочника по кнопке «Ещё». Это часто быстрее, чем искать или писать обработку под конкретный XML.

Универсальный обмен данными XML между базами 1С

Если файл — это выгрузка из другой базы 1С (перенос остатков, документов, справочников), используется обработка «Универсальный обмен данными в формате XML». Она входит в комплект поставки «Конвертации данных 2.1» и часто встроена в типовые конфигурации.

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

Важный нюанс: файл выгрузки и база-приёмник должны соответствовать одним правилам обмена. Если файл выгружен из «Бухгалтерии 3.0», а загружаете в «Управление торговлей» без согласованных правил конвертации, данные либо не загрузятся, либо попадут не в те объекты. Правила обмена (XML-файл правил) должны совпадать на стороне выгрузки и загрузки.

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

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

Выписки из клиент-банка в 1С обычно приходят в текстовом формате, но часть банков отдаёт XML. В «Бухгалтерии 3.0» загрузка выполняется из журнала «Банковские выписки»: кнопка «Загрузить» → указать файл. Конфигурация сама определяет формат по содержимому, если он входит в список поддерживаемых.

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

Нестандартный XML: внешние обработки и программная загрузка

Когда файл имеет произвольную структуру, типовые механизмы бессильны. Практических варианта два: найти готовую внешнюю обработку (EPF) под вашу задачу или написать загрузку программно. Во встроенном языке 1С для этого есть объекты ЧтениеXML и ФабрикаXDTO.

Последовательное чтение через ЧтениеXML подходит для больших файлов — документ обрабатывается потоково, без загрузки целиком в память. Фабрика XDTO удобнее, когда есть схема (XSD) и нужно обращаться к данным как к объектам. Для разовой загрузки проще написать обработку с построчным разбором узлов и созданием элементов справочника или документов.

bsl
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл("C:\Данные\import.xml");
Пока Чтение.Прочитать() Цикл
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента
       И Чтение.Имя = "Товар" Тогда
        // чтение атрибутов и создание элемента справочника
    КонецЕсли;
КонецЦикла;
Чтение.Закрыть();

При самостоятельной разработке предусмотрите транзакционность: оборачивайте создание объектов в транзакцию или хотя бы ведите журнал загруженных элементов, чтобы при сбое понимать, где остановилась загрузка. Также проверяйте дубли по ключевым полям (ИНН, артикул, штрихкод) перед созданием новых элементов.

Проверка результата и типичные ошибки

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

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

Если загрузка зависает на больших файлах, проверьте, не выполняется ли при записи каждого объекта тяжёлая бизнес-логика (проверки, пересчёты). В обмене данными есть режим «Загрузка в режиме обмена данными», который отключает часть проверок, — но применять его стоит только при доверенном источнике файла.

Итог

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

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

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

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

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

Почему 1С выдаёт ошибку «Ошибка разбора XML» при загрузке?

Чаще всего файл повреждён при передаче, имеет недопустимые символы, неверную кодировку или незакрытые теги. Откройте файл в редакторе, проверьте, что он начинается с корректного объявления XML, пересохраните в UTF-8. Если файл формирует внешняя система — запросите его повторно.

Как загрузить XML-прайс, если поставщик прислал нестандартную структуру?

Попробуйте открыть файл в Excel — плоские структуры часто преобразуются в таблицу, которую можно сохранить как CSV и загрузить штатной обработкой «Загрузка данных из файла». Если структура иерархическая, потребуется внешняя обработка или настройка преобразования.

Чем отличается загрузка через «Универсальный обмен данными» от обычной выгрузки-загрузки конфигурации?

Выгрузка конфигурации (DT) переносит базу целиком, включая настройки. Универсальный обмен переносит только данные — справочники, документы, остатки — по заданным правилам и между разными конфигурациями. Для переноса данных между разными учётными системами подходит только второй вариант.

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

Используйте типовую обработку «Поиск и удаление дублей» (раздел «Администрирование» → «Обслуживание»). Она находит дубли по наименованию, ИНН, артикулу и заменяет ссылки в документах на основной элемент. Перед запуском также сделайте копию базы.

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

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