Как выгрузить данные из 1С в Excel, CSV, XML и DBF
Содержание
Проводить экспорт данных из 1С в большинстве случаев проще всего прямо из списка или отчёта: команда Ещё → Вывести список или кнопка сохранения в отчёте выгружает нужные строки в табличный документ, а дальше его сохраняют в Excel, CSV или текстовый файл. Для переноса в другую программу берут XML, JSON или DBF — выгрузить данные этими форматами можно стандартной обработкой или небольшим кодом.
Способ зависит от того, кому и зачем нужна выгрузка. Человеку для анализа — Excel. Другой учётной системе — XML или JSON. Старой программе или банку-клиенту — DBF либо текст с фиксированной структурой.
Ниже — все рабочие способы для 1С 8.3 с интерфейсом «Такси»: от ручной выгрузки списка в два клика до регламентного задания, которое формирует файл по расписанию.
С чего начать: выбираем источник и формат выгрузки
Сначала определите, что именно выгружаете. Вариантов три:
- 📄 Список — справочник или журнал документов целиком (номенклатура, контрагенты, продажи за период).
- 📊 Отчёт — уже сгруппированные и посчитанные данные (ОСВ, продажи по складам).
- 🔁 Объекты для обмена — данные, которые должна прочитать другая программа, с сохранением связей и реквизитов.
Второй момент — объём и период. Для документов и регистров задайте период отбора до выгрузки: выгружать весь журнал за все годы, когда нужен один месяц, — лишняя нагрузка и тяжёлый файл. Третий — кодировка: заранее узнайте у получателя, ждёт он UTF-8 или ANSI (Windows-1251). Неверная кодировка — причина номер один, почему файл потом «не читается».
От этого зависит формат. Подсказка по выбору:
Перед большой выгрузкой проверьте отбор в списке. То, что скрыто фильтром на экране, в файл не попадёт — выгружается ровно то, что видно в текущем представлении списка.
Выгрузка в Excel и табличный документ
Самый частый сценарий. Любой список и любой отчёт в 1С сначала превращаются в табличный документ, а он сохраняется в Excel.
Экспорт списка справочника или документов:
- Откройте нужный список (например,
Справочники → Номенклатура). - При необходимости задайте отбор и настройте видимые колонки через
Ещё → Изменить форму. - Нажмите
Ещё → Вывести список. - В окне укажите тип вывода
Табличный документи отметьте колонки, которые нужны в файле. - В полученном табличном документе выберите
Главное меню → Файл → Сохранить как. - В поле «Тип файла» выберите
Лист 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С есть три уровня автоматизации.
Внешняя обработка. Код выгрузки оформляют в файл
.epfс формой и кнопкой «Выгрузить». Запускают черезФайл → Открыть. Удобно, когда настройки (период, папка) меняются перед каждым запуском.Регламентное задание. В клиент-серверной базе выгрузку вешают на расписание. Путь:
Администрирование → Обслуживание → Регламентные и фоновые задания. Задание само формирует файл ночью или раз в час — без участия пользователя.HTTP- или web-сервис. Когда данные должна забирать внешняя система по запросу, публикуют сервис, и он отдаёт XML/JSON «на лету». Это уже разработка, но для постоянной интеграции вариант самый надёжный.
Регламентные задания по расписанию работают только в клиент-серверном варианте. В файловой базе фоновое задание выполнится лишь пока открыт сеанс — для ночной выгрузки оставлять открытую 1С ненадёжно.
Куда класть файл: для автоматических выгрузок выбирайте сетевую папку, к которой у сервера 1С есть права на запись. Частая причина «задание отработало, а файла нет» — права пользователя службы сервера на целевой каталог.
Частые ошибки при экспорте и как их исправить
Самые частые сбои при выгрузке и что с ними делать:
UTF-8 или, наоборот, в ANSI — в зависимости от того, что ждёт получатель. При открытии CSV в Excel используйте мастер импорта с указанием кодировки.;, либо при открытии через «Данные → Из текста» задайте разделитель вручную.Поля.Добавить) с запасом и проверьте, что имена полей — латиница до 10 символов.UTF-8.Отдельно про большие объёмы. Выгрузка справочника на сотни тысяч строк через Вывести список может подвесить клиент: форма пытается вывести всё в память за один раз. В этом случае данные читают запросом порциями и пишут в файл в фоновом задании на сервере, а не через интерактивную форму. Так выгрузка не зависит от сеанса пользователя и не упирается в память клиента.
И ещё одно правило, которое экономит разбирательства: после первой выгрузки откройте файл и сверьте пару строк с данными в 1С. Проще поймать расхождение на двух строках, чем после того, как получатель загрузил к себе весь массив.
Частые вопросы
Можно ли выгрузить сразу несколько справочников в один файл?
Вывести список — нет, он работает с одним списком. Для комплексной выгрузки нескольких объектов используйте штатную обработку выгрузки XML или отдельную обработку с нужной логикой.Сохранится ли форматирование и итоги отчёта при выгрузке в Excel?
.xlsx вместе с группировками, итогами и оформлением ячеек. Для «чистых» данных без оформления берите CSV.Почему в выгруженном файле нет колонки, которая видна на экране?
Вывести список колонки отмечаются галочками отдельно. Снятая галочка — колонки нет в файле, даже если на форме она отображается.Как выгрузить данные по расписанию, без участия пользователя?
Администрирование → Обслуживание → Регламентные и фоновые задания. В файловой базе надёжного расписания нет.