Администрирование · 9 мин
Для каких объектов в 1С применяется формат XML
Разбираем, для каких объектов в 1С применяется формат XML: выгрузка данных, обмен между базами, печатные формы, отчеты и конфигурации.
XML — один из базовых форматов, на которых построена платформа 1С:Предприятие. Через XML сериализуются объекты конфигурации, выгружаются базы в файл dt-подобных механизмов обмена, передаются данные между информационными базами и внешними системами, формируются электронные документы для контролирующих органов. Понимание того, какие именно объекты используют XML, помогает администратору и разработчику правильно выбирать инструмент выгрузки, диагностировать ошибки обмена и не путать внутренние механизмы платформы с прикладными форматами.
Важно различать два уровня применения XML. Первый — уровень платформы: внутреннее представление объектов при сериализации, планы обмена, выгрузка конфигурации в файлы. Второй — прикладной уровень: электронные счета-фактуры, отчетность в ФНС и ПФР, обмен с банками и торговыми площадками. На обоих уровнях формат один, но назначение и состав данных принципиально разные.
Сериализация объектов конфигурации в XML
На уровне платформы практически любой объект 1С может быть представлен в XML. Встроенный язык предоставляет объекты ЗаписьXML и ЧтениеXML, а также функции глобального контекста ЗначениеВСтрокуXML и ЗначениеИзСтрокиXML. Через них в XML преобразуются ссылки и объекты справочников, документов, планов видов характеристик, планов счетов, наборы записей регистров сведений и накопления.
Сериализация использует механизм XDTO — объектную модель работы с XML-документами по схеме. Платформа автоматически сопоставляет типы данных 1С (строка, число, дата, ссылка, булево) с типами схемы XML. Благодаря этому разработчику не нужно вручную описывать структуру элемента справочника: достаточно вызвать запись объекта, и платформа сформирует корректный XML с учетом всех реквизитов, табличных частей и движений.
Практическое ограничение: сериализация объекта в XML не переносит контекст базы — права, связи с другими базами, служебные настройки. Если выгрузить документ в XML и загрузить в другую базу, где отсутствует связанный контрагент, получите либо битую ссылку, либо ошибку при проведении. Поэтому XML-выгрузка отдельных объектов подходит для переноса данных между идентичными конфигурациями либо как промежуточный формат с последующей обработкой.
Планы обмена и универсальный формат EnterpriseData
Планы обмена — штатный механизм синхронизации между базами 1С, и их транспортный формат исторически основан на XML. При регистрации изменений в узле плана обмена платформа формирует сообщение обмена: XML-файл с заголовком, сведениями об отправителе и получателе и блоками данных по каждому измененному объекту. При загрузке сообщение разбирается, объекты записываются в базу-приемник.
Современные типовые конфигурации для синхронизации используют универсальный формат EnterpriseData — это тоже XML, но с открытой схемой, ориентированной на прикладные сущности: контрагенты, номенклатура, счета, заказы, отгрузки. Формат не привязан к структуре конкретной конфигурации, поэтому через него обмениваются, например, «Управление торговлей» и «Бухгалтерия предприятия», у которых разные составы справочников.
Выгрузка конфигурации и данных через XML-файлы
Конфигуратор позволяет выгрузить конфигурацию в XML-файлы через меню «Конфигурация — Выгрузить конфигурацию в файлы». В результате каждый объект метаданных — справочник, документ, регистр, модуль, форма, макет — сохраняется как отдельный XML-файл в иерархии каталогов. Такой формат выгрузки используется для хранения конфигурации в системах контроля версий (Git), сравнения версий на уровне текста и автоматизированной сборки.
Отдельный сценарий — штатная обработка «Выгрузка и загрузка данных XML», которая входит в состав дистрибутивов типовых конфигураций и доступна на диске ИТС. Она выгружает данные информационной базы (все или выбранные виды объектов) в XML-файл и загружает обратно. Обработка работает только между идентичными конфигурациями: версии объектов метаданных в источнике и приемнике должны совпадать, иначе загрузка завершится с ошибками несоответствия типов.
Электронная отчетность и документооборот с государственными органами
Регламентированная отчетность в 1С формируется и выгружается в XML по утвержденным форматам ФНС, ПФР, ФСС и Росстата. Декларации по налогу на прибыль, НДС, расчеты по страховым взносам, персонифицированные сведения — все это выгружается в XML-файлы строго заданной структуры, где каждый элемент и атрибут соответствует показателю формы. При отправке через оператора связи файл дополнительно подписывается и шифруется, но его основа остается XML.
Электронные документы при обмене с контрагентами — универсальные передаточные документы, счета-фактуры, акты, накладные — также передаются в XML по форматам, утвержденным приказами ФНС. В типовых конфигурациях за это отвечает подсистема обмена электронными документами: она формирует XML на основе учетного документа, отправляет через оператора ЭДО и загружает входящие документы обратно в учетную систему.
Интеграция с внешними системами
Веб-сервисы 1С по протоколу SOAP обмениваются XML-сообщениями: запрос и ответ формируются по WSDL-описанию, а данные передаются в теле XML-документа. При публикации веб-сервиса на веб-сервере платформа автоматически сериализует параметры и возвращаемые значения в XML, поэтому внешняя система видит стандартный SOAP-интерфейс.
HTTP-сервисы и произвольные интеграции с сайтами, CRM, маркетплейсами и банками часто используют XML как формат запросов и ответов, хотя в новых проектах его вытесняет JSON. Тем не менее обмен с банками по зарплатным проектам, выгрузка выписок, обмен с торговыми площадками и транспортными системами во многих решениях по-прежнему построены на XML, и 1С обрабатывает их через ЧтениеXML или XDTO-пакеты.
Сравнение вариантов обмена
Подходит для интеграций со строгой схемой, ЭДО и отчетности. Ограничение — громоздкие файлы и обязательная валидация по схеме.
Удобен для легковесных HTTP-интеграций и веб-приложений. Ограничение — нет строгой типизации дат и ссылок, схему контролирует разработчик.
Штатная синхронизация между базами 1С с регистрацией изменений. Ограничение — привязка к конфигурации и сложность обмена со сторонними системами.
Как самостоятельно выгрузить объект в XML и проверить результат
Для разовой выгрузки отдельного объекта проще всего использовать небольшую процедуру во внешней обработке или консоли кода. Типовая последовательность: получить объект по ссылке, создать объект ЗаписьXML, вызвать сериализацию через СериализаторXDTO и сохранить результат в файл. Для загрузки используется обратная пара — ЧтениеXML и чтение значения с проверкой типа.
- 1Откройте консоль кода или создайте внешнюю обработку в режиме толстого или тонкого клиента
- 2Получите ссылку на нужный объект справочника или документа
- 3Создайте объект ЗаписьXML и укажите путь к файлу выгрузки
- 4Выполните сериализацию через СериализаторXDTO.ЗаписатьXML
- 5Откройте полученный файл в текстовом редакторе и убедитесь, что присутствуют все реквизиты и табличные части
- 6Выполните тестовую загрузку в копию базы и сверьте данные объекта с оригиналом
Проверка результата обязательна: XML-файл может быть сформирован без ошибок синтаксиса, но содержать неполные данные — например, пустые табличные части из-за отсутствия прав на чтение связанных объектов. Откройте файл и убедитесь, что в нем есть ожидаемые узлы: реквизиты шапки, строки табличных частей, движения по регистрам, если они выгружались.
Частые вопросы
Можно ли перенести данные между разными конфигурациями через XML?
Напрямую через штатную выгрузку/загрузку — нет, она требует идентичных конфигураций. Для разных конфигураций используют «Конвертацию данных» с правилами обмена или универсальный формат EnterpriseData, где структура привязана к прикладным сущностям, а не к метаданным.
Чем XML-сообщение плана обмена отличается от файла выгрузки данных?
Сообщение плана обмена содержит служебный заголовок с номерами отправленного и принятого сообщений и предназначено для регулярной синхронизации с учетом регистрации изменений. Файл выгрузки данных — разовый снимок выбранных объектов без механизма отслеживания изменений.
Почему XML-файл отчетности не принимает ФНС?
Чаще всего причины — устаревшая версия формата в конфигурации, ручное редактирование файла, ошибки в реквизитах (ИНН, КПП, коды) или неверная кодировка. Обновите релиз конфигурации и формируйте файл заново штатными средствами, не редактируя его вручную.
Можно ли выгрузить в XML движения документа по регистрам?
Да, при сериализации объекта документа через XDTO наборы записей движений включаются в XML, если это предусмотрено механизмом выгрузки. В штатной обработке выгрузки/загрузки данных движения выгружаются вместе с документом.
Что выбрать для новой интеграции — XML или JSON?
Если интеграция требует строгой схемы, валидации и совместимости с ЭДО или госсистемами — XML. Для легковесного обмена с веб-приложениями и мобильными клиентами обычно удобнее JSON, который платформа также поддерживает штатно.
Где посмотреть структуру XML, которую формирует 1С?
Схемы XDTO-пакетов доступны в конфигураторе в ветке «XDTO-пакеты», а форматы отчетности и электронных документов публикуются ФНС. Для прикладных файлов проще всего сформировать тестовую выгрузку и изучить полученный XML в редакторе.
Что важно запомнить
XML в 1С применяется на двух уровнях: платформа сериализует в него любые объекты и строит на нем планы обмена и выгрузку конфигурации, а прикладные решения используют его для отчетности, ЭДО и интеграций. Главные правила безопасной работы — совпадение версий конфигураций при загрузке данных, резервная копия перед переносом и запрет на ручное редактирование регламентированных XML-файлов.