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

Справочники и Данные · 10 мин

Как сохранить в 1С в XML: практические способы выгрузки данных

Как сохранить данные из 1С в XML: типовая выгрузка, обработка выгрузки-загрузки, сохранение документов и печатных форм, обмен между базами и типичные ошибки.

Формат XML в 1С используется для переноса данных между базами, обмена с внешними системами, архивного хранения документов и загрузки выписок, каталогов и прайсов. В зависимости от задачи применяются разные механизмы: типовая обработка «Выгрузка и загрузка данных XML», универсальный обмен данными, сохранение печатных форм или программная запись через встроенный язык.

Выбор способа зависит от того, что именно нужно получить на выходе. Если требуется перенести справочники и документы в идентичную базу, подойдёт штатная обработка сопоставления по типам объектов. Если нужен файл для сторонней программы — потребуется настроить правила обмена или выгрузить данные запросом с записью через объект ЗаписьXML.

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

Когда какой способ выгрузки в XML выбрать

В 1С нет единственной кнопки «сохранить в XML» — механизм зависит от цели. Неправильный выбор способа приводит к файлам, которые невозможно загрузить обратно или прочитать в другой программе.

Основные сценарии: перенос данных между идентичными базами (например, из рабочей в тестовую), обмен между разными конфигурациями (УТ → Бухгалтерия), выгрузка для сторонних систем (сайт, банк, складское ПО) и сохранение отдельных документов или печатных форм.

Маршрут решения

Как выбрать действие

База-источник и база-приёмник имеют одинаковую конфигурацию и релизИспользуйте типовую обработку «Выгрузка и загрузка данных XML»
Конфигурации разные, например из Управления торговлей в БухгалтериюНастройте универсальный обмен данными по правилам конвертации
Файл нужен для сайта, банка или другой внешней системыФормируйте XML программно через ЗаписьXML по требуемой схеме
Нужно сохранить один документ как файл для просмотраСохраните печатную форму в XML-табличный документ или PDF через Файл → Сохранить

Выгрузка через типовую обработку «Выгрузка и загрузка данных XML»

Это штатный инструмент для переноса данных между базами с идентичной структурой метаданных. В типовых конфигурациях обработка обычно доступна в разделе «Администрирование» → «Обмен данными» или «Сервис» → «Выгрузка и загрузка данных XML». Если её нет в интерфейсе, внешнюю обработку можно найти на диске ИТС или в поставке конфигурации.

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

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

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

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

Когда базы различаются по структуре, используется обработка «Универсальный обмен данными в формате XML» вместе с правилами конвертации. Правила описывают, какой реквизит источника в какой реквизит приёмника попадает, и создаются в конфигурации «Конвертация данных».

Для типовых пар конфигураций (УТ 11 → БП 3.0, ЗУП → БП и т. п.) правила поставляются вместе с обновлениями и подключаются через настройку синхронизации данных. В этом случае XML-файл формируется автоматически при обмене — вручную сохранять ничего не нужно, но при желании файл обмена можно найти в каталоге обмена и сохранить отдельно.

Если типовых правил нет, их придётся разрабатывать самостоятельно или заказывать у специалиста. Это полноценная задача разработки: нужно сопоставить справочники, определить правила поиска объектов, обработать перечисления и ссылки.

Сохранение отдельных документов и печатных форм

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

Печатную форму можно сохранить через кнопку «Ещё» → «Сохранить» (или Файл → Сохранить копию) в формате табличного документа MXL, листа Excel, PDF или HTML. Табличный документ MXL внутри — это тоже XML-подобная структура, но читается она только в 1С.

Для передачи документа в другую базу 1С удобнее использовать обработку выгрузки с отбором по конкретному документу: в списке выгружаемых объектов отметьте вид документа и задайте отбор по ссылке. Вместе с документом автоматически выгрузятся связанные объекты — контрагент, договор, номенклатура, если включён режим выгрузки по ссылкам.

Программная запись XML через встроенный язык

Когда файл нужен по строгой схеме — для сайта, банка-клиента, маркетплейса или государственного портала — XML формируют программно. Встроенный язык 1С предоставляет объект ЗаписьXML, который последовательно записывает элементы и атрибуты.

bsl
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\номенклатура.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Номенклатура");
Пока Выборка.Следующий() Цикл
    Запись.ЗаписатьНачалоЭлемента("Товар");
    Запись.ЗаписатьАтрибут("Код", Выборка.Код);
    Запись.ЗаписатьТекст(Выборка.Наименование);
    Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();

Альтернатива — сериализация объекта целиком через ЗаписьXML.ЗаписатьXML() или XDTO-сериализатор. Такой файл содержит внутреннее представление объекта 1С и подходит только для загрузки обратно в 1С, но не для внешних систем.

При программной выгрузке обязательно проверяйте требования принимающей стороны: кодировку (обычно UTF-8), версию XML-объявления, обязательные атрибуты и ограничения на длину строк. Несоответствие схеме — самая частая причина отказа при загрузке файла во внешнюю систему.

Выгрузка всей базы и ограничения формата

XML не предназначен для полного резервного копирования. Для бэкапа файловой базы используется выгрузка в DT (Администрирование → Выгрузить информационную базу) или копирование файла 1Cv8.1CD, для клиент-серверной — средства СУБД. XML-выгрузка покрывает только данные, но не настройки, пользователей, расширения и часть служебной информации.

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

Типичные ошибки
01
Выгрузка из одной версии конфигурации и загрузка в другую — реквизиты не совпадают, данные теряются или загрузка падает с ошибкой
02
Отключённые отборы при выгрузке документов — в файл попадают миллионы записей и обработка зависает
03
Попытка открыть файл обмена 1С в сторонней программе — внутренний формат не соответствует внешним схемам
04
Загрузка в рабочую базу без теста на копии — перезапись объектов по GUID без возможности отката
05
Сохранение файла в кодировке ANSI вместо UTF-8 — кириллица превращается в нечитаемые символы

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

После выгрузки не ограничивайтесь сообщением «успешно завершено». Откройте файл в браузере или текстовом редакторе: XML должен начинаться с объявления и иметь читаемую древовидную структуру. Браузер сразу покажет синтаксическую ошибку, если структура нарушена.

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

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

Можно ли сохранить в XML без прав администратора?

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

Чем XML-выгрузка отличается от выгрузки в DT?

DT — это полный снимок информационной базы со всеми данными, пользователями и настройками, который можно развернуть только как новую базу 1С. XML-файл содержит выбранные данные и предназначен для переноса в существующую базу или обмена с другими системами.

Файл выгрузился, но при загрузке появляются дубли контрагентов. Что делать?

Дубли возникают, если объекты в базах созданы независимо и имеют разные GUID. Перед загрузкой синхронизируйте справочники: либо загрузите сначала справочники из источника, либо настройте поиск по реквизитам (ИНН, наименование) в правилах обмена вместо поиска по GUID.

Как выгрузить в XML только документы за определённый период?

В типовой обработке на закладке выгрузки установите отбор по периоду для документов и регистров. При программной выгрузке добавьте условие по дате в запрос. Учтите, что связанные справочники всё равно будут выгружены целиком или по ссылкам — это нормально.

Можно ли открыть XML-файл из 1С в Excel?

Excel умеет открывать XML, но файл внутреннего формата обмена 1С отобразится как неудобная таблица со служебными полями. Для анализа в Excel лучше сохранить данные через табличный документ в формате XLSX или сформировать XML по плоской структуре специально под Excel.

Итог

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

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