Администрирование · 10 мин
Как сохранить данные в формате XML в 1С
Как сохранить данные в формате XML в 1С: выгрузка через обработку, выгрузку/загрузку базы, сохранение печатных форм и программный код. Пошаговые инструкции и ошибки.
Формат XML в 1С используется для нескольких разных задач: перенос данных между базами, обмен с банками и контрагентами, выгрузка отчётности в контролирующие органы, резервное копирование конфигурации и обмен между идентичными конфигурациями. Способ сохранения зависит от того, что именно нужно получить: копию всей базы, конкретный документ, справочник или файл по строгому формату обмена.
Важно сразу различать два сценария. Первый — выгрузка информационной базы целиком в файл формата .dt или XML через конфигуратор: это инструмент администратора. Второй — выгрузка отдельных объектов (документов, справочников, регистров) в XML через типовые обработки или встроенные механизмы обмена: это доступно и обычному пользователю, если у него есть соответствующие права.
Ниже разобраны основные способы: от простого сохранения печатной формы до программной записи XML через встроенный язык. Для каждого указаны условия применения, ограничения и способ проверить результат.
Выгрузка всей базы через конфигуратор
Самый радикальный способ — выгрузка информационной базы целиком. В конфигураторе откройте меню «Администрирование» → «Выгрузить информационную базу» и укажите файл с расширением .dt. Это не «чистый» XML, а архив, внутри которого данные и структура базы сохранены в XML-подобном формате платформы. Такой файл подходит для резервной копии и переноса базы на другой сервер, но его нельзя открыть сторонней программой как обычный XML-документ.
Для выгрузки нужны права администратора и монопольный доступ к базе: все пользователи должны завершить работу. В клиент-серверном варианте выгрузка выполняется без монопольного режима, но занимает заметное время на больших базах. Перед выгрузкой убедитесь, что на диске достаточно свободного места — файл .dt может быть сопоставим по размеру с самой базой.
Перенос данных между идентичными конфигурациями
Если нужно перенести документы, справочники или регистры из одной базы в другую с той же конфигурацией, используется типовая обработка «Выгрузка и загрузка данных XML». Она входит в состав диска ИТС и часто встроена в типовые решения (раздел «Администрирование» → «Обмен данными» или подключается как внешняя обработка через «Файл» → «Открыть»).
Порядок работы: откройте обработку, на закладке «Выгрузка» отметьте галочками нужные объекты метаданных (например, справочник «Номенклатура» и документы за период), при необходимости задайте отбор по периоду, укажите имя файла и нажмите «Выгрузить данные». Обработка сформирует XML-файл, который затем загружается в базу-приёмник на закладке «Загрузка».
- 1Откройте обработку «Выгрузка и загрузка данных XML» в базе-источнике
- 2Отметьте объекты для выгрузки и задайте отбор по периоду при необходимости
- 3Укажите путь и имя XML-файла, запустите выгрузку
- 4В базе-приёмнике откройте ту же обработку, перейдите на закладку «Загрузка»
- 5Выберите файл и выполните загрузку, затем проверьте количество объектов
Ключевое ограничение: конфигурации источника и приёмника должны совпадать по структуре объектов, иначе часть данных не загрузится или загрузится с ошибками. Перед загрузкой в рабочую базу обязательно сделайте копию — операция необратима.
Обмен через планы обмена и универсальный формат
Для регулярного обмена между разными конфигурациями (например, между «Управлением торговлей» и «Бухгалтерией») ручная выгрузка не подходит — используются планы обмена. В типовых конфигурациях настройка находится в разделе «Администрирование» → «Синхронизация данных». При настройке выбирается формат обмена: типовой формат конфигурации или универсальный EnterpriseData.
После настройки синхронизации программа сама формирует XML-файл сообщения обмена при выгрузке и помещает его в указанный каталог, на FTP или передаёт напрямую. Файл можно открыть и посмотреть: внутри — структурированное описание объектов в соответствии с форматом. Если файл нужно сохранить вручную, в настройках синхронизации выберите вариант обмена «через каталог» и заберите файл из папки.
Преимущество плана обмена — регистрация изменений: выгружаются только новые и изменённые объекты, а не вся база. Это снижает объём файлов и время обмена. Недостаток — первичная настройка требует аккуратности: ошибки в правилах регистрации приводят к потере части данных при обмене.
Сохранение отчётности и документов в XML
Отдельная задача — выгрузка регламентированной отчётности. В конфигурациях «1С:Бухгалтерия» и аналогичных откройте нужный отчёт (декларацию, расчёт) и нажмите кнопку «Выгрузить». Программа сформирует XML-файл строго по утверждённому формату ФНС или фонда. Перед выгрузкой отчёт нужно заполнить и проверить встроенной проверкой — файл с ошибками не пройдёт приём в контролирующем органе.
Электронные документы (счета-фактуры, УПД, акты) выгружаются в XML через механизм электронного документооборота: в карточке документа есть команды «Выгрузить» или «Сохранить файл». Формат файла соответствует утверждённым форматам электронных документов, и его можно передать контрагенту или загрузить в оператора ЭДО.
Табличные документы (печатные формы, произвольные отчёты) можно сохранить через «Файл» → «Сохранить как», выбрав тип файла. Прямого варианта «XML» в списке форматов табличного документа обычно нет — доступны MXL, Excel, PDF, HTML. Если нужен именно XML произвольной структуры, используется программный способ.
Программная запись XML встроенным языком
Когда типовые механизмы не подходят — нужна своя структура файла, выгрузка по расписанию или нестандартный формат — XML формируется кодом. Встроенный язык предоставляет объект ЗаписьXML, который последовательно пишет элементы, атрибуты и текст.
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\nomenclature.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Номенклатура");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьНачалоЭлемента("Товар");
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));
Запись.ЗаписатьАтрибут("Наименование", Выборка.Наименование);
Запись.ЗаписатьКонецЭлемента(); // Товар
КонецЦикла;
Запись.ЗаписатьКонецЭлемента(); // Номенклатура
Запись.Закрыть();
Три правила безопасного кода: всегда закрывайте запись методом Закрыть() (иначе файл останется пустым или обрезанным), явно указывайте кодировку (для обмена с внешними системами чаще всего нужна UTF-8) и преобразовывайте значения в строку явно, особенно даты и числа — формат по умолчанию может не совпасть с ожиданиями принимающей системы.
Для сериализации объектов «как есть» используется объект СериализаторXDTO: он записывает ссылочные объекты в XML по модели XDTO с сохранением всех реквизитов. Это удобно для технических выгрузок, но файл привязан к структуре конфигурации.
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\data.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Данные");
Запись.ЗаписатьТекст("значение");
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();Проверка результата и типичные ошибки
После выгрузки откройте XML-файл в текстовом редакторе или браузере: браузер покажет структуру дерева и сообщит об ошибке синтаксиса, если файл повреждён. Проверьте первую строку — должно быть объявление XML с кодировкой, и кодировка файла должна ей соответствовать. Затем сверьте количество выгруженных объектов с ожидаемым: обработка выгрузки обычно показывает счётчик.
Как проверить результат
Отображается дерево элементов
Ошибка разбора XML — файл повреждён или запись не закрыта
Кириллица читается корректно
Кракозябры — несовпадение кодировки записи и объявления
Совпадает с отбором при выгрузке
Часть объектов отсутствует — проверьте отбор и права
Если при загрузке возникают ошибки «Объект не найден», чаще всего причина в несовпадении конфигураций или в битых ссылках внутри файла. Загружайте сначала справочники, затем документы — это сохраняет порядок разрешения ссылок.
Как выбрать способ
Частые вопросы
Чем файл .dt отличается от XML-файла выгрузки?
Файл .dt — это архив выгрузки всей информационной базы вместе с конфигурацией, пользователями и данными. Он предназначен только для загрузки через конфигуратор. XML-файл из обработки «Выгрузка и загрузка данных» содержит только выбранные данные и читается как обычный текстовый документ, но загружается тоже в базу 1С.
Можно ли открыть XML-выгрузку 1С в Excel?
Технически Excel умеет открывать XML-файлы, но структура выгрузки 1С (сериализация объектов) плохо ложится на таблицу. Для анализа в Excel лучше выгружать данные через табличный документ (сохранение в формат Excel) или формировать CSV.
Почему после загрузки XML часть документов не появилась?
Частые причины: конфигурации источника и приёмника различаются, документы ссылаются на справочники, которые не были выгружены, или при загрузке возникли ошибки, которые видны в окне сообщений. Загружайте сначала справочники, затем документы, и проверяйте протокол загрузки.
Какую кодировку выбрать при записи XML?
Для обмена с внешними системами стандарт — UTF-8. Кодировка указывается при открытии файла в ЗаписьXML и должна совпадать с объявлением в заголовке документа. Если принимающая система требует windows-1251, укажите её явно.
Можно ли настроить автоматическую выгрузку в XML по расписанию?
Да. Создаётся внешняя обработка или процедура в общем модуле с кодом записи XML, которая вызывается через регламентное задание. В клиент-серверном варианте задание выполняется на сервере, поэтому путь к файлу должен быть доступен серверу 1С, а не компьютеру пользователя.
Как выгрузить в XML только документы за конкретный период?
В обработке «Выгрузка и загрузка данных XML» при отметке объектов задайте отбор по периоду для документов. При программной выгрузке добавьте условие по дате в запрос или проверку внутри цикла выборки.
Что важно запомнить
Способ сохранения в XML выбирается по задаче: .dt для копии базы, обработка выгрузки/загрузки для переноса между идентичными конфигурациями, план обмена для регулярной синхронизации, ЗаписьXML для произвольной структуры. Перед загрузкой данных всегда делайте резервную копию, а после выгрузки проверяйте файл на целостность и кодировку.