Документы и Печать · 10 мин
Как отправить XML-файл через 1С
Как отправить XML-файл через 1С: выгрузка документа в XML, отправка по почте, через ЭДО и программным кодом. Проверка результата, ошибки и FAQ для пользователей 1С.
XML — стандартный формат обмена данными между конфигурациями 1С, а также между 1С и внешними системами: банками, операторами ЭДО, сайтами и государственными сервисами. Отправить XML-файл из 1С можно несколькими способами, и выбор зависит от задачи: разовая передача документа контрагенту, регулярный юридически значимый обмен или выгрузка данных для загрузки в другую базу.
В типовых конфигурациях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) уже встроены механизмы формирования XML: выгрузка электронных документов по форматам ФНС, обмен с банками, универсальная выгрузка данных. Дополнительно файл можно отправить программно — через встроенный язык 1С, если требуется автоматизация.
Ниже разобраны четыре рабочих сценария: отправка через ЭДО, выгрузка документа в XML и отправка по почте, универсальная выгрузка данных между базами и программная отправка. Для каждого указаны условия применения, порядок действий и способ проверить результат.
Способ 1. Отправка XML через обмен электронными документами (ЭДО)
ЭДО — штатный механизм типовых конфигураций, при котором 1С сама формирует XML-документ по утверждённому формату (например, УПД или счёт-фактуру) и передаёт его контрагенту через оператора ЭДО. Это единственный способ, при котором XML имеет юридическую силу без бумажного дубликата.
Для работы потребуется: подключённый сервис 1С-ЭДО или договор с другим оператором, действующая электронная подпись и настроенное приглашение контрагента. Проверить готовность можно в разделе «Настройки ЭДО» — там отображается статус учётной записи и список контрагентов, с которыми установлен обмен.
- 1Откройте проведённый документ (реализацию, счёт-фактуру или акт)
- 2Нажмите кнопку «ЭДО» или «Отправить по ЭДО» в командной панели документа
- 3Проверьте сформированный электронный документ в карточке ЭДО
- 4Подтвердите отправку — документ будет подписан и передан оператору
- 5Дождитесь смены статуса на «Доставлен» или «Подтверждён контрагентом»
Признак успешной отправки — статус «Доставлен» в журнале электронных документов и извещение о получении от оператора. Если статус завис на «Ожидает подписи» или «Ошибка», откройте карточку документа: там указана причина, чаще всего это истёкший сертификат подписи или неподтверждённое приглашение контрагента.
Способ 2. Выгрузить документ в XML и отправить по электронной почте
Если юридическая значимость не требуется и нужно просто передать файл, выгрузите документ в XML и отправьте его как вложение письма. В типовых конфигурациях команда выгрузки находится в меню «Ещё» документа — пункты «Выгрузить», «Выгрузить в XML» или «Электронные документы → Выгрузить в файл».
После выгрузки 1С сохранит файл в выбранную папку. Далее его можно отправить через встроенную почту 1С: если настроена учётная запись электронной почты (раздел «Администрирование → Органайзер → Настройки системной учётной записи»), файл прикрепляется к письму прямо из программы. Иначе отправьте файл через обычный почтовый клиент.
Проверьте файл перед отправкой: откройте его в браузере или текстовом редакторе — содержимое должно начинаться с объявления <?xml version="1.0"?> и содержать читаемую структуру документа. Пустой файл или файл нулевого размера означает сбой выгрузки.
Способ 3. Универсальная выгрузка данных между базами 1С
Для переноса данных между двумя базами 1С (например, справочников или документов из рабочей базы в тестовую) используется типовая обработка «Выгрузка и загрузка данных XML». Она находится в разделе «Администрирование → Перенос данных» или открывается как внешняя обработка.
Обработка работает по правилам обмена: сначала выбирается файл правил (для идентичных конфигураций подходят стандартные правила конвертации), затем отмечаются выгружаемые объекты и период. Результат — один XML-файл, который передаётся адресату и загружается в целевую базу той же обработкой на стороне получателя.
Ограничение способа: правила обмена должны соответствовать версиям конфигураций обеих баз. Выгрузка из базы с сильно отличающейся версией без корректировки правил почти гарантированно даст ошибки при загрузке.
Способ 4. Программная отправка XML из 1С
Когда файл нужно отправлять регулярно и автоматически, используют встроенный язык 1С. Типовая схема: сформировать XML через объекты ЗаписьXML или выгрузку объекта, сохранить во временный файл и отправить — по почте через ИнтернетПочта или по HTTP через HTTPСоединение.
// Отправка XML-файла по HTTP
Соединение = Новый HTTPСоединение("server.example.com");
Запрос = Новый HTTPЗапрос("/upload");
Запрос.УстановитьИмяФайлаТела("C:\temp\document.xml");
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния <> 200 Тогда
ВызватьИсключение "Ошибка отправки: " + Ответ.КодСостояния;
КонецЕсли;Для отправки по почте программным способом используется профиль ИнтернетПочтовыйПрофиль и объект ИнтернетПочтовоеСообщение, к которому файл прикрепляется как вложение. Такой код обычно оформляют регламентным заданием, чтобы отправка выполнялась по расписанию без участия пользователя.
Программный способ требует прав на изменение конфигурации или подключения внешних обработок. Если у вас нет доступа разработчика, поручите эту задачу специалисту по 1С — самостоятельная правка кода в рабочей базе может нарушить её обновление.
Как выбрать подходящий способ
Как выбрать действие
При выборе учитывайте и объём данных: почтовые серверы ограничивают размер вложений (обычно 20–25 МБ), поэтому большие выгрузки лучше передавать через ЭДО, HTTP-обмен или файловый ресурс. Сжатие XML в ZIP-архив заметно уменьшает размер — текстовый формат хорошо сжимается.
Проверка результата и типичные ошибки
Как проверить результат
«Доставлен» или «Подтверждён»
«Ошибка», зависание на «Ожидает подписи»
Читаемая структура, корректные данные документа
Пустой файл, обрыв текста, ошибка разбора XML
Объекты созданы, отчёт о загрузке без ошибок
Ошибки правил конвертации, задвоение элементов
Код состояния 200
Коды 4xx/5xx или тайм-аут соединения
Если файл не открывается у получателя, первым делом проверьте кодировку: 1С по умолчанию записывает XML в UTF-8, и проблемы возникают, когда сторонняя система ожидает другую кодировку. Вторая частая причина — несоответствие формата: XML для ЭДО, XML обмена данными и XML банковских выписок — разные форматы, несовместимые между собой.
Ограничения и меры предосторожности
XML-файлы с данными контрагентов, суммами сделок и персональными данными сотрудников относятся к конфиденциальной информации. Передавайте их только по защищённым каналам: через оператора ЭДО, по HTTPS или с шифрованием архива. Отправка таких файлов через открытые мессенджеры и публичные файлообменники создаёт риск утечки.
При программной отправке храните пароли и токены доступа не в коде, а в защищённых настройках или безопасном хранилище — иначе учётные данные станут доступны всем, кто может открыть модуль. Также ограничьте права на выполнение внешних обработок, чтобы выгрузку данных могли запускать только ответственные сотрудники.
Что важно запомнить
Для юридически значимого обмена используйте ЭДО, для разовой передачи — выгрузку в XML с отправкой по почте, для переноса между базами — обработку «Выгрузка и загрузка данных XML», для регулярной отправки — программный код с регламентным заданием. Всегда проверяйте статус доставки или содержимое файла и делайте резервную копию перед загрузкой данных в рабочую базу.
Частые вопросы
Можно ли отправить XML из 1С без подключения ЭДО?
Да. Выгрузите документ в XML через команду в меню «Ещё» и отправьте файл по электронной почте. Но такой файл не будет юридически значимым документом — для официального обмена счетами-фактурами и УПД ЭДО обязателен.
Чем отличается XML из ЭДО от XML обработки «Выгрузка и загрузка данных»?
Это разные форматы с разной структурой. XML из ЭДО соответствует утверждённым форматам ФНС и предназначен для обмена с контрагентами, а XML обработки переноса данных содержит внутренние объекты базы и загружается только в другую базу 1С по правилам конвертации.
Почему получатель не может открыть отправленный XML?
Чаще всего причины две: файл повреждён при передаче (проверьте его размер и откройте сами перед отправкой) или система получателя ожидает другой формат либо кодировку. Уточните у получателя требования к формату и при необходимости переформируйте выгрузку.
Как отправить XML автоматически по расписанию?
Настройте регламентное задание с кодом на встроенном языке: формирование XML через ЗаписьXML или выгрузку объекта и отправку через ИнтернетПочту или HTTPСоединение. Для этого нужны права разработчика или помощь специалиста по 1С.
Какой максимальный размер XML-файла можно отправить?
Жёсткого ограничения в самой 1С нет — ограничивает канал доставки. Почтовые серверы обычно принимают вложения до 20–25 МБ, поэтому большие файлы сжимайте в ZIP или передавайте через ЭДО либо HTTP-обмен, где пределы заметно выше.
Безопасно ли отправлять XML с данными контрагентов по почте?
Обычная почта не шифрует вложения, поэтому файл с коммерческими или персональными данными лучше защитить: упаковать в архив с паролем и передать пароль другим каналом. Для регулярного обмена безопаснее ЭДО или HTTPS-интеграция.