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

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

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

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

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

Выбор способа зависит от того, что находится внутри файла и какая у вас конфигурация. Типовые решения (1С:Бухгалтерия, Управление торговлей, ЗУП) уже содержат встроенные механизмы загрузки для стандартных форматов — например, для электронных документов или выгрузок из других программ. Для нестандартных файлов потребуется универсальная обработка или доработка.

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

Определите, что за XML у вас в руках

Прежде чем загружать файл, откройте его в текстовом редакторе или браузере и посмотрите на структуру. От этого зависит весь дальнейший путь. XML с электронной накладной (УПД, счёт-фактура в формате ФНС) загружается одним инструментом, выгрузка из другой базы 1С — другим, а произвольный файл от сторонней системы — третьим.

Обратите внимание на корневой элемент и пространства имён в начале файла. Для документов ЭДО там обычно указан формат и версия, например «Файл» с атрибутом «ИдФайл». Для выгрузок 1С характерен корневой элемент «_1CV8DtUD» или подобный. Если структура незнакомая — вероятно, это произвольный формат, и потребуется сопоставление полей вручную.

Загрузка через типовые механизмы конфигурации

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

Для выгрузок из других баз 1С (например, при переезде между конфигурациями) используются типовые обработки «Универсальный обмен данными в формате XML» или «Выгрузка и загрузка данных XML». Вторая особенно удобна для переноса данных между идентичными конфигурациями: она выгружает объекты вместе со ссылками, и при загрузке связи восстанавливаются автоматически.

Типовые механизмы проверяют формат файла перед загрузкой и сообщают об ошибках, если структура не соответствует ожидаемой. Это снижает риск испортить данные в базе, поэтому начинать всегда стоит с них.

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

Универсальные обработки для нестандартных файлов

Если XML пришёл от сторонней системы и типовой инструмент его не принимает, используются универсальные обработки. Наиболее известная — «Универсальный обмен данными в формате XML» совместно с «Конвертацией данных»: в конфигураторе «Конвертация данных» создаются правила, описывающие, какие элементы XML в какие объекты 1С превращать, а затем обработка выполняет загрузку по этим правилам.

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

Способы добавить XML в 1С

Типовые механизмы конфигурации

Подходят для стандартных форматов (ЭДО, выгрузки 1С). Безопасны, есть проверка формата. Не работают с произвольными файлами.

Конвертация данных + универсальная обработка

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

Программное чтение (ЧтениеXML)

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

Программное чтение XML встроенным языком

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

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

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

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

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

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

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

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

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

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

Совпадает с числом элементов в файле

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

Часть записей отсутствует без сообщений об ошибках

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

Значения совпадают с исходным файлом

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

Сдвиг дат, потерянные копейки, пустые суммы

Связанные объекты
Норма

Контрагенты и номенклатура найдены, а не продублированы

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

Появились дубли справочников с похожими наименованиями

Риски и когда лучше привлечь специалиста

Загрузка данных изменяет информационную базу, и откатить её бывает сложно. Перед любой загрузкой в рабочую базу сделайте резервную копию или хотя бы выгрузку DT. Если база файловая — достаточно скопировать файл 1Cv8.1CD; если клиент-серверная — используйте штатные средства СУБД или выгрузку через конфигуратор.

Обязательно сначала выполните пробную загрузку на копии базы. Особенно это критично для самописных обработок и новых правил конвертации: ошибка в логике поиска объектов может массово перезаписать существующие элементы справочников.

Если XML приходит регулярно (ежедневный обмен с сайтом, поставщиками, банком), разовые ручные загрузки — признак того, что нужна автоматизация. В таких случаях настраивают регламентные задания, планы обмена или подключают типовые механизмы интеграции, и это уже задача для специалиста по 1С.

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

Проблемы с кодировкой и форматом файла

Частая причина неудачной загрузки — несоответствие кодировки. XML-файлы создаются в UTF-8, UTF-16 или windows-1251, и кодировка указывается в первой строке файла в атрибуте encoding. Если 1С читает файл не в той кодировке, русские буквы искажаются. Большинство типовых механизмов определяют кодировку автоматически, но при программном чтении её можно задать явно при открытии файла.

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

FAQ

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

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

Чем отличается загрузка XML от выгрузки в 1С?

Это зеркальные операции одного обмена. Выгрузка сериализует объекты базы в XML-файл, загрузка читает файл и создаёт или обновляет объекты. Обработка «Выгрузка и загрузка данных XML» выполняет обе функции на разных вкладках, и файл, созданный ею на выгрузке, корректно читается ею же при загрузке.

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

Обработка не нашла существующие элементы и создала новые. Причины: поиск выполнялся по наименованию, а оно отличается пробелом или регистром; либо поиск по ИНН/КПП не был включён. Дубли объединяют обработкой «Поиск и удаление дублей», после чего настраивают правильные ключи поиска и загружают повторно корректно.

Что делать, если 1С выдаёт ошибку «не поддерживается формат файла»?

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

Как загрузить большой XML-файл, если 1С зависает?

Большие файлы читайте последовательно через ЧтениеXML, а не загружайте целиком в память через DOM-модель. Фиксируйте транзакцию порциями, например каждые несколько сотен объектов, и выполняйте загрузку в фоновом задании. На клиент-серверной базе запускайте обработку на сервере, чтобы исключить передачу файла по сети.

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

Штатной кнопки «отменить загрузку» нет. Если транзакция не использовалась и данные записаны, варианты такие: восстановить базу из резервной копии, удалить созданные объекты по отбору (если они помечены или легко отбираются по дате создания) либо исправить последствия вручную. Именно поэтому копия базы перед загрузкой — обязательный шаг.

Итог

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

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