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

Документы и Печать · 11 мин

Как в 1С выгрузить реализацию в XML

Разбираем, как выгрузить документ реализации из 1С в XML: типовые обработки, обмен данными, УПД и ЭДО, выгрузка через код. Проверка результата и типичные ошибки.

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

Важно сразу определить, какой именно XML вам нужен. Это может быть файл в формате CommerceML для обмена с сайтом, XML по формату ФНС для электронного документооборота, файл обмена между конфигурациями 1С или произвольная структура под требования внешней системы. От этого зависит и инструмент, и состав выгружаемых данных.

Ниже разобраны основные способы выгрузки реализации в XML в типовых конфигурациях (Управление торговлей, Комплексная автоматизация, ERP, Бухгалтерия предприятия), проверка результата и типичные ошибки.

Определяем, какой XML-формат нужен

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

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

Выгрузка реализации для ЭДО и УПД

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

Если с контрагентом настроен прямой обмен или обмен через оператора, отдельная выгрузка в файл обычно не нужна: документ отправляется кнопкой «Отправить» из формы ЭДО, а XML формируется автоматически. Ручная выгрузка требуется, когда контрагент работает в другой системе и просит прислать файл, либо для архива.

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

Выгрузка через «Универсальный обмен данными в формате XML»

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

Порядок работы: откройте обработку через «Файл → Открыть», на закладке «Выгружаемые данные» укажите файл правил обмена (для типовых конфигураций правила поставляются вместе с конфигурацией или формируются в «Конвертации данных»), отметьте в списке объектов «Реализация товаров и услуг», задайте отбор по периоду или организации, укажите имя файла выгрузки и нажмите «Выгрузить данные».

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

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

Выгрузка в CommerceML для сайта и внешних систем

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

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

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

Программная выгрузка реализации в XML

Когда структура файла определяется внешней системой и не совпадает ни с одним типовым форматом, XML формируют программно на встроенном языке 1С. Для этого используются объекты «ЗаписьXML» (потоковая запись) или механизм XDTO (работа по схеме). Потоковая запись проще для небольших файлов, XDTO удобнее, когда есть XSD-схема от принимающей стороны.

Типовой скелет кода выглядит так: создаётся объект ЗаписьXML, открывается файл, последовательно записываются элементы шапки документа (номер, дата, контрагент), затем в цикле по табличной части — строки товаров с количеством, ценой и суммой.

bsl
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\Реализация.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Реализация");
Запись.ЗаписатьАтрибут("Номер", Док.Номер);
Запись.ЗаписатьАтрибут("Дата", Формат(Док.Дата, "ДФ=yyyy-MM-dd"));
Для Каждого Строка Из Док.Товары Цикл
    Запись.ЗаписатьНачалоЭлемента("Товар");
    Запись.ЗаписатьАтрибут("Наименование", Строка(Строка.Номенклатура));
    Запись.ЗаписатьАтрибут("Количество", Формат(Строка.Количество, "ЧГ="));
    Запись.ЗаписатьАтрибут("Сумма", Формат(Строка.Сумма, "ЧГ="));
    Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();

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

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

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

Для файлов формата ФНС используйте программу проверки от ГНИВЦ или сервис оператора ЭДО — они выполняют форматно-логический контроль по актуальной схеме. Для обмена между базами 1С лучший тест — загрузка файла в копию базы-приёмника и сверка проведённого документа с исходным.

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

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

Файл открывается в браузере
Норма

Дерево XML отображается без ошибок парсинга

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

Сообщение об ошибке в строке N — оборванный тег или спецсимвол

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

Итоговая сумма и НДС совпадают до копейки

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

Расхождения — ошибка округления или формата чисел

Загрузка в базу-приёмник
Норма

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

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

Пустые контрагенты или номенклатура — не выгружены связанные объекты

Типичные ошибки и ограничения

Наиболее частые проблемы связаны не с самой выгрузкой, а с окружением. Устаревший релиз конфигурации формирует XML по старому формату ФНС, который оператор ЭДО отклоняет. Неправильные правила обмена приводят к тому, что в базе-приёмнике документ создаётся с пустыми реквизитами. Ручное редактирование XML в «Блокноте» часто ломает кодировку — файл перестаёт читаться.

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

Типичные ошибки
01
Выгрузка в произвольном XML вместо формата ФНС — оператор ЭДО отклоняет файл
02
Использование неподходящих правил обмена — в приёмнике создаются дубли контрагентов и номенклатуры
03
Редактирование XML вручную — нарушается кодировка и структура файла
04
Выгрузка без отбора по периоду — файл разрастается и загрузка занимает часы
05
Отсутствие тестовой загрузки — ошибки обнаруживаются уже у получателя

Как выбрать подходящий способ

Итоговый выбор зависит от адресата файла. Контрагенту для ЭДО — встроенная выгрузка из формы документа. В другую базу 1С — универсальный обмен с типовыми правилами. На сайт — CommerceML через типовой обмен. В нестандартную систему — программная выгрузка по согласованной схеме.

Сравнение вариантов выгрузки

Кнопка «Выгрузить» в форме документа (ЭДО)

Быстро и без настройки, формат ФНС. Ограничение: только для документов, поддерживаемых подсистемой ЭДО

Универсальный обмен данными XML

Переносит реализации со всеми связанными справочниками между базами 1С. Требует правильных правил обмена

CommerceML (обмен с сайтом)

Стандарт для интеграции с интернет-магазинами. Не подходит для ЭДО и юридически значимого обмена

Программная выгрузка (ЗаписьXML/XDTO)

Полный контроль над структурой под любую внешнюю систему. Требует разработки и тестирования

Итог

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

Сначала определите формат, который ждёт получатель, затем выбирайте инструмент: ЭДО-кнопка для ФНС, универсальный обмен для переноса между базами, CommerceML для сайта, код — для нестандартных интеграций. Всегда проверяйте файл перед отправкой и делайте резервную копию перед загрузкой данных в базу.

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

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

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

Почему получатель не может загрузить мой XML в свою 1С?

Чаще всего причина в несовпадении конфигураций или версий правил обмена. Уточните, из какой конфигурации и в какую выгружаются данные, и используйте правила, предназначенные именно для этой пары. Также проверьте, что файл не редактировался вручную и сохранён в кодировке UTF-8.

Имеет ли выгруженный XML юридическую силу?

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

Как выгрузить реализацию в XML из 1С:Бухгалтерии 8.3?

Откройте документ «Реализация (акты, накладные, УПД)», нажмите кнопку ЭДО и выберите выгрузку в файл — будет сформирован XML по формату ФНС. Для переноса в другую базу используйте обработку «Универсальный обмен данными в формате XML» с типовыми правилами.

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

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

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

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