Справочники и Данные · 11 мин
XML формат: как сохранить данные из 1С
Как сохранить данные из 1С в XML: типовые обработки, выгрузка справочников и документов, обмен между базами, проверка файла и типичные ошибки.
XML — один из основных форматов обмена данными в экосистеме 1С. Через него выгружают справочники, документы, планы обмена, отчёты во внешние системы и даже целые базы. При этом «сохранить в XML из 1С» может означать разные задачи: выгрузить номенклатуру для сайта, передать документы контрагенту, перенести данные между базами или сохранить печатную форму в файл.
Способ сохранения зависит от того, какая у вас конфигурация (типовая или самописная), какой режим работы используется (обычное или управляемое приложение) и что именно нужно получить на выходе. В типовых решениях вроде «1С:Бухгалтерии», «1С:Управление торговлей» и «1С:ЗУП» уже встроены готовые механизмы выгрузки, а для нестандартных задач используются универсальные обработки или код на встроенном языке.
Ниже разобраны основные практические сценарии: от штатной выгрузки через «Универсальный обмен данными» до программной записи XML, а также проверка результата и типичные ошибки, из-за которых файл не открывается или не загружается обратно.
Какие способы сохранения в XML есть в 1С
Прежде чем выбирать инструмент, определите задачу. В 1С существует несколько независимых механизмов формирования XML, и они не взаимозаменяемы: файл, выгруженный одним способом, часто нельзя загрузить другим.
- Универсальный обмен данными в формате XML — перенос справочников и документов между базами по правилам конвертации. Подходит для миграций и синхронизаций.
- Выгрузка/загрузка данных XML — перенос данных между идентичными конфигурациями (например, копирование справочников из рабочей базы в тестовую).
- Типовые форматы обмена — CommerceML (обмен с сайтом), EnterpriseData, обмен с банками и ЭДО. Файл формируется по строгой схеме.
- Планы обмена — регулярная автоматическая синхронизация между базами, XML-файл создаётся как транспорт.
- Программная запись — объект ЗаписьXML в коде для произвольной структуры файла.
Сравнение способов выгрузки
Подходит для переноса между разными конфигурациями по правилам; требует настройки правил конвертации
Быстро и просто, но базы должны иметь идентичную структуру конфигурации
Готовый формат для сайта или контрагента; структуру файла изменить нельзя
Полная свобода структуры; требует навыков программирования на встроенном языке
Как сохранить данные через «Универсальный обмен данными в формате XML»
Это самый частый сценарий: нужно выгрузить справочники или документы за период, чтобы загрузить их в другую базу. В типовых конфигурациях обработка находится в разделе «Администрирование» → «Обмен данными» → «Универсальный обмен данными в формате XML». Если пункта нет, обработку можно открыть как внешний файл через «Файл → Открыть».
- 1Откройте обработку «Универсальный обмен данными в формате XML»
- 2На закладке «Выгружаемые данные» загрузите правила обмена (файл правил конвертации для вашей пары конфигураций)
- 3Отметьте галочками нужные объекты: справочники, документы, регистры
- 4Установите отбор по периоду и при необходимости по организации
- 5Укажите путь и имя файла выгрузки, например C:\Обмен\выгрузка.xml
- 6Нажмите «Выгрузить данные» и дождитесь сообщения о завершении
Обратите внимание на поле «Имя файла правил обмена». Без корректных правил конвертации выгрузка либо не запустится, либо создаст файл, который приёмная база не поймёт. Правила для типовых пар конфигураций поставляются в комплекте обновлений или создаются в «1С:Конвертация данных».
Признак успешной выгрузки — в окне сообщений нет ошибок, а в конце журнала указано количество выгруженных объектов. Если объектов выгружено ноль, проверьте отборы: чаще всего «съедает» данные ограничение по дате или по организации.
Как выгрузить данные между идентичными базами
Если база-источник и база-приёмник имеют одинаковую конфигурацию одной версии (например, рабочая и тестовая копия), задача сильно упрощается. Используется обработка «Выгрузка и загрузка данных XML», которую можно найти на диске ИТС или в составе типовой поставки некоторых конфигураций.
В обработке на закладке «Выгрузка» отметьте объекты метаданных, которые нужно сохранить, укажите файл и нажмите «Выгрузить данные». Особенность этого способа — выгружаются объекты целиком со всеми ссылками, поэтому важно включить опцию выгрузки связанных объектов, иначе в приёмнике появятся «битые ссылки» вида «Объект не найден».
Как сохранить данные для обмена с сайтом или контрагентом
Выгрузка номенклатуры в CommerceML
Для интернет-магазинов в «1С:Управление торговлей» и «1С:Комплексная автоматизация» есть типовой обмен с сайтом: раздел «CRM и маркетинг» или «Администрирование» → «Обмен с сайтами». При настройке узла обмена укажите вариант «Выгрузка в каталог на диске» вместо прямого подключения к сайту — тогда 1С сформирует XML-файлы (обычно import.xml с товарами и offers.xml с ценами и остатками) в указанной папке.
Документы для ЭДО и контрагентов
Счета, акты и УПД в XML формируются через подсистему электронного документооборота: из формы документа выберите «ЭДО» → «Сформировать документ» или «Выгрузить в файл». Формат такого файла жёстко регламентирован приказами ФНС, поэтому изменять его структуру вручную нельзя — документ не пройдёт форматный контроль у оператора ЭДО и у получателя.
Как сохранить XML программно
Когда штатных средств не хватает — например, внешняя система требует файл собственной структуры — XML формируют кодом. Во встроенном языке 1С для этого служит объект ЗаписьXML:
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\номенклатура.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Товары");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьНачалоЭлемента("Товар");
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));
Запись.ЗаписатьАтрибут("Наименование", Выборка.Наименование);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
Два момента, на которых чаще всего спотыкаются. Первый — кодировка: указывайте UTF-8 явно, иначе файл с русскими символами может некорректно открыться во внешней системе. Второй — обязательный вызов метода Закрыть(): без него файл останется неполным или заблокированным, пока открыт сеанс 1С.
Для сериализации объектов 1С «как есть» вместо ручной записи используют объект СериализаторXDTO — он сохраняет ссылочные объекты в XML со всеми реквизитами одной командой, но такой файл читается только платформой 1С, а не сторонними системами.
Если файл формируется на сервере 1С, путь C:\Обмен\ указывает на диск сервера, а не вашего компьютера. В клиент-серверном режиме сохраняйте файл во временный каталог и передавайте на клиент через хранилище значений или временное хранилище.
Как проверить, что XML-файл корректен
Сохранённый файл стоит проверить до передачи или загрузки. Минимальная проверка занимает пару минут и избавляет от ситуации, когда ошибка обнаруживается уже на стороне получателя.
Как проверить результат
Отображается древовидная структура тегов без сообщений об ошибке разбора
Браузер сообщает об ошибке XML на конкретной строке — файл неполный или повреждён
Русские буквы читаемы, в объявлении XML указано encoding="UTF-8"
Кракозябры вместо кириллицы — неверная кодировка при записи
В файле присутствуют ожидаемые объекты и их количество соответствует отбору
Файл почти пустой или содержит только заголовок — сработал слишком узкий отбор
Тестовая загрузка в копию базы проходит без ошибок
Ошибки формата или «объект не найден» — несовпадение версий конфигураций или правил
Дополнительно полезно сверить контрольные цифры: количество выгруженных объектов (обработка показывает его в конце) с числом элементов в файле. Простой способ — открыть файл в редакторе и посчитать вхождения основного тега через поиск.
Типичные ошибки и ограничения
Отдельно стоит упомянуть ограничение по объёму. Универсальная выгрузка держит значительную часть данных в памяти, поэтому при переносе миллионов записей файл лучше делить: выгружать справочники отдельно, документы — порциями по периодам. Это ускоряет и саму загрузку в приёмнике.
Как выбрать действие
Частые вопросы
Чем открыть XML-файл, выгруженный из 1С?
Любым браузером (Chrome, Edge, Firefox) — он покажет древовидную структуру, либо текстовым редактором вроде Notepad++. Для просмотра больших файлов браузер удобнее, для поиска и правок — редактор. Специальных программ не требуется.
Почему выгруженный файл пустой или почти пустой?
Чаще всего сработали отборы: неверный период, отбор по организации или по складу. Также проверьте, что в правилах обмена отмечены галочками нужные объекты. Откройте обработку заново и снимите все отборы для теста — если данные появились, сужайте отбор постепенно.
Можно ли из XML загрузить данные обратно в 1С?
Да, но только той же обработкой, которой файл создавался, и в базу с совместимой конфигурацией. Файл универсального обмена загружается через ту же обработку на закладке «Загрузка». Файлы CommerceML и регламентированных документов в 1С назад не загружаются — они предназначены для внешних систем.
Какой размер файла считается нормальным?
Зависит от объёма данных: тысяча элементов справочника — обычно единицы мегабайт, документы за год в активной базе — десятки или сотни мегабайт. Если файл подозрительно велик, разбейте выгрузку по периодам; если подозрительно мал — проверьте отборы.
Чем XML отличается от выгрузки базы в .dt?
Файл .dt — это полная копия всей информационной базы, которую можно развернуть только как новую базу целиком. XML содержит отдельные выбранные данные и загружается внутрь существующей базы без её замены. Для резервного копирования используют .dt, для обмена данными — XML.
Что важно запомнить
Способ сохранения в XML выбирается под задачу: универсальный обмен — для миграций между конфигурациями, выгрузка/загрузка XML — для идентичных баз, типовые форматы — для сайта и ЭДО, ЗаписьXML — для произвольной структуры. Всегда проверяйте отборы, кодировку UTF-8 и тестируйте загрузку на копии базы, сделав перед этим резервную копию.