Как выгрузить акт выполненных работ в формат XML из 1С?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При возникновении задачи выгрузки документов, таких как «Акт выполненных работ» или «Реализация товаров и услуг», в формат XML в программе 1С:Бухгалтерия (редакции 2.0 или 3.0), важно сразу определить конечную цель. Выгрузка в формат XML принципиально отличается от сохранения печатных форм в привычные графические форматы, такие как PDF или Excel.

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

Особенности структуры XML и понятие XSD-схемы

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

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

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

Важное ограничение: печатные формы и XML

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

Печатная форма 1С — это графическое представление данных для человека, в то время как XML предназначен для автоматизированного считывания учетными системами. Поэтому выгрузка всегда формируется непосредственно из данных самого объекта базы (ссылки или объекта документа), а не из его печатной формы.

Вариант 1. Базовая сериализация платформы 1С

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

Проанализируем пример программного кода для выгрузки объекта документа в XML-строку:


Функция ВыгрузитьXML(ДокументСсылка) Экспорт
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    ЗаписатьXML(ЗаписьXML, ДокументСсылка.ПолучитьОбъект());
    Возврат ЗаписьXML.Закрыть();
КонецФункции

Для обратного считывания объекта из полученной XML-строки используется объект ЧтениеXML и функция ПрочитатьXML():


Функция ЗагрузитьXML(Стр) Экспорт
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(Стр);
    Возврат ПрочитатьXML(ЧтениеXML);
КонецФункции

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

Вариант 2. Выгрузка через сервисы 1С:ЭДО или внешние обработки

Если акты выполненных работ нужно передавать контрагентам в юридически значимом виде, следует использовать механизмы Электронного документооборота (1С:ЭДО):

  1. В 1С:Бухгалтерии 3.0 встроен стандартный функционал ЭДО. В нем предусмотрена возможность сформировать и выгрузить регламентированный XML-файл акта или УПД на диск (без отправки оператору), если требуется передать его контрагенту отдельным каналом.
  2. Для редакции 1С:Бухгалтерия 2.0 обычно применяются специальные внешние обработки от операторов ЭДО. Они формируют XML-файлы по актуальным форматам ФНС без необходимости изменять типовую конфигурацию.

Вариант 3. Перенос документов при переходе с БП 2.0 на БП 3.0

Если выгрузка актов требуется для смены редакции программы (например, с 1С:Бухгалтерии 2.0 на 1С:Бухгалтерию 3.0), выгрузка отдельных документов через стандартные механизмы XML не требуется. Для таких задач применяются специализированные правила обмена, созданные в «1С:Конвертации данных», либо типовая обработка ВыгрузкаЗагрузкаДанныхXML.epf.

← На главную