Справочники и Данные · 12 мин
Как открыть XML-файл в 1С: способы для пользователя и разработчика
Как открыть XML-файл в 1С: через универсальную загрузку, внешние обработки и код. Разбор ошибок, проверка результата, ответы на частые вопросы.
XML-файл в контексте 1С может быть чем угодно: выгрузкой из другой базы, электронным документом от контрагента, отчётом из банка или обменом между конфигурациями. От того, что именно находится внутри файла, зависит способ его открытия — универсального «открыть как текст» недостаточно, потому что данные нужно не просто посмотреть, а корректно загрузить в информационную базу.
Основная сложность в том, что 1С не имеет единой кнопки «Открыть XML». Платформа понимает формат, но интерпретирует содержимое только через конкретные механизмы: типовые обработки обмена, внешние обработки, встроенный язык или специализированные подсистемы вроде ЭДО. Ниже разобраны все рабочие варианты — от просмотра файла до полноценной загрузки данных.
Перед любыми действиями сделайте копию исходного XML-файла и, если планируется загрузка в рабочую базу, — резервную копию базы. Ошибочная загрузка способна создать дубли справочников, перезаписать документы или нарушить связи между объектами, и откатить это вручную бывает очень трудоёмко.
Сначала определите, что за XML перед вами
Прежде чем выбирать инструмент, откройте файл в любом текстовом редакторе (подойдёт Notepad++ или даже Блокнот) и посмотрите первые строки. Корневой элемент и структура подскажут назначение файла. Например, файлы выгрузки из 1С через универсальный обмен начинаются с элемента <ФайлОбмена>, электронные документы — со структур вида <Файл> с атрибутом ИдФайл, а выгрузки конфигурации содержат элемент <MetaDataObject>.
Также проверьте кодировку: она указана в первой строке вида <?xml version="1.0" encoding="UTF-8"?>. Если при открытии видны «кракозябры» вместо кириллицы, файл, скорее всего, в кодировке windows-1251, а редактор открыл его как UTF-8. Это не повреждение данных — просто переключите кодировку отображения.
Загружается обработкой «Универсальный обмен данными в формате XML»
Открывается через подсистему ЭДО или обработку загрузки документов
Загружается через конфигуратор, а не пользовательский режим
Используется типовой план обмена и настройка синхронизации
Как просто посмотреть содержимое XML без загрузки
Если задача — только ознакомиться с содержимым, 1С вообще не обязательна. Файл открывается двойным щелчком в браузере: он покажет древовидную структуру с возможностью сворачивать узлы. Notepad++ дополнительно подсветит синтаксис и позволит проверить корректность XML через плагин XML Tools.
Браузер при ошибке в структуре файла покажет сообщение вида «error on line X»: незакрытый тег, недопустимый символ или битый фрагмент. Это удобный способ быстро проверить, не повреждён ли файл при передаче. Если браузер не смог отобразить документ, загружать его в 1С бессмысленно — сначала нужно получить целостную копию у отправителя.
Для больших файлов (сотни мегабайт) браузеры и редакторы могут зависать. В этом случае смотрите только начало файла, чтобы определить тип, а полный разбор выполняйте уже средствами платформы.
Загрузка через «Универсальный обмен данными в формате XML»
Это самый частый сценарий: файл получен выгрузкой из другой базы 1С и его нужно загрузить к вам. Типовая обработка «Универсальный обмен данными в формате XML» (файл обычно называется УниверсальныйОбменДаннымиXML.epf) входит в поставку многих конфигураций или находится в шаблонах обновлений, а также её часто можно открыть через меню «Файл → Открыть» в режиме «1С:Предприятие».
- 1Сделайте архивную копию информационной базы через конфигуратор или средствами СУБД
- 2Откройте базу в режиме «1С:Предприятие» под пользователем с полными правами
- 3Через «Файл → Открыть» выберите файл обработки УниверсальныйОбменДаннымиXML.epf
- 4Перейдите на вкладку «Загрузка данных» и укажите путь к XML-файлу
- 5Проверьте настройки: режим отладки, флаги оптимизации — для первого раза оставьте значения по умолчанию
- 6Нажмите «Загрузить данные» и дождитесь завершения
- 7Изучите протокол загрузки: количество загруженных объектов и список ошибок
Важный нюанс: универсальный обмен работает по правилам конвертации, которые формировались на стороне выгрузки. Если файл выгружен из конфигурации, структура которой отличается от вашей (например, из «Управления торговлей» в «Бухгалтерию»), простая загрузка не сработает корректно — нужны согласованные правила обмена или типовая синхронизация между этими конфигурациями.
После загрузки обязательно сверьте результат: откройте несколько документов или элементов справочников из файла и сравните их с исходными данными. Обращайте внимание на дубли контрагентов и номенклатуры — они появляются, если поиск объектов шёл не по тому полю.
Открытие электронных документов (УПД, накладные, счета-фактуры)
Если XML — это электронный документ от контрагента, его не «загружают» вручную через универсальный обмен. В типовых конфигурациях («Бухгалтерия предприятия», «Управление торговлей», «Комплексная автоматизация») есть подсистема обмена электронными документами. Документ добавляется через раздел «ЭДО» или «Покупки/Продажи → Электронные документы» с помощью команды загрузки из файла.
После загрузки 1С распарсит XML и покажет документ в привычном виде: табличная часть, суммы, реквизиты сторон. На этом этапе данные ещё не проведены в учёте — вы просматриваете содержимое и принимаете решение: создать на его основе поступление, отклонить или запросить уточнение у отправителя.
Открытие XML программно: для разработчика
Когда типовые инструменты не подходят — нестандартная структура файла, выборочная загрузка, интеграция по расписанию — XML читается средствами встроенного языка. Платформа предоставляет объекты ЧтениеXML для потокового разбора и ФабрикаXDTO для работы через модель типов.
Минимальный пример последовательного чтения файла:
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл("C:\Обмен\data.xml");
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ИмяУзла = Чтение.Имя;
// обработка узла
КонецЕсли;
КонецЦикла;
Чтение.Закрыть();Потоковое чтение через ЧтениеXML не загружает весь файл в память, поэтому подходит для больших выгрузок. Если же файл соответствует известной схеме (например, формат ФНС или EnterpriseData), удобнее ФабрикаXDTO — она превращает XML в типизированные объекты и сама контролирует структуру.
Для разовой загрузки справочной информации из простого XML также существуют внешние обработки-загрузчики, которые сопоставляют узлы файла полям справочника. Перед использованием сторонней обработки проверьте её на копии базы: обработки с полными правами могут перезаписывать данные без предупреждения.
Типичные ошибки и как их исправить
Большинство проблем при открытии XML в 1С сводится к нескольким повторяющимся ситуациям. Разбор каждой экономит часы поиска причины.
Отдельно стоит ситуация, когда загрузка «зависает» на большом файле. Чаще всего это не зависание, а длительная транзакция: платформа обрабатывает десятки тысяч объектов. Признак нормы — растущий счётчик в строке состояния и нагрузка на диск. Если же процесс не двигается длительное время и протокол пуст, прервите операцию, включите режим отладки в обработке и загрузите файл частями.
Как проверить результат загрузки
Есть число загруженных объектов, ошибок нет или они объяснимы
Ошибки записи, пустой протокол при ненулевом файле
Итоги по документам в базе совпадают с итогами в файле
Суммы расходятся, часть документов отсутствует
Контрагенты и номенклатура сопоставились с существующими
Появились дубли с похожими наименованиями
Загруженные документы проводятся без ошибок
Документы не проводятся из-за пустых реквизитов
Как выбрать способ под вашу задачу
Выбор инструмента определяется двумя факторами: типом содержимого файла и тем, что нужно сделать с данными — посмотреть или записать в базу. Ниже краткий маршрут принятия решения.
Как выбрать действие
Если сомневаетесь в выборе, начните с безопасного варианта: откройте файл для просмотра, определите его тип и только потом переходите к загрузке. Любую загрузку в первый раз выполняйте на копии базы — это стандартная практика, которая страхует от необратимых изменений.
Что важно запомнить
Сначала определите тип XML по корневому элементу, затем выбирайте инструмент: просмотр — в браузере, обмен между базами — универсальная обработка, документы контрагентов — ЭДО, нестандартные задачи — код на встроенном языке. Перед любой загрузкой делайте резервную копию и проверяйте результат по протоколу и контрольным суммам.
Частые вопросы
Можно ли открыть XML в 1С без конфигуратора?
Да. Просмотр файла вообще не требует 1С — достаточно браузера или текстового редактора. Загрузка данных выполняется в режиме «1С:Предприятие» через внешние обработки или типовые механизмы обмена. Конфигуратор нужен только для загрузки выгрузок конфигурации и для разработки собственных обработок.
Чем отличается выгрузка в XML из 1С от обычного XML-документа?
Выгрузка универсального обмена содержит служебную структуру «ФайлОбмена» со ссылками на правила конвертации и типы объектов конфигурации. Такой файл осмысленно загружается только обработкой универсального обмена в базу с совместимой структурой метаданных. Обычный XML-документ (накладная, отчёт) имеет самостоятельную схему и читается независимыми средствами.
Файл открывается, но вместо текста иероглифы — он испорчен?
Скорее всего, нет. Это несовпадение кодировки: файл сохранён в windows-1251, а программа открыла его как UTF-8, или наоборот. Посмотрите атрибут encoding в первой строке файла и откройте его с принудительным указанием этой кодировки. В 1С кодировка задаётся параметром при открытии файла для чтения.
Как загрузить XML размером несколько гигабайт?
Загружайте потоковым чтением через ЧтениеXML, не помещая файл в память целиком. В универсальной обработке уменьшите объём транзакции или разбейте файл на части по узлам верхнего уровня. Также убедитесь, что на диске с временными файлами сервера достаточно свободного места.
Загрузились дубли контрагентов — что делать?
Сначала не удаляйте ничего вручную. Определите, по какому полю шёл поиск при загрузке (наименование вместо ИНН — частая причина). Затем используйте типовую обработку поиска и удаления дублей, которая заменит ссылки на дубли ссылками на основной элемент во всех документах. После этого исправьте правила обмена, чтобы ситуация не повторилась.
Можно ли открыть XML из 1С в Excel?
Да, Excel умеет открывать XML и предложит преобразовать его в таблицу. Это удобно для анализа плоских структур вроде списков товаров. Однако для иерархических выгрузок 1С с вложенными узлами табличное представление будет неполным — такие файлы лучше разбирать средствами платформы.