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