Как выгрузить данные из 1С в Excel, CSV, XML и DBF

· 9 мин

Содержание

Проводить экспорт данных из 1С в большинстве случаев проще всего прямо из списка или отчёта: команда Ещё → Вывести список или кнопка сохранения в отчёте выгружает нужные строки в табличный документ, а дальше его сохраняют в Excel, CSV или текстовый файл. Для переноса в другую программу берут XML, JSON или DBF — выгрузить данные этими форматами можно стандартной обработкой или небольшим кодом.

Способ зависит от того, кому и зачем нужна выгрузка. Человеку для анализа — Excel. Другой учётной системе — XML или JSON. Старой программе или банку-клиенту — DBF либо текст с фиксированной структурой.

Ниже — все рабочие способы для 1С 8.3 с интерфейсом «Такси»: от ручной выгрузки списка в два клика до регламентного задания, которое формирует файл по расписанию.

С чего начать: выбираем источник и формат выгрузки

Сначала определите, что именно выгружаете. Вариантов три:

  • 📄 Список — справочник или журнал документов целиком (номенклатура, контрагенты, продажи за период).
  • 📊 Отчёт — уже сгруппированные и посчитанные данные (ОСВ, продажи по складам).
  • 🔁 Объекты для обмена — данные, которые должна прочитать другая программа, с сохранением связей и реквизитов.

Второй момент — объём и период. Для документов и регистров задайте период отбора до выгрузки: выгружать весь журнал за все годы, когда нужен один месяц, — лишняя нагрузка и тяжёлый файл. Третий — кодировка: заранее узнайте у получателя, ждёт он UTF-8 или ANSI (Windows-1251). Неверная кодировка — причина номер один, почему файл потом «не читается».

От этого зависит формат. Подсказка по выбору:

Какой формат экспорта выбрать?

Перед большой выгрузкой проверьте отбор в списке. То, что скрыто фильтром на экране, в файл не попадёт — выгружается ровно то, что видно в текущем представлении списка.

Выгрузка в Excel и табличный документ

Самый частый сценарий. Любой список и любой отчёт в 1С сначала превращаются в табличный документ, а он сохраняется в Excel.

Экспорт списка справочника или документов:

  1. Откройте нужный список (например, Справочники → Номенклатура).
  2. При необходимости задайте отбор и настройте видимые колонки через Ещё → Изменить форму.
  3. Нажмите Ещё → Вывести список.
  4. В окне укажите тип вывода Табличный документ и отметьте колонки, которые нужны в файле.
  5. В полученном табличном документе выберите Главное меню → Файл → Сохранить как.
  6. В поле «Тип файла» выберите Лист Microsoft Excel 2007-...(*.xlsx) и сохраните.

Экспорт отчёта ещё короче. Сформируйте отчёт и в его командной панели нажмите кнопку сохранения (дискета) либо Ещё → Сохранить как. Доступны те же форматы: .xlsx, .ods, .mxl, .pdf.

Пример из практики — выгрузить оборотно-сальдовую ведомость. Сформируйте ОСВ за период, при необходимости разверните субсчета, затем Ещё → Сохранить как → .xlsx. Все уровни группировки, свёрнутые и развёрнутые, перенесутся в Excel как есть — бухгалтеру останется только работать с цифрами.

Выгрузка табличной части документа (строки товаров из накладной, начисления из расчёта) делается внутри самого документа: встаньте в табличную часть и нажмите Ещё → Вывести список над ней — выгрузится именно таблица строк, а не список документов. Полезно, когда нужно отдать не весь журнал, а состав одного документа.

Для разовой передачи небольшого фрагмента иногда проще скопировать ячейки списка (выделить строки, Ctrl+C) и вставить в Excel. Но при копировании теряются скрытые колонки и форматирование — для полноценной выгрузки надёжнее Вывести список.

Какие форматы предлагает диалог сохранения табличного документа:

ФорматРасширениеКогда брать
Лист Excel 2007.xlsxОсновной для передачи людям
Лист Excel 97.xlsЕсли получатель на старом Office
Документ ODF.odsДля LibreOffice / OpenOffice
Табличный документ.mxlОткрыть позже в самой 1С
Текстовый документ.txtПростой текст без форматирования
Документ PDF.pdfДля печати и подписи, без правки

При выгрузке в .xls (старый формат) есть лимит — около 65 тысяч строк. Для больших списков берите .xlsx.

Если нужна не вся таблица, а только отфильтрованные строки, сначала примените отбор в списке, а потом выводите — лишнее не уйдёт в файл.

Экспорт в текстовый файл, CSV и DBF

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

CSV и текст. Тот же табличный документ сохраните через Файл → Сохранить как, выбрав в типе файла CSV или Текстовый документ. Разделителем в CSV по умолчанию служит точка с запятой — это важно согласовать с принимающей стороной, потому что Excel в русской локали ждёт именно ;, а не запятую.

Для текстовых файлов с жёсткой структурой (каждое поле — своя позиция в строке) одной выгрузки списка мало. Такой файл формируют кодом в обработке: собирают строку функцией СтрШаблон или Формат, чтобы числа не склеивались с текстом, и пишут её в ТекстовыйДокумент или через объект ЗаписьТекста.

DBF. Формат старый, но живуч: его просят банки, таможенные программы и часть госсистем. Штатного пункта «Сохранить в DBF» в типовых конфигурациях нет — выгрузку делают встроенным объектом XBase. Минимальный рабочий пример:

ДБФ = Новый XBase;
ДБФ.Кодировка = КодировкаXBase.OEM;
ДБФ.Поля.Добавить("CODE", "S", 9);
ДБФ.Поля.Добавить("NAME", "S", 50);
ДБФ.СоздатьФайл("C:\Export\nomenkl.dbf");

Для Каждого Строка Из Выборка Цикл
    ДБФ.Добавить();
    ДБФ.CODE = Строка.Код;
    ДБФ.NAME = Строка.Наименование;
    ДБФ.Записать();
КонецЦикла;

ДБФ.ЗакрытьФайл();

Имена полей в DBF — латиница, не длиннее 10 символов. Кодировку (OEM или ANSI) и набор полей уточните у получателя: в DBF ширина поля фиксированная, и при превышении значение обрежется.

Обмен данными через XML и JSON

Для переноса данных между программами с сохранением связей и типов нужны структурированные форматы.

XML. В типовых конфигурациях есть штатный механизм — обработка Выгрузка и загрузка данных XML (файл ВыгрузкаЗагрузкаДанныхXML.epf). Она выгружает выбранные объекты в XML и загружает их в такую же конфигурацию. Открывается через Файл → Открыть как внешняя обработка.

Если переносить нужно в другую, непохожую конфигурацию, применяют план обмена или правила конвертации (механизм КД). Это уже проект настройки, а не разовая выгрузка: сначала описывают соответствие объектов и реквизитов двух конфигураций, потом по этим правилам формируется XML. Для разового переноса между одинаковыми базами такой сложности не нужно — хватает штатной обработки.

Готовый файл XML проверьте до отправки: откройте его в браузере. Если браузер показывает дерево элементов без ошибок — структура корректна. Сообщение о незакрытом теге означает, что в коде пропущен ЗаписатьКонецЭлемента.

Свой XML под чужой формат собирают кодом. Для произвольной структуры удобен объект ЗаписьXML:

Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Export\data.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Номенклатура");

Для Каждого Строка Из Выборка Цикл
    Запись.ЗаписатьНачалоЭлемента("Позиция");
    Запись.ЗаписатьАтрибут("Код", Строка.Код);
    Запись.ЗаписатьАтрибут("Наименование", Строка.Наименование);
    Запись.ЗаписатьКонецЭлемента();
КонецЦикла;

Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();

JSON. Нужен для обмена с сайтами и веб-сервисами. Запись идёт через объект ЗаписьJSON и функцию ЗаписатьJSON, которая умеет сериализовать структуру или соответствие целиком:

Данные = Новый Структура;
Данные.Вставить("Код", "000123");
Данные.Вставить("Наименование", "Болт М8");

Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл("C:\Export\item.json");
ЗаписатьJSON(Запись, Данные);
Запись.Закрыть();

И для XML, и для JSON фиксируйте кодировку UTF-8 и согласуйте имена полей с принимающей стороной заранее. Чаще всего обмен «не читается» именно из-за разных имён реквизитов, а не из-за самого формата.

Автоматизация экспорта: обработки и регламентные задания

Если выгрузка повторяется каждый день, ручной Вывести список быстро надоедает. В 1С есть три уровня автоматизации.

  1. Внешняя обработка. Код выгрузки оформляют в файл .epf с формой и кнопкой «Выгрузить». Запускают через Файл → Открыть. Удобно, когда настройки (период, папка) меняются перед каждым запуском.

  2. Регламентное задание. В клиент-серверной базе выгрузку вешают на расписание. Путь: Администрирование → Обслуживание → Регламентные и фоновые задания. Задание само формирует файл ночью или раз в час — без участия пользователя.

  3. HTTP- или web-сервис. Когда данные должна забирать внешняя система по запросу, публикуют сервис, и он отдаёт XML/JSON «на лету». Это уже разработка, но для постоянной интеграции вариант самый надёжный.

Регламентные задания по расписанию работают только в клиент-серверном варианте. В файловой базе фоновое задание выполнится лишь пока открыт сеанс — для ночной выгрузки оставлять открытую 1С ненадёжно.

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

Проверьте перед настройкой автоматической выгрузки
Выполнено: 0 / 5

Частые ошибки при экспорте и как их исправить

Самые частые сбои при выгрузке и что с ними делать:

Диагностика: выберите симптом

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

И ещё одно правило, которое экономит разбирательства: после первой выгрузки откройте файл и сверьте пару строк с данными в 1С. Проще поймать расхождение на двух строках, чем после того, как получатель загрузил к себе весь массив.

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

Можно ли выгрузить сразу несколько справочников в один файл?
Через Вывести список — нет, он работает с одним списком. Для комплексной выгрузки нескольких объектов используйте штатную обработку выгрузки XML или отдельную обработку с нужной логикой.
Сохранится ли форматирование и итоги отчёта при выгрузке в Excel?
Да. Отчёт и любой табличный документ переносятся в .xlsx вместе с группировками, итогами и оформлением ячеек. Для «чистых» данных без оформления берите CSV.
Почему в выгруженном файле нет колонки, которая видна на экране?
В окне Вывести список колонки отмечаются галочками отдельно. Снятая галочка — колонки нет в файле, даже если на форме она отображается.
Как выгрузить данные по расписанию, без участия пользователя?
Регламентным заданием в клиент-серверной базе: Администрирование → Обслуживание → Регламентные и фоновые задания. В файловой базе надёжного расписания нет.
Чем XML отличается от Excel при экспорте?
Excel — для чтения человеком, в нём теряются типы данных и связи. XML (и JSON) сохраняют структуру и предназначены для загрузки в другую программу без ручной правки.