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

Документы и Печать · 11 мин

Как сохранить счет в 1С в формате XML

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

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

В типовых конфигурациях 1С (Бухгалтерия предприятия, Управление торговлей, Комплексная автоматизация) нет единой кнопки «выгрузить счет в XML» для всех случаев. Зато есть несколько рабочих механизмов: сохранение табличного документа в XML, универсальный обмен данными, выгрузка через обработки и программная запись средствами встроенного языка. Ниже разобраны все варианты с условиями применения.

Определите, какой именно XML вам нужен

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

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

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

Как выбрать способ

Нужно переслать счет, который откроют в 1С как печатную формуСохраните табличный документ через «Файл → Сохранить как» в формате XML
Нужно перенести счет как документ в другую базу 1СИспользуйте обработку «Выгрузка и загрузка данных XML» или универсальный обмен
Нужен файл для ЭДО или банка по утвержденному форматуФормируйте документ через подсистему обмена электронными документами конфигурации
Нужен разовый файл по произвольной структуреИспользуйте программную запись XML через встроенный язык или внешнюю обработку

Сохранение печатной формы счета в XML

Самый простой сценарий доступен без прав администратора и доработок. Откройте документ «Счет на оплату покупателю», нажмите кнопку «Печать» и выберите нужную печатную форму — например, «Счет на оплату». На экране появится табличный документ.

Далее откройте меню «Файл» главного меню программы и выберите пункт «Сохранить как» (в некоторых версиях платформы — «Сохранить копию»). В диалоге сохранения укажите тип файла «Табличный документ XML (*.xml)» или «XML-документ», задайте имя и папку. Платформа запишет печатную форму в XML-представлении табличного документа.

Порядок действий для печатной формы
  1. 1
    Откройте счет и сформируйте печатную форму кнопкой «Печать»
  2. 2
    В главном меню выберите «Файл → Сохранить как»
  3. 3
    Укажите тип файла «Табличный документ XML» и папку сохранения
  4. 4
    Откройте полученный файл в 1С или текстовом редакторе и убедитесь, что данные на месте

Полученный файл открывается в любой базе 1С через «Файл → Открыть» и выглядит как исходная печатная форма. Учтите ограничение: это снимок внешнего вида, а не учетный документ. Загрузить его в другую базу как счет с проведением таким способом нельзя.

Выгрузка данных документа через обмен XML

Когда требуется перенести счет как полноценный объект в другую информационную базу, используется типовая обработка «Выгрузка и загрузка данных XML». Она входит в поставку многих конфигураций и также доступна на диске ИТС. Обработка выгружает объект со всеми реквизитами, табличными частями и движениями в стандартизированный XML-файл.

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

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

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

Если файл нужен по произвольной структуре — например, по шаблону банка или веб-сервиса — используется встроенный язык 1С. Объект «ЗаписьXML» позволяет сформировать файл с любыми узлами и атрибутами, заполнив их данными документа.

Минимальный пример выглядит так: создается объект записи, открывается файл, последовательно записываются элементы с реквизитами счета и строками табличной части, затем файл закрывается. Такой код можно выполнить через внешнюю обработку или консоль кода.

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

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

Перед записью сумм в XML приводите их к строке с точкой в качестве разделителя дробной части — иначе при загрузке в систему с другими региональными настройками числа могут распознаться неверно. Даты лучше записывать в формате ISO (ГГГГ-ММ-ДД), если приемник это поддерживает.
ПЗ
Практическое замечание

Выгрузка счета для электронного документооборота

Если в конфигурации внедрена подсистема обмена электронными документами (в типовых решениях это библиотека электронных документов), счет можно отправить контрагенту как структурированный электронный документ. В карточке документа появляется команда «ЭДО» или кнопка отправки электронного документа.

При отправке система формирует XML-файл по действующему формату, подписывает его при необходимости и передает через оператора ЭДО. Чтобы получить сам файл, откройте карточку электронного документа из панели обмена и используйте команду сохранения или выгрузки содержимого — в большинстве конфигураций она доступна в меню «Еще».

Этот вариант предпочтителен, когда файл нужен именно для юридически значимого обмена: формат соответствует требованиям, а контрагент гарантированно сможет загрузить документ в свою систему. Ограничение — требуется настроенное соглашение об обмене с контрагентом и подключение к оператору ЭДО.

Проверка результата и типичные ошибки

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

Контрольные точки помогают быстро отличить рабочий файл от поврежденного и не тратить время на разбор ошибок на стороне получателя.

Контрольные точки

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

Открытие файла в браузере или редакторе
Норма

Структура отображается без сообщений об ошибке разбора

Тревожный признак

Браузер сообщает об ошибке синтаксиса XML или файл пуст

Наличие ключевых данных
Норма

В файле видны номер, дата, контрагент и суммы счета

Тревожный признак

Реквизиты пусты или содержат служебные значения вместо данных

Пробная загрузка в копию базы
Норма

Документ создается, открывается и содержит те же суммы

Тревожный признак

Ошибка загрузки, дубли документа или расхождение сумм

Кодировка файла
Норма

Русские буквы отображаются корректно

Тревожный признак

Иероглифы или знаки вопроса вместо текста

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

Ограничения и альтернативы

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

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

Сравнение вариантов выгрузки

Сохранение печатной формы в XML

Быстро и без доработок, но передает только внешний вид, не пригодно для загрузки как документа

Обработка «Выгрузка и загрузка данных XML»

Переносит документ целиком между одинаковыми конфигурациями; требует совместимости структур баз

Программная запись XML

Полный контроль над структурой файла; требует навыков программирования и тестирования

Выгрузка через ЭДО

Файл по утвержденному формату для юридически значимого обмена; нужна настройка обмена и оператор ЭДО

Итог

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

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

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

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

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

Чем XML печатной формы отличается от XML данных документа?

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

Как загрузить XML-счет в другую базу 1С?

Используйте обработку «Выгрузка и загрузка данных XML» на вкладке «Загрузка» в базе-приемнике. Загрузка корректно работает при совместимых конфигурациях; для разных конфигураций нужны правила обмена, созданные в «Конвертации данных».

Почему в выгруженном файле вместо русских букв нечитаемые символы?

Причина — несовпадение кодировки файла и кодировки, в которой его открывают. При программной записи явно указывайте кодировку UTF-8, а при просмотре открывайте файл в редакторе, поддерживающем выбор кодировки.

Можно ли выгрузить сразу несколько счетов в один XML-файл?

Да. В обработке обмена данными добавьте в список выгрузки несколько документов или настройте отбор по периоду и контрагенту. При программной записи оберните выгрузку в цикл по выборке документов внутри одного корневого элемента.

Подойдет ли выгруженный XML для налоговой или банка?

Только если файл сформирован по формату, который принимает получатель. Произвольная выгрузка из 1С не соответствует утвержденным форматам; для официальной сдачи используйте регламентированные отчеты, ЭДО или специализированные обработки под конкретный формат.