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

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

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

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

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

Главный риск при загрузке XML — повреждение данных: дубли справочников, перезапись существующих документов, «битые» ссылки, когда документ ссылается на несуществующий контрагент. Поэтому любая загрузка начинается с резервной копии базы и тестового прогона на копии, а не с работы в боевой базе.

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

Как определить, каким способом загружать ваш XML-файл

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

Если файл начинается с элемента _1CV8DtUD или содержит типовые узлы выгрузки — это файл универсального обмена, и его загружают обработкой «Выгрузка и загрузка данных XML». Если внутри видны правила конвертации и блоки ПравилаОбмена — файл подготовлен под конвертацию данных. Выгрузки из сторонних программ (банковские выписки, каталоги поставщиков, CommerceML) обычно имеют собственную структуру и требуют либо профильной обработки загрузки, либо программного разбора.

Маршрут решения

Как выбрать способ загрузки

Файл выгружен из 1С этой же конфигурации той же версииИспользуйте обработку «Выгрузка и загрузка данных XML»
Обмен идёт между разными конфигурациями (например, УТ и БП)Настройте обмен через «Конвертацию данных» или типовой план обмена
XML пришёл из банка, сайта или сторонней системыИщите профильную обработку загрузки или пишите программный разбор через ЧтениеXML
Нужен регулярный автоматический обмен между базами 1СНастройте план обмена с расписанием

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

Загрузка через типовую обработку «Выгрузка и загрузка данных XML»

Это самый распространённый способ переноса данных между базами с одинаковой конфигурацией: например, при переносе справочников из рабочей базы в тестовую или при консолидации данных филиалов. Обработка входит в поставку большинства типовых конфигураций и доступна на диске ИТС, также её нередко включают в раздел «Администрирование».

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

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

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

Загрузка XML через «Конвертацию данных»

Когда данные переносятся между разными конфигурациями — например, из «Управления торговлей» в «Бухгалтерию предприятия» или из самописной конфигурации в типовую — структуры объектов не совпадают, и универсальная обработка не подходит. Здесь используется механизм конвертации данных: файл с правилами обмена описывает, как объект источника преобразуется в объект приёмника.

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

Настройка отбора и сопоставления

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

Если обмен регулярный, настройте расписание и автоматическую загрузку, чтобы не выполнять операцию вручную. Для разового переноса достаточно ручного запуска с последующей сверкой.

Обмен XML через планы обмена

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

Загрузка сообщения обмена выполняется в разделе настройки синхронизации данных: программа читает XML-файл сообщения, применяет изменения и формирует квитанцию о приёме. Если синхронизация настроена через каталог, FTP или электронную почту, обмен может проходить полностью автоматически по расписанию.

Разрешение коллизий

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

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

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

XML-файлы из банковских систем, сайтов, поставщиков и государственных сервисов имеют собственную структуру, которую типовые обработки не понимают. Такие файлы загружают либо профильными обработками (например, загрузка банковских выписок в формате 1CClientBankExchange, хотя это не всегда чистый XML), либо программно на встроенном языке через объект ЧтениеXML.

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

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

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

Перед написанием собственной загрузки изучите схему XML: если у поставщика файла есть XSD-схема, её можно подключить через фабрику XDTO и разбирать файл типизированно — это надёжнее ручного обхода узлов и упрощает диагностику ошибок структуры.
ПЗ
Практическое замечание

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

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

Для документов дополнительно проверьте проведение: если документы загрузились непроведёнными, хотя в источнике были проведены, чаще всего причина в незаполненных обязательных реквизитах или в том, что загрузка выполнялась в режиме «запись» без проведения. Проведите документы групповой обработкой и проанализируйте отказы.

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

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

Количество объектов по видам данных
Норма

Совпадает с количеством в источнике

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

Расхождения без объяснимой причины (отборы, фильтры)

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

Все поля контрагентов, договоров, номенклатуры заполнены

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

Пустые поля или значения вида «Объект не найден»

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

Документы проведены, движения сформированы

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

Масса непроведённых документов с ошибками проведения

Итоги и остатки
Норма

Остатки по регистрам сходятся с источником

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

Расхождения в остатках после переноса

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

Ограничения и меры безопасности

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

Права на загрузку должны быть только у администраторов или ответственных за обмен: универсальные обработки позволяют записывать любые данные мимо прикладных проверок, и случайный запуск неподготовленным пользователем способен испортить базу. В клиент-серверном варианте ограничьте доступ к обработкам настройкой ролей.

Итог

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

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

FAQ: частые вопросы о загрузке XML в 1С

Можно ли загрузить XML, выгруженный из другой конфигурации 1С?

Напрямую универсальной обработкой — нет, если структуры метаданных различаются. Используйте конвертацию данных с правилами обмена для вашей пары конфигураций или типовой план обмена, если он предусмотрен для этих продуктов.

Что делать, если при загрузке появляется ошибка «Ошибка формата потока»?

Чаще всего файл повреждён при передаче, обрезан или сохранён в другой кодировке. Запросите файл заново, проверьте, что он открывается в браузере или редакторе как корректный XML, и не редактируйте его вручную перед загрузкой.

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

Потому что поиск объектов выполнялся только по внутреннему идентификатору, который в разных базах различен. Настройте поиск по реквизитам (ИНН + КПП, наименование) в правилах обмена, а существующие дубли устраните обработкой поиска и удаления дублей.

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

Да. Для планов обмена автоматическая синхронизация настраивается штатно. Для произвольных файлов создают регламентное задание, которое вызывает процедуру загрузки из указанного каталога; в файловой базе регламентные задания требуют запущенного сеанса-исполнителя.

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

Универсальная обработка обычно записывает объекты по одному без общей транзакции, поэтому часть данных останется в базе. Повторная загрузка того же файла обычно корректна, так как объекты ищутся по идентификаторам, но перед повтором сверьте, что записалось, и не запускайте параллельно две загрузки одного файла.

Чем отличается выгрузка в XML от выгрузки информационной базы в dt?

Файл dt — это полный снимок всей базы целиком, который разворачивается только как новая база. XML-обмен переносит выбранные данные в существующую базу, сохраняя её текущее содержимое. Для переноса отдельных справочников и документов используется именно XML.