Экспорт отчетов из 1С:Предприятие в формат XML — стандартная задача для бухгалтеров, аналитиков и разработчиков, работающих с интеграцией систем. XML-универсальный язык разметки, который позволяет обмениваться структурированными данными между 1С, государственными сервисами (например, ФНС или ПФР), банками, CRM-системами и другими программами. Однако не все пользователи знают, что в 1С есть несколько способов сохранить отчет в XML — от простого ручного экспорта до автоматизированных скриптов.
В этой статье разберем все актуальные методы: через интерфейс программы, с помощью встроенного языка 1С:Предприятие, а также нюансы настройки структуры XML-файла. Особое внимание уделим типичным ошибкам — например, почему экспортированный файл может оказаться пустым или с искаженными данными. Материал будет полезен как начинающим пользователям, так и опытным специалистам, которые хотят оптимизировать процесс обмена данными.
Прежде чем приступить, убедитесь, что ваша версия 1С поддерживает экспорт в XML. В устаревших редакциях (ниже 8.3.6) некоторые функции могут отсутствовать или работать иначе. Если вы используете облачную версию 1С:Фреш, проверьте наличие прав на экспорт данных — в корпоративных тарифах они могут быть ограничены.
1. Экспорт отчета в XML через пользовательский интерфейс
Самый простой способ — сохранить отчет в XML непосредственно из окна просмотра. Этот метод не требует знания программирования и подходит для разовых задач. Рассмотрим пошаговую инструкцию на примере отчета "Оборотно-сальдовая ведомость":
- Сформируйте отчет. Откройте нужный отчет через меню
Отчеты → Стандартные отчеты(или через раздел бухгалтерии/склада, в зависимости от конфигурации). Задайте период и параметры отбора, нажмитеСформировать. - Экспортируйте данные. В открывшемся окне отчета найдите кнопку
Ещё(илиДействияв старых версиях) и выберитеСохранить как...илиЭкспорт.... - Выберите формат. В списке доступных форматов укажите
XML (*.xml). При необходимости отметьте галочкойСохранять настройки отчета, если хотите экспортировать не только данные, но и параметры формирования. - Сохраните файл. Задайте имя файла (например,
ОСВ_январь_2026.xml) и укажите папку для сохранения. НажмитеСохранить.
Готовый файл будет содержать данные отчета в структурированном виде. Однако у этого метода есть ограничения:
- 📌 Нет гибкой настройки структуры XML — экспортируются только те данные, которые отображаются в отчете на экране.
- 📌 Отсутствует контроль над кодировкой — в редких случаях русские символы могут отображаться некорректно (решается пересохранением в UTF-8 через текстовый редактор).
- 📌 Не поддерживаются сложные иерархические отчеты — например, многомерные аналитические выборки.
Если в экспортированном XML вместо кириллицы отображаются знаки "???", откройте файл в Notepad++ и перекодируйте его в UTF-8 без BOM через меню Кодировки → Преобразовать в UTF-8.
2. Сохранение отчета в XML с помощью встроенного языка 1С
Для автоматизации экспорта или настройки структуры XML используется встроенный язык 1С:Предприятие. Этот метод требует базовых знаний программирования, но дает полный контроль над процессом. Ниже приведен универсальный код, который подходит для большинства отчетов:
// Получаем объект отчета
Отчет = Отчеты.ОборотноСальдоваяВедомость.Создать();
// Задаем параметры (период, организация и т.д.)
Отчет.Период = ТекущаяДата();
Отчет.Организация = Справочники.Организации.НайтиПоНаименованию("ООО Ромашка");
// Формируем отчет в таблицу значений
ТаблицаДанных = Отчет.Сформировать();
// Создаем объект для записи XML
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Отчеты\ОСВ_экспорт.xml", "UTF-8");
// Записываем заголовок XML
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("ОтчетОСВ");
ЗаписьXML.ЗаписатьАтрибут("Дата", ТекущаяДата());
ЗаписьXML.ЗаписатьАтрибут("Организация", Отчет.Организация.Наименование);
// Записываем данные из таблицы
Для Каждого Строка Из ТаблицаДанных Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("Строка");
ЗаписьXML.ЗаписатьАтрибут("Счет", Строка.Счет);
ЗаписьXML.ЗаписатьАтрибут("СальдоНачальное", Строка.СальдоНачальное);
ЗаписьXML.ЗаписатьАтрибут("ОборотДебет", Строка.ОборотДебет);
ЗаписьXML.ЗаписатьАтрибут("ОборотКредит", Строка.ОборотКредит);
ЗаписьXML.ЗаписатьКонецЭлемента(); // Закрываем тег "Строка"
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); // Закрываем тег "ОтчетОСВ"
ЗаписьXML.Закрыть();
Этот скрипт создает XML-файл со следующей структурой:
<?xml version="1.0" encoding="UTF-8"?>
<ОтчетОСВ Дата="2026-01-15" Организация="ООО Ромашка">
<Строка Счет="60.01" СальдоНачальное="10000" ОборотДебет="5000" ОборотКредит="3000"/>
<Строка Счет="62.01" СальдоНачальное="20000" ОборотДебет="8000" ОборотКредит="6000"/>
</ОтчетОСВ>
Преимущества программного экспорта:
- 🔧 Гибкая настройка структуры — можно добавлять произвольные теги, атрибуты и вложенные элементы.
- 🔄 Автоматизация — скрипт можно запускать по расписанию или привязать к кнопке в интерфейсе.
- 📊 Фильтрация данных — перед экспортом можно отобрать только нужные строки (например, по организации или периоду).
Определите путь сохранения файла (проверьте права доступа)
Создайте резервную копию базы перед массовым экспортом
Проверьте кодировку (рекомендуется UTF-8)
Тестируйте скрипт на копии базы, а не на рабочей версии-->
3. Экспорт отчета в XML через внешние обработки
Если вам нужно регулярно экспортировать отчеты в XML по единому шаблону, но писать код с нуля не хочется, можно использовать внешние обработки. Это готовые решения, которые подключаются к 1С и расширяют ее функционал. Популярные варианты:
| Обработка | Назначение | Особенности | Где скачать |
|---|---|---|---|
| Универсальный экспорт в XML | Экспорт любых отчетов и справочников | Поддерживает XSD-схемы, настройку шаблонов | Инфостарт, 1С-Софт |
| Выгрузка данных для ФНС | Формирование XML для налоговой отчетности | Автоматическая проверка на ошибки | Официальный каталог 1С |
| Обмен с банками | Экспорт платежных поручений в XML | Поддерживает форматы СБП, SWIFT | Партнерские решения |
Как подключить внешнюю обработку:
- Скачайте файл обработки (
.epfили.erf) с проверенного источника (например, Инфостарт или официальный сайт 1С). - В 1С откройте меню
Файл → Открыть...и выберите скачанный файл. - Запустите обработку и следуйте инструкциям на экране. Обычно требуется указать отчет для экспорта, путь сохранения и параметры XML.
Предупреждение: внешние обработки могут содержать вредоносный код. Всегда проверяйте источник и запускайте их сначала в тестовой базе. Особенно это касается бесплатных решений с неизвестных форумов.
Как проверить обработку на безопасность?
Перед подключением откройте файл .epf в текстовом редакторе и поищите подозрительные команды (например, ВыполнитьКоманду с внешними ссылками). Также можно использовать антивирусные сканеры для 1С, такие как 1C:AntiVirus или Dr.Web для 1С.
4. Настройка структуры XML: XSD-схемы и пространства имен
Если экспортированный XML будет использоваться для обмена с внешними системами (например, Госуслуги, СберБизнес или Контур.Диадок), его структура должна соответствовать определенным стандартам. Для этого применяются XSD-схемы — файлы, описывающие правила формирования XML.
Пример XSD-схемы для простого отчета:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ОтчетОСВ">
<xs:complexType>
<xs:sequence>
<xs:element name="Строка" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Счет" type="xs:string" use="required"/>
<xs:attribute name="СальдоНачальное" type="xs:decimal"/>
<xs:attribute name="ОборотДебет" type="xs:decimal"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Дата" type="xs:date" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
Чтобы привязать XSD к экспортируемому XML, добавьте в код 1С следующие строки:
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("ОтчетОСВ");
ЗаписьXML.ЗаписатьАтрибут("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
ЗаписьXML.ЗаписатьАтрибут("xsi:noNamespaceSchemaLocation", "ОСВ.xsd");
Это укажет, что XML соответствует схеме ОСВ.xsd, лежащей в той же папке. Если структура XML не совпадает со схемой, внешняя система (например, банк) откажет в приеме файла.
Использование XSD-схем обязательно при обмене с государственными системами (ФНС, ПФР, Росстат). Без валидации по схеме файл может быть отклонен с ошибкой "Несоответствие структуре".
5. Типичные ошибки при экспорте отчетов в XML и их решения
Даже опытные пользователи 1С сталкиваются с проблемами при сохранении отчетов в XML. Рассмотрим самые распространенные ошибки и способы их устранения:
| Ошибка | Причина | Решение |
|---|---|---|
| Файл XML пустой или содержит только заголовок | Отчет не сформирован или данные не выбраны | Проверьте параметры отчета (период, организацию, отборы). Запустите формирование заново. |
| Русские символы отображаются как "???" | Некорректная кодировка (например, Windows-1251 вместо UTF-8) |
Укажите кодировку явно: ЗаписьXML.ОткрытьФайл(..., "UTF-8"). Пересохраните файл в Notepad++. |
| Ошибка "Нет прав на запись в файл" | Ограничения операционной системы или антивируса | Сохраняйте файл в папку с полными правами (например, C:\Temp). Отключите антивирус на время экспорта. |
| XML не проходит валидацию во внешней системе | Несоответствие структуры XSD-схеме | Проверьте XML через валидаторы (например, XML Validator). Сравните со схемой. |
Если вы используете облачную версию 1С:Фреш, учтите, что некоторые функции экспорта могут быть ограничены. Например, сохранение файлов на локальный диск часто блокируется по соображениям безопасности. В этом случае:
- 🔹 Используйте внешние облачные хранилища (Яндекс.Диск, Google Drive), подключенные к 1С:Фреш.
- 🔹 Настройте автоматическую отправку XML по email через встроенные механизмы.
- 🔹 Обратитесь в поддержку 1С для расширения прав доступа (требуется корпоративный тариф).
Чтобы быстро проверить XML на ошибки, используйте онлайн-сервисы вроде XML Validation (https://www.xmlvalidation.com/). Загрузите файл и укажите XSD-схему (если есть) для автоматической проверки.
6. Автоматизация экспорта: расписания и регламентные задания
Если отчеты нужно экспортировать в XML регулярно (например, ежедневно или по окончании месяца), целесообразно настроить регламентные задания. Это позволит избежать рутинных действий и снизит риск ошибок.
Инструкция по настройке регламентного задания:
- Откройте
Администрирование → Поддержка и обслуживание → Регламентные задания. - Создайте новое задание с типом
Выполнение кода. - В поле
Кодвставьте скрипт экспорта (см. раздел 2). Замените пути и параметры на актуальные. - Укажите расписание (например,
Ежедневно в 23:00). - Сохраните задание и включите его выполнение.
Для более сложных сценариев (например, экспорт нескольких отчетов с последующей отправкой по email) можно использовать внешние планировщики, такие как:
- 🕒 Планировщик задач Windows — для запуска
1С:Предприятиев фоновом режиме. - ⚙️ 1С:Рарус — специализированное решение для автоматизации обменов.
- ☁️ 1С:Link — облачный сервис интеграции.
При автоматизации учитывайте:
⚠️ Внимание: Регламентные задания в 1С выполняются от имени пользователя, который их создал. Если этот пользователь будет удален или лишен прав, задания перестанут работать. Рекомендуется создавать отдельного технического пользователя с минимальными правами только на экспорт данных.
7. Альтернативные форматы: JSON, XLSX, PDF
XML — не единственный формат для экспорта отчетов из 1С. В зависимости от задачи могут быть полезны и другие варианты:
| Формат | Когда использовать | Преимущества | Недостатки |
|---|---|---|---|
| JSON | Обмен с веб-сервисами, мобильными приложениями | Компактный, легко парсится в JavaScript/Python | Не поддерживает схемы валидации (в отличие от XML) |
| XLSX (Excel) | Ручной анализ данных, презентации | Удобно для визуализации, поддержка формул | Большой размер файла, сложно автоматизировать |
| Официальные документы, архивное хранение | Сохраняет форматирование, защищен от изменений | Нельзя редактировать или импортировать обратно | |
| CSV | Импорт в другие программы (например, 1С:ЗУП) | Простота, совместимость с большинством систем | Нет структуры, проблемы с кодировкой |
Чтобы экспортировать отчет в JSON, замените в коде ЗаписьXML на ЗаписьJSON:
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ОткрытьФайл("C:\Отчеты\ОСВ.json");
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьЗначение("Дата", ТекущаяДата());
ЗаписьJSON.ЗаписатьНачалоМассива("Строки");
Для Каждого Строка Из ТаблицаДанных Цикл
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьЗначение("Счет", Строка.Счет);
ЗаписьJSON.ЗаписатьЗначение("Сальдо", Строка.СальдоНачальное);
ЗаписьJSON.ЗаписатьКонецОбъекта();
КонецЦикла;
ЗаписьJSON.ЗаписатьКонецМассива();
ЗаписьJSON.ЗаписатьКонецОбъекта();
ЗаписьJSON.Закрыть();
Результат:
{
"Дата": "2026-01-15",
"Строки": [
{"Счет": "60.01", "Сальдо": 10000},
{"Счет": "62.01", "Сальдо": 20000}
]
}
FAQ: Частые вопросы по экспорту отчетов в XML
Можно ли экспортировать в XML отчет с группировками и иерархией?
Да, но стандартный экспорт через интерфейс сохраняет только "плоскую" структуру (без вложенных групп). Для сохранения иерархии используйте программный код с рекурсивной обработкой групп. Пример:
Процедура ЗаписатьГруппу(ЗаписьXML, Группа)
ЗаписьXML.ЗаписатьНачалоЭлемента("Группа");
ЗаписьXML.ЗаписатьАтрибут("Наименование", Группа.Наименование);
Для Каждого Элемент Из Группа.Элементы Цикл
Если Элемент.ЭтоГруппа Тогда
ЗаписатьГруппу(ЗаписьXML, Элемент);
Иначе
ЗаписьXML.ЗаписатьНачалоЭлемента("Строка");
ЗаписьXML.ЗаписатьАтрибут("Счет", Элемент.Счет);
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецПроцедуры
Как экспортировать отчет в XML с цифровой подписью?
Для добавления электронной подписи (ЭП) в XML используйте криптографические библиотеки 1С, такие как ПодписьXML. Пример:
Подпись = Новый ПодписьXML;
Подпись.УстановитьСертификат(Сертификат);
Подпись.ПодписатьФайл("C:\Отчеты\ОСВ.xml", "C:\Отчеты\ОСВ_подписанный.xml");
Сертификат должен быть загружен в 1С заранее через Администрирование → Настройки программы → Сертификаты.
Почему при экспорте в XML теряются десятичные разряды (например, 1000.50 становится 1000)?summary>
Это связано с настройками точности чисел в 1С. Перед экспортом явно укажите формат:
ЗаписьXML.ЗаписатьАтрибут("Сумма", Формат(Строка.Сумма, "ЧДЦ=2; ЧРД=."));
Где ЧДЦ=2 — количество знаков после запятой, ЧРД=. — разделитель.
ЗаписьXML.ЗаписатьАтрибут("Сумма", Формат(Строка.Сумма, "ЧДЦ=2; ЧРД=."));ЧДЦ=2 — количество знаков после запятой, ЧРД=. — разделитель.Можно ли экспортировать в XML данные из нескольких отчетов в один файл?
Да, для этого:
- Сформируйте каждый отчет отдельно и сохраните данные в
ТаблицуЗначений. - Объедините таблицы с помощью
ОбъединитьТаблицы(). - Экспортируйте объединенные данные в XML по общей схеме.
Пример объединения двух отчетов:
Таблица1 = Отчет1.Сформировать();
Таблица2 = Отчет2.Сформировать();
ОбъединеннаяТаблица = Новый ТаблицаЗначений;
ОбъединеннаяТаблица.Колонки.Добавить("Данные", Новый ОписаниеТипов("Строка"));
// Добавляем данные из обоих отчетов
...
Как проверить, что XML-файл соответствует требованиям ФНС?
Используйте официальный валидатор ФНС (доступен на сайте nalog.ru в разделе "Электронная отчетность"). Также можно:
- 🔍 Проверить XML через Контур.Диадок (есть бесплатный тестовый режим).
- 📋 Воспользоваться обработкой "Проверка XML для ФНС" из каталога 1С.
- 📧 Отправить тестовый файл в личный кабинет налогоплательщика и дождаться ответа системы.
⚠️ Внимание: Требования ФНС к структурам XML могут меняться ежеквартально. Всегда сверяйтесь с актуальными схемами на сайте налоговой службы перед отправкой отчетности.