Работа с форматами данных в 1С:Предприятие — одна из самых востребованных задач среди пользователей и разработчиков.hether выгружаете отчетность в Excel, настраиваете обмен с сайтом через JSON, или конвертируете старые данные из DBF в современные форматы — без понимания механизмов преобразования не обойтись. Проблема усложняется тем, что платформа 1С поддерживает десятки форматов, а способы их обработки зависят от версии конфигурации, операционной системы и даже настроек безопасности.
В этой статье мы разберем все актуальные сценарии изменения форматов — от ручной конвертации через встроенные инструменты до автоматизации с помощью скриптов. Особое внимание уделим типичным ошибкам (например, Ошибка преобразования типа при экспорте в XML) и нюансам работы с облачными версиями 1С. Если вы ранее сталкивались с проблемами при выгрузке данных или обмене с внешними системами, здесь найдете проверенные решения.
1. Какие форматы поддерживает 1С и когда их использовать
Платформа 1С:Предприятие 8 работает с более чем 15 форматами данных, но в повседневной практике чаще всего используются 5-6 из них. Выбор формата зависит от задачи:
- 📊 XLS/XLSX — для отчетов, которые нужно редактировать в Excel (например, управленческая отчетность для руководства). Поддерживает формулы, но может терять форматирование при сложных таблицах.
- 📄 PDF — для фиксированных документов (акты, счета), которые нельзя изменять. В 1С генерируется через внешние компоненты или печатные формы.
- 🔄 XML — универсальный формат для обмена данными между системами (например, выгрузка каталога товаров на сайт). Требует строгой структуры и валидации.
- 🗃️ JSON — легковесная альтернатива XML для веб-сервисов и API. Часто используется в интеграциях с Bitrix24, МойСклад и другими облачными сервисами.
- 💾 DBF/CDX — устаревшие форматы, которые до сих пор встречаются в legacy-системах. Поддержка в новых версиях 1С ограничена.
- 📎 CSV/TXT — простейшие текстовые форматы для массового импорта/экспорта (например, загрузка прайс-листов от поставщиков).
Важно: не все форматы доступны"из коробки". Например, для работы с JSON в 1С 8.3.10+ требуется подключить библиотеку ПомощникJSON, а экспорт в PDF часто реализуется через сторонние решения вроде FastReport или Stimulsoft.
2. Как изменить формат выгрузки отчетов (XLS, PDF, HTML)
Самая частая задача — смена формата уже сформированного отчета. Например, вам нужно отправить клиенту отчет в PDF, а по умолчанию он генерируется в XLS. Алгоритм действий зависит от типа отчета:
2.1. Стандартные отчеты (оборотно-сальдовая ведомость, карточка счета)
Для большинства стандартных отчетов формат меняется непосредственно при формировании:
- Откройте нужный отчет через меню
Отчеты → Стандартные отчеты. - Нажмите
Сформироватьи дождитесь генерации данных. - В окне предварительного просмотра выберите
Файл → Сохранить как. - В выпадающем списке
Тип файлаукажите нужный формат (PDF, XLSX, HTML или TXT).
⚠️ Внимание: При сохранении в PDF через стандартные средства 1С могут пропадать некоторые элементы форматирования (например, цветовые выделения ячеек). Если критично сохранение дизайна, используйте внешние печатные формы.
2.2. Произвольные отчеты (СКД, компоновщик)
Для отчетов, созданных в Системе компоновки данных (СКД), настройка форматов гибче:
- Откройте отчет и перейдите в режим редактирования (
Еще → Изменить вариант). - В настройках варианта отчета найдите вкладку
Вывод. - В разделе
Формат выводавыберите нужный вариант: Табличный документ (для XLS), HTML, Текст или Графическая схема (для PDF через виртуальный принтер). - Сохраните вариант и сформируйте отчет заново.
Проверить права доступа к каталогу выгрузки
Убедиться, что на ПК установлен Microsoft Office (для XLSX)
Отключить блокировщики всплывающих окон в браузере (для HTML)
Сверить версию 1С с поддерживаемыми форматами-->
2.3. Таблица совместимости форматов и версий 1С
| Формат | 1С 8.2 | 1С 8.3 (до 8.3.14) | 1С 8.3.15+ | 1С:Fresh |
|---|---|---|---|---|
| XLS | ✅ (через OLE) | ✅ | ✅ | ❌ (только XLSX) |
| XLSX | ❌ | ✅ (с 8.3.8) | ✅ | ✅ |
| ❌ (только через сторонние компоненты) | ⚠️ (частично, через виртуальный принтер) | ✅ (встроенная поддержка) | ✅ | |
| JSON | ❌ | ⚠️ (требует ПомощникJSON) |
✅ (встроенные методы) | ✅ |
🔹 Ключевой вывод: Для современных задач рекомендуется использовать 1С 8.3.15+ — в этих версиях максимальная поддержка форматов без дополнительных компонент.
3. Конвертация данных между форматами (XML ↔ JSON, DBF ↔ XLS)
Когда требуется не просто выгрузить отчет, а преобразовать данные из одного формата в другой (например, получить JSON из XML для API), стандартных средств 1С может не хватить. Рассмотрим двачных сценария:
3.1. Преобразование XML в JSON
Эта задача актуальна при интеграции с веб-сервисами. Например, вы выгружаете каталог товаров в XML для 1С-Битрикс, но сервис требует JSON. Решение:
- Используйте встроенный механизм
ЧтениеXMLиЗаписьJSON(доступен с 1С 8.3.10):ЧтениеXML = Новый ЧтениеXML;ЧтениеXML.ОткрытьФайл("C:\data.xml");
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ОткрытьФайл("C:\data.json");
Пока ЧтениеXML.Прочитать Цикл
ЗаписьJSON.ЗаписатьЗначение(ЧтениеXML.Значение);
КонецЦикла;
- Для сложных структур (вложенные объекты) используйте библиотеку ПомощникJSON:
ПомощникJSON = Новый ПомощникJSON;Результат = ПомощникJSON.ПрочитатьXML(ФайлXML);
ПомощникJSON.ЗаписатьJSON(ФайлJSON, Результат);
⚠️ Внимание: При конвертации XML → JSON теряются атрибуты узлов (они преобразуются в свойства объектов). Если атрибуты критичны, их нужно обрабатывать отдельно.
3.2. Перенос данных из DBF в XLS/XLSX
DBF — устаревший формат, но его еще можно встретить в старых базах 1С 7.7 или внешних системах. Для конвертации:
- Используйте обработку
ВыгрузкаЗагрузкаДанныхXML(поставляется с платформой):- Выберите источник DBF.
- Укажите целевой формат XLSX.
- Настройте соответствие полей (если структуры таблиц отличаются).
COMОбъект("Excel.Application"):
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open("C:\data.dbf");
Книга.SaveAs("C:\data.xlsx", 51); // 51 - формат XLSX
Excel.Quit;
Что делать если 1С не видит DBF-файл?
Если при попытке открыть DBF вы получаете ошибку Файл поврежден или имеет неверный формат, проверьте:
1. Кодировку файла (должна быть DOS/OEM 866 для русскоязычных баз).
2. Версию DBF (1С работает с версиями 3 и 4; файл версии 7 не откроется).
3. Наличие файлов .CDX (индексы) — их нужно скопировать вместе с .DBF.
Если проблема сохраняется, используйте внешние утилиты вроде DBF Viewer для предварительной конвертации.
4. Изменение форматов обмена данными (EnterpriseData, CommerceML)
Форматы обмена данными в 1С стандартизированы, но их настройка часто вызывает сложности. Рассмотрим два самых распространенных стандарта:
4.1. EnterpriseData (для обмена между конфигурациями 1С)
Формат EnterpriseData используется для обмена между разными базами 1С (например, 1С:Бухгалтерия и 1С:ЗУП). Чтобы изменить его версию или структуру:
- Откройте обработку
УниверсальныйОбменДаннымиXML. - В настройках обмена выберите
Формат обмена → EnterpriseData. - Укажите версию схемы (актуальная на 2026 год —
2.1.10.1). - При необходимости отредактируйте
ПравилаОбмена(например, добавьте новые реквизиты).
🔹 Полезный совет: Если при обмене возникает ошибка Несоответствие версии формата, скачайте актуальную схему EnterpriseData с сайта 1С:ИТС и обновите правила обмена.
4.2. CommerceML (для интеграции с сайтами)
Формат CommerceML применяется для синхронизации с интернет-магазинами (например, 1С-Битрикс, CS-Cart). Чтобы изменить его параметры:
- Откройте обработку
ВыгрузкаДанныхНаСайт. - В настройках выберите
Формат обмена → CommerceML 2.0. - Укажите:
- Кодировку (
UTF-8илиWindows-1251). - Флаг
Выгружать картинки(если нужно передавать изображения товаров). - Глубину выгрузки каталога (например, только измененные товары).
- Кодировку (
- Сохраните настройки и выполните тестовую выгрузку.
- 🚨 Ошибка"Не удалось сохранить файл" при экспорте в XLSX:
Причина: отсутствует Microsoft Office или права на запись в папку.
Решение: Установите Office 2010+ или используйте альтернативные библиотеки вроде EPPlus (требует
.NET). - 🚨 "Недопустимый символ" в JSON/XML:
Причина: в данных есть символы, недопустимые для формата (например,
в JSON).Решение: Очистите данные с помощью
СтрЗаменитьили функцииЭкранироватьСтроку. - 🚨 Пустой файл после конвертации:
Причина: неверные права доступа или блокировка антивирусом.
Решение: Проверьте исключения в антивирусе и запустите 1С от имени администратора.
- 🚨 "Несоответствие схемы" в EnterpriseData:
Причина: версия формата в правилах обмена устарела.
Решение: Обновите схему EnterpriseData через 1С:ИТС.
- ✅ Поддерживаемые форматы: XLSX, PDF, JSON, XML. Формат XLS не доступен.
- ⚠️ Ограничения:
- Нет доступа к файловой системе — выгрузка только через
HTTPили 1С:Диск. - Для PDF требуется подключение внешнего сервиса печатных форм.
- Размер выгружаемого файла ограничен 50 МБ (для тарифа"Старт").
- Нет доступа к файловой системе — выгрузка только через
- 🔧 Решения для обхода ограничений:
- Используйте 1С:EDT для создания обработок, которые разбивают большие файлы на части.
- Для DBF настройте промежуточный сервер с конвертером (например, на Python).
| Параметр | EnterpriseData | CommerceML |
|---|---|---|
| Основное применение | Обмен между базами 1С | Интеграция с сайтами |
| Поддержка версий | 2.0, 2.1 | 2.0 (актуальная) |
| Требует ли доработок | Редко (стандартные правила) | Часто (настройка структуры каталога) |
| Поддержка мультимедиа | ❌ | ✅ (картинки, PDF-инструкции) |
⚠️ Внимание: При изменении форматов обмена всегда тестируйте процесс на копии базы. Ошибки в правилах обмена (например, неверное сопоставление справочников) могут привести к дублированию данных или потере связей между объектами.
5. Автоматизация изменения форматов с помощью скриптов
Ручная конвертация утомительна, если приходится обрабатывать сотни файлов. Для автоматизации используйте скрипты на встроенном языке 1С или PowerShell (для Windows). Примеры:
5.1. Пакетная конвертация XLS в XLSX
Если у вас папка с сотнями файлов XLS, которые нужно преобразовать в XLSX:
Каталог ="C:\Отчеты\";
Файлы = НайтиФайлы(Каталог +"*.xls");
Для Каждого Файл Из Файлы Цикл
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open(Файл.ПолноеИмя);
НовоеИмя = СтрЗаменить(Файл.ПолноеИмя,".xls",".xlsx");
Книга.SaveAs(НовоеИмя, 51); // 51 = формат XLSX
Книга.Close;
Excel.Quit;
КонецЦикла;
5.2. Генерация JSON из запроса 1С
Чтобы сразу получить данные запроса в формате JSON (например, для передачи в API):
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
Товары.Ссылка КАК Ссылка,
Товары.Артикул КАК Артикул
ИЗ Справочник.Товары КАК Товары";
РезультатЗапроса = Запрос.Выполнить;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку;
ЗаписьJSON.ЗаписатьНачалоОбъекта;
ЗаписьJSON.ЗаписатьСвойство("Товары");
ЗаписьJSON.ЗаписатьНачалоМассива;
Пока РезультатЗапроса.Следующий Цикл
ЗаписьJSON.ЗаписатьНачалоОбъекта;
ЗаписьJSON.ЗаписатьСвойство("Ссылка", РезультатЗапроса.Ссылка);
ЗаписьJSON.ЗаписатьСвойство("Артикул", РезультатЗапроса.Артикул);
ЗаписьJSON.ЗаписатьКонецОбъекта;
КонецЦикла;
ЗаписьJSON.ЗаписатьКонецМассива;
ЗаписьJSON.ЗаписатьКонецОбъекта;
JSONСтрока = ЗаписьJSON.Закрыть;
// Сохраняем в файл
Текст = Новый ЗаписьТекста("C:\товары.json");
Текст.ЗаписатьСтроку(JSONСтрока);
Текст.Закрыть;
🔹 Ключевой вывод: Автоматизация экономит часы работы, но требует тестирования. Например, при пакетной конвертации XLS → XLSX проверяйте итоговые файлы на корректность формул и форматирования.
6. Типичные ошибки и их решения
При изменении форматов в 1С пользователи сталкиваются с одинаковыми проблемами. Вот самые распространенные ошибки и способы их исправления:
Если при выгрузке в PDF пропадают кириллические символы, проверьте шрифты в настройках виртуального принтера. Добавьте шрифт Arial Unicode MS или DejaVu Sans.
7. Особенности работы с форматами в облачной 1С (1С:Fresh)
1С:Fresh — облачная версия платформы, и здесь есть свои нюансы при работе с форматами:
⚠️ Внимание: В 1С:Fresh нельзя подключать COM-объекты (например, Excel.Application). Для работы с XLSX используйте встроенные методы или REST API.
FAQ: Частые вопросы по изменению форматов в 1С
Можно ли в 1С 8.2 сохранить отчет в PDF без дополнительных компонент?
Нет, в 1С 8.2 нет встроенной поддержки PDF. Вам потребуется:
- Установить виртуальный принтер (например, CutePDF).
- Использовать внешнюю компоненту 1С:Печать форм.
- Написать обработку с вызовом
COM-объектадля конвертации.
Для современных задач рекомендуем обновиться до 1С 8.3.15+, где поддержка PDF реализована нативно.
Как исправить ошибку"Файл поврежден" при открытии выгруженного XLSX?
Эта ошибка возникает из-за:
- Неполной выгрузки (файл не закрыт корректно).
- Конфликта версий Excel (файл сохранен в XLSX, но открывается в Excel 2003).
- Повреждения данных при передаче по сети.
Решения:
- Проверьте файл на другом ПК с актуальным Excel.
- Используйте LibreOffice Calc для восстановления.
- В обработке выгрузки добавьте явное закрытие файла:
Excel.ActiveWorkbook.Close(True).
Какие форматы поддерживает обмен с МойСклад?
МойСклад работает с:
- JSON (рекомендуемый формат для API).
- XML (устаревший, но поддерживается для совместимости).
- CSV (только для импорта справочников).
Для настройки обмена:
- В 1С используйте обработку
ОбменСМойСклад(доступна на Инфостарт). - В МойСклад настройте Webhook для автоматического приема данных.
Как изменить кодировку при выгрузке в XML/JSON?
По умолчанию 1С сохраняет файлы в кодировке UTF-8, но иногда требуется Windows-1251 (например, для старых систем). Чтобы поменять кодировку:
Текст = Новый ЗаписьТекста("C:\data.xml", КодировкаТекста.Windows);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку(Текст);
Для JSON кодировка указывается аналогично:
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ЗаписьТекста("C:\data.json", КодировкаТекста.UTF8));
Можно ли в 1С конвертировать PDF в Word или Excel?
Нет, в 1С нет встроенных инструментов для распознавания PDF. Варианты решений:
- Использовать внешние сервисы (например, Adobe Acrobat API).
- Написать обработку с вызовом Python-скрипта (библиотека
PyPDF2). - Ручной экспорт через Excel:
Данные → Из PDF(доступно в Excel 2016+).