Экспорт данных из 1С:Предприятие — одна из самых востребованных операций как для бухгалтеров, так и для программистов. Без него невозможно обмениваться информацией с контрагентами, передавать отчетность в госорганы или интегрировать систему с другими сервисами. Но несмотря на кажущуюся простоту, экспорт часто сопровождается ошибками: от неверного формата файла до потери критичных данных при выгрузке.
В этой статье мы разберем все способы экспорта — от ручного сохранения в Excel до автоматизированной выгрузки через XML и JSON. Вы узнаете, как избежать типичных ошибок при работе с большими объемами данных, какие настройки влияют на структуру выходного файла, и как настроить регулярный экспорт без участия пользователя. Особое внимание уделим нюансам для разных конфигураций: 1С:Бухгалтерия 8.3, 1С:Управление торговлей 11 и 1С:Зарплата и управление персоналом 3.1.
Если вы никогда раньше не занимались экспортом или сталкивались с проблемами при выгрузке — эта инструкция поможет разобраться во всех деталях. Для опытных пользователей мы подготовили раздел с продвинутыми техниками, включая работу с XDTO-пакетами и настройку обмена через REST API.
1. Основные форматы экспорта из 1С: какой выбрать?
Перед тем как приступить к выгрузке, нужно определиться с форматом выходного файла. От этого зависит не только совместимость с внешними системами, но и сохранность структуры данных. В 1С:Предприятие поддерживаются следующие основные форматы:
- 📄 Excel (XLS/XLSX) — удобен для ручного анализа и редактирования. Подходит для выгрузки справочников, остатков товаров или бухгалтерских отчетов. Главный минус: ограничение на количество строк (1 048 576 в
XLSX). - 📝 CSV — универсальный текстовый формат для обмена с другими программами. Легко обрабатывается скриптами, но требует точной настройки разделителей (запятая, точка с запятой).
- 🔗 XML — стандарт для структурированного обмена. Используется в интеграциях с госорганами (например, выгрузка в ФНС или ПФР). Позволяет сохранять иерархию данных.
- 💾 JSON — популярный формат для веб-сервисов и API. Компактнее
XML, но менее читаемый для человека. Часто применяется при обмене с CRM-системами или маркетплейсами. - 🖼️ DBF — устаревший формат, но до сих пор используется в некоторых бухгалтерских программах (например, Парус). Имеет ограничение на длину названий полей (10 символов).
Выбор формата зависит от цели экспорта:
| Цель экспорта | Рекомендуемый формат | Пример использования |
|---|---|---|
| Ручной анализ данных | XLSX |
Выгрузка оборотно-сальдовой ведомости для аудитора |
| Автоматизированный обмен с сайтом | JSON или XML |
Синхронизация каталога товаров с Wildberries |
| Отчетность в госорганы | XML (по шаблонам ФНС) |
Выгрузка декларации по НДС |
| Импорт в другую 1С | XML (через универсальный обмен) |
Перенос справочника контрагентов между базами |
⚠️ Внимание: При экспорте вCSVпроверьте кодировку файла. Если в данных есть кириллица, используйтеUTF-8илиWindows-1251. В противном случае символы превратятся в "кракозябры".
Для большинства задач оптимальным выбором станет Excel (для визуальной работы) или XML/JSON (для автоматизированного обмена). Если вы не уверены, какой формат нужен, попробуйте экспортировать данные в XLSX и посмотрите, сохраняется ли структура. В 90% случаев этого достаточно для дальнейшей обработки.
2. Руководство по экспорту в Excel: пошаговая инструкция
Экспорт в Excel — самая распространенная операция, с которой сталкиваются пользователи 1С. Рассмотрим процесс на примере выгрузки справочника "Номенклатура" из 1С:Управление торговлей 11.
Алгоритм действий:
- Откройте справочник
Номенклатурачерез менюСправочники → Товары (номенклатура) → Номенклатура. - Нажмите кнопку
Ещё(илиДействияв старых версиях) и выберитеВыгрузить в Excel. - В открывшемся окне укажите:
- 📁 Путь сохранения файла (например,
C:\Exports\Номенклатура.xlsx). - 📋 Выгружаемые колонки — снимите галочки с ненужных полей (например,
Пометка удаленияилиРодитель). - 🔄 Формат файла — выберите
Excel 2007+ (*.xlsx).
- 📁 Путь сохранения файла (например,
Выгрузить и дождитесь завершения операции.Если вам нужно выгрузить не весь справочник, а только часть данных (например, товары определенной группы), предварительно установите отбор:
- В окне справочника нажмите
Ещё → Установить отбор. - Добавьте условие, например:
Группа = "Электроника". - После применения отбора повторите шаги экспорта.
Установить нужный отбор|Проверить список выгружаемых колонок|Выбрать формат XLSX для больших объемов|Указать корректный путь сохранения|Закрыть файл Excel, если он открыт-->
Обратите внимание на типичную ошибку: если в данных есть длинные тексты (например, описания товаров), они могут обрезаться в ячейках Excel. Чтобы этого избежать, после выгрузки:
- Откройте файл в Excel.
- Выделите колонку с длинным текстом.
- Нажмите правой кнопкой →
Формат ячеек → Выравнивание → Переносить по словам.
⚠️ Внимание: При экспорте вXLS(старый формат) данные ограничены 65 536 строками. Если у вас больше записей, используйте толькоXLSX.
Для автоматизации рутинных выгрузок можно создать внешнюю обработку с предварительно настроенными параметрами. Например, обработка "ВыгрузкаВExcel.epf" позволит сохранять данные в один клик без повторной настройки колонок.
3. Экспорт в XML: структурированный обмен данными
Формат XML незаменим, когда требуется сохранить иерархию данных или обмениваться информацией с другими системами по строгим шаблонам. Например, выгрузка деклараций в ФНС или обмен с 1С:Розница осуществляется именно через XML.
Рассмотрим процесс на примере выгрузки документа "Реализация товаров и услуг":
- Откройте журнал документов
Продажи → Реализация товаров и услуг. - Выделите нужный документ и нажмите
Ещё → Выгрузить в XML. - В окне экспорта укажите:
- 📁 Путь к файлу (например,
C:\Exports\Реализация_001.xml). - 🔧 Схему выгрузки — выберите
Универсальный обмен данными (XML). - 📌 Параметры — при необходимости добавьте префикс для тегов (например,
ns:).
- 📁 Путь к файлу (например,
Выгрузить.Готовый XML-файл будет содержать структуру вида:
<?xml version="1.0" encoding="utf-8"?>
<Документ>
<Шапка Номер="000000001" Дата="2026-05-20">
<Контрагент>ООО "Ромашка"</Контрагент>
<Сумма>12500.00</Сумма>
</Шапка>
<ТабличнаяЧасть>
<Строка>
<Номенклатура>Монитор 24"</Номенклатура>
<Количество>2</Количество>
<Цена>6250.00</Цена>
</Строка>
</ТабличнаяЧасть>
</Документ>
Для проверки корректности XML используйте валидаторы вроде XML Validator или встроенные инструменты Notepad++. Ошибки в структуре (например, незакрытые теги) приведут к сбою при импорте в другую систему.
Что делать, если XML-файл не открывается?
Если при попытке открыть XML-файл вы видите ошибку "Недопустимый формат", проверьте:
1. Кодировку файла (должна быть UTF-8).
2. Наличие специальных символов (например, &, <, >) — они должны быть экранированы как &, <, >.
3. Корректность структуры (все теги должны быть закрыты).
Если проблема сохраняется, попробуйте открыть файл в блокноте и найти строку с ошибкой по номеру из сообщения валидатора.
Для регулярного обмена данными между базами 1С настройте планы обмена. Это позволит автоматически синхронизировать справочники и документы по расписанию. Например, можно настроить ежедневную выгрузку остатков товаров из 1С:УТ в 1С:Розница.
| Задача | Рекомендуемая схема XML | Примечание |
|---|---|---|
| Обмен с ФНС | НалоговаяДекларация_v5.xsd |
Используйте актуальную версию схемы с сайта ФНС |
| Перенос справочников | УниверсальныйОбменДанными |
Поддерживает иерархические справочники |
| Интеграция с сайтом | CommerceML 2.0 |
Стандарт для обмена с 1С-Битрикс |
4. Автоматизация экспорта: обработки и внешние отчеты
Ручная выгрузка данных занимает время и чревата ошибками. Для автоматизации можно использовать:
- 🛠️ Внешние обработки — готовые решения для типовых задач (например, "ВыгрузкаЗаказовПокупателей.epf").
- 🤖 Регламентные задания — настройка автоматического экспорта по расписанию (ежедневно, еженедельно).
- 🔌 HTTP-сервисы — выгрузка данных по
REST APIдля интеграции с веб-приложениями.
Рассмотрим создание простого регламентного задания для ежедневной выгрузки остатков товаров:
- Перейдите в
Администрирование → Поддержка и обслуживание → Регламентные задания. - Нажмите
Создатьи выберите типВыгрузка данных. - Заполните параметры:
- 📅 Расписание — установите время (например,
Каждый день в 23:00). - 📂 Источник данных — укажите отчет
Остатки товаров. - 📄 Формат выгрузки — выберите
ExcelилиCSV. - 📌 Путь сохранения — например,
\\Server\Exports\Остатки_${Дата}.xlsx(где${Дата}— переменная текущей даты).
- 📅 Расписание — установите время (например,
Для более гибкой настройки используйте внешние обработки. Например, обработка "Универсальный экспорт в Excel" позволяет:
- 📊 Настраивать произвольные колонки и их порядок.
- 🔍 Применять отборы и группировки.
- 📈 Добавлять вычисляемые поля (например,
СуммаСНДС = Сумма * 1.2).
Готовые обработки можно скачать на портале 1С:ИТС или на сайтах партнеров (например, Инфостарт). Перед использованием проверьте совместимость с вашей версией конфигурации.
Если вам нужно экспортировать данные с сохранением формул (например, расчеты в отчетах), используйте формат ODS (OpenDocument Spreadsheet). Он поддерживает формулы лучше, чем XLSX.
⚠️ Внимание: При настройке автоматического экспорта в сетевой папке (\\Server\...) убедитесь, что у пользователя 1С есть права на запись. Иначе задание завершится с ошибкой "Отказано в доступе".
5. Продвинутые техники: XDTO, JSON и работа с API
Для интеграции 1С с внешними сервисами (например, CRM, ERP, маркетплейсами) стандартных форматов экспорта может быть недостаточно. В таких случаях используются:
- 🔗 XDTO-пакеты — технология для описания структуры данных при обмене между системами. Позволяет создавать сложные
XML-сообщения с валидацией. - 📡 JSON — легковесный формат для обмена с веб-сервисами. Поддерживается в 1С 8.3.10+.
- 🌐 REST API — взаимодействие с внешними системами по протоколу
HTTP.
Рассмотрим пример выгрузки данных в JSON с использованием встроенных механизмов 1С:
// Пример кода для выгрузки справочника контрагентов в JSON
Процедура ВыгрузитьКонтрагентовВJSON()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
МассивКонтрагентов = Новый Массив;
Пока Выборка.Следующий() Цикл
Элемент = Новый Структура;
Элемент.Вставить("ID", Выборка.Ссылка.УникальныйИдентификатор());
Элемент.Вставить("Name", Выборка.Наименование);
Элемент.Вставить("INN", Выборка.ИНН);
МассивКонтрагентов.Добавить(Элемент);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.ЗаписатьJSON(МассивКонтрагентов);
ТекстJSON = ЗаписьJSON.Закрыть();
ТекстJSON.Записать("C:\Exports\Контрагенты.json", КодировкаТекста.UTF8);
КонецПроцедуры
Этот код создаст файл Контрагенты.json со структурой:
[
{
"ID": "a1b2c3d4-5678-90ef-1234-567890abcdef",
"Name": "ООО «Ромашка»",
"INN": "1234567890"
},
{
"ID": "b2c3d4e5-6789-01fg-2345-678901bcdefg",
"Name": "ИП Иванов И.И.",
"INN": "0987654321"
}
]
Для работы с REST API используйте объект HTTPСоединение. Пример отправки данных на сервер:
Процедура ОтправитьДанныеНаСервер()
URL = "https://api.example.com/upload";
ТокенДоступа = "ВашТокен12345";
HTTP = Новый HTTPСоединение(URL);
HTTP.УстановитьЗаголовок("Authorization", "Bearer " + ТокенДоступа);
HTTP.УстановитьЗаголовок("Content-Type", "application/json");
Данные = Новый Структура;
Данные.Вставить("data", ТекстJSON); // ТекстJSON из предыдущего примера
Ответ = HTTP.ОтправитьДляОбработки(Данные, "POST");
Если Ответ.КодСостояния = 200 Тогда
Сообщить("Данные успешно отправлены!");
Иначе
Сообщить("Ошибка: " + Ответ.ПолучитьТекст());
КонецЕсли;
КонецПроцедуры
⚠️ Внимание: При работе сHTTPСоединениеубедитесь, что на сервере 1С разрешены исходящие соединения. В противном случае вы получите ошибку "Не удалось установить соединение". Настройки брандмауэра и прокси проверяются вАдминистрирование → Настройки программы → Сетевые настройки.
Для обмена данными с маркетплейсами (Ozon, Wildberries, Яндекс Маркет) используйте готовые решения от партнеров 1С, такие как "1С:Интеграция с маркетплейсами". Они поддерживают автоматическую выгрузку каталога, остатков и заказов в форматах, требуемых площадками.
6. Типичные ошибки при экспорте и их решения
Даже опытные пользователи сталкиваются с проблемами при выгрузке данных. Рассмотрим самые распространенные ошибки и способы их устранения:
| Ошибка | Причина | Решение |
|---|---|---|
Недостаточно памяти при экспорте большого отчета |
Ограничение ресурсов у клиентского приложения 1С. | Используйте Тонкий клиент или Веб-клиент, либо разбейте выгрузку на части. |
Файл Excel открывается пустым |
Несовместимость версий Excel или повреждение файла. |
Попробуйте открыть файл в LibreOffice Calc или пересохраните в CSV. |
Ошибка при записи XML: недопустимый символ |
В данных есть символы, запрещенные в XML (&, <, >). |
Замените символы на сущности (&, <, >) или используйте CDATA. |
| Не выгружаются иерархические справочники | В настройках экспорта отключена опция Включать подчиненные элементы. |
Включите галочку Выгружать иерархию в параметрах выгрузки. |
Файл не найден при сохранении |
Неверно указан путь или нет прав на запись. | Проверьте путь (например, C:\Exports\ должен существовать) и права доступа. |
Если при экспорте в Excel данные "съезжают" (например, даты отображаются как числа), выполните следующие действия:
- Откройте проблемный файл в Excel.
- Выделите колонку с датами.
- Нажмите правой кнопкой →
Формат ячеек → Датаи выберите нужный формат.
Для диагностики ошибок при обмене данными через XML используйте журнал регистрации:
- Перейдите в
Администрирование → Журнал регистрации. - Установите фильтр по событию
ОбменДанными. - Найдите запись с ошибкой и проанализируйте текст сообщения.
Всегда тестируйте экспорт на небольшом объеме данных перед выгрузкой полного отчета. Это поможет выявить ошибки форматирования или потерю данных на раннем этапе.
Если проблема не решается стандартными методами, обратитесь к логам сервера 1С (файлы .log в каталоге установки) или воспользуйтесь Отладчиком для анализа кода обработки.
7. Оптимизация больших выгрузок: советы для ускорения
При работе с большими объемами данных (десятки тысяч строк) экспорт может занимать часы или завершаться ошибкой. Чтобы избежать этого, следуйте рекомендациям:
- ⚡ Используйте серверный вызов — выгрузка на стороне сервера работает быстрее, чем через клиентское приложение. Для этого в коде укажите:
НаСервере
Процедура ВыгрузитьДанные()
// Код выгрузки
КонецПроцедуры
- 🗃️ Разбивайте данные на части — вместо выгрузки всего справочника экспортируйте данные порциями (например, по 10 000 строк).
- 📉 Отключайте ненужные поля — чем меньше колонок выгружается, тем быстрее работает экспорт.
- 🕒 Выгружайте в нерабочие часы — это снизит нагрузку на сервер и уменьшит риск блокировок.
Пример оптимизированного кода для выгрузки больших данных в CSV:
Процедура ВыгрузитьБольшойСправочник()
// 1. Получаем данные порциями
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10000
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
// 2. Создаем файл для записи
ПутьКФайлу = "C:\Exports\Номенклатура.csv";
Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
Возврат;
КонецЕсли;
Текст = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8, Ложь);
// 3. Пишем заголовок
Текст.ЗаписатьСтроку("Ссылка;Артикул");
// 4. Выгружаем данные циклами
Позиция = 0;
Пока Истина Цикл
Запрос.УстановитьПараметр("Смещение", Позиция);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если НЕ Выборка.Следующий() Тогда
Прервать;
КонецЕсли;
Пока Выборка.Следующий() Цикл
Текст.ЗаписатьСтроку(СтрЗначение(Выборка.Ссылка) + ";" + Выборка.Артикул);
КонецЦикла;
Позиция = Позиция + 10000;
КонецЦикла;
Текст.Закрыть();
КонецПроцедуры
Для ускорения обмена данными между базами 1С используйте планы обмена с компрессией. Это снизит нагрузку на сеть и уменьшит размер передаваемых файлов. Настройка компрессии доступна в параметрах плана обмена:
- Откройте
Администрирование → Обмен данными → Планы обмена. - Выберите нужный план и нажмите
Изменить. - На вкладке
Дополнительновключите опциюСжимать данные при обмене.
⚠️ Внимание: При выгрузке данных вDBFучитывайте ограничение на длину названий полей (10 символов). Если в вашем справочнике есть поля с длинными именами (например,ДатаПоследнейИнвентаризации), они будут об