Как выгрузить данные из 1С 8.3 в XML и Excel
Содержание
Выгрузить данные из 1С 8.3 можно четырьмя разными путями: сохранить любой список или отчёт в Excel, перенести объекты между базами через обработку выгрузки XML, настроить план обмена с правилами регистрации или собрать файл программно во внешней обработке. Способ зависит от того, куда едут данные и в каком формате их ждут на приёмной стороне.
Для отчёта в бухгалтерию хватит кнопки сохранения в Excel. Для переноса справочников и документов между двумя базами 1С берут XML-выгрузку. Для регулярного обмена с чужой системой (сайт, банк, маркетплейс) нужен файл строгого формата — его формируют по правилам конвертации или кодом.
Разберём каждый способ по шагам: где нажимать, что настраивать и в каком виде получится файл.
Какой способ выгрузки выбрать под задачу
Прежде чем что-то настраивать, определитесь с форматом и получателем. От этого зависит весь дальнейший маршрут.
| Способ | Формат файла | Когда применять |
|---|---|---|
| Сохранение табличного документа | .xlsx, .ods, .pdf, .html | Отчёт, список, печатная форма для человека |
| Обработка выгрузки/загрузки XML | .xml | Перенос данных между базами одинаковой конфигурации |
| План обмена | .xml | Регулярный автоматический обмен двух баз |
| Конвертация данных (КД) | .xml по схеме | Обмен между разными конфигурациями или с внешней системой |
| Программная выгрузка | любой (.xml, .json, .csv, .dbf) | Нестандартный формат под конкретный приёмник |
Если приёмная сторона прислала описание формата (XSD-схему, пример файла) — это почти всегда задача для конвертации данных или программной выгрузки, а не для стандартной XML-обработки.
Выгрузка списков и отчётов в Excel
Самый частый запрос — вытащить таблицу в Excel. В 1С 8.3 с интерфейсом «Такси» для этого ничего настраивать не нужно.
Чтобы выгрузить список (например, номенклатуру или контрагентов):
- Откройте нужный список.
- Нажмите
Еще → Вывести список. - В окне выберите колонки, которые должны попасть в файл, и тип вывода «Табличный документ».
- В полученном табличном документе нажмите
Главное меню → Файл → Сохранить каки выберите типЛист Excel 2007 (*.xlsx).
Чтобы сохранить готовый отчёт или печатную форму, не выводя список вручную, нажмите в самой форме отчёта кнопку сохранения (значок дискеты на командной панели) и укажите формат.
Доступные форматы сохранения табличного документа:
- 📊
.xlsxи.xls— Excel; - 📄
.ods— таблица LibreOffice/OpenOffice; - 📑
.pdf— для печати и пересылки без правок; - 🌐
.htmlи.mxl— веб-страница и родной формат 1С.
Для пары строк необязательно открывать меню: выделите нужные записи в списке мышью с зажатым Ctrl, скопируйте сочетанием Ctrl+C и вставьте в открытый лист Excel. Копируются видимые колонки списка — быстро, но без настройки состава полей.
При выгрузке больших списков 1С сначала строит весь табличный документ в памяти. На списках в сотни тысяч строк это нагружает клиент — лучше отобрать данные отчётом или выгрузить программно порциями.
Выгрузка платёжных поручений в клиент-банк
Отдельный и очень частый случай экспорта — выгрузка платёжек в систему «Банк-Клиент». Здесь не нужны ни XML, ни правила: обмен идёт текстовым файлом стандартного формата «1С:Предприятие — Клиент банка».
В «1С:Бухгалтерии 8» порядок такой:
- Откройте список платёжных поручений в разделе
Банк и касса. - Отметьте документы, которые уходят в банк, и воспользуйтесь командой обмена с банком (кнопка называется «Обмен с банком» или «Отправить в банк» — название может отличаться по релизу).
- В окне обмена проверьте банковский счёт, каталог выгрузки и кодировку.
- Запустите выгрузку — сформируется файл
1c_to_kl.txt.
Этот файл загружают в программу банка. Входящие выписки банк отдаёт обратным файлом kl_to_1c.txt, который 1С умеет импортировать той же командой обмена.
Кодировку (чаще всего Windows-1251) и формат задаёт банк. Если банк не принимает файл — сверьте кодировку и версию формата в настройках обмена с требованиями банка.
Перенос данных между базами через XML-обработку
Для переноса справочников и документов между двумя базами одной и той же конфигурации (например, из рабочей базы в тестовую) используют стандартную обработку выгрузки и загрузки данных XML.
Порядок на базе-источнике:
- Откройте обработку
Выгрузка и загрузка данных XML(во многих типовых конфигурациях она в составе поставки; если её нет — скачайте типовую обработку с диска ИТС и откройте черезФайл → Открыть). - На закладке выгрузки отметьте галочками объекты метаданных, которые нужно перенести: справочники, документы, регистры.
- Задайте отбор по периоду или реквизитам, если выгружаете не всё.
- Укажите имя файла и запустите выгрузку — получится один
.xml.
На базе-приёмнике открываете ту же обработку, переходите на закладку загрузки и указываете полученный файл.
Загрузка XML переписывает объекты по внутренним идентификаторам. Если конфигурации баз различаются по структуре, часть данных не загрузится или встанет с ошибками. Перед загрузкой в рабочую базу обязательно сделайте резервную копию — откатить частичную загрузку иначе будет нечем.
Этот способ не умеет сопоставлять объекты по полям и не подходит для обмена между разными конфигурациями — для этого есть конвертация данных .
Планы обмена и регистрация изменений
Когда выгрузка нужна не разово, а постоянно, разовую обработку заменяют планом обмена. План обмена — это объект конфигурации, который помнит, какие данные уже отправлены, и при каждой выгрузке берёт только изменения.
Работает это через механизм регистрации изменений. Для каждого узла обмена платформа ведёт очередь: как только объект из состава плана обмена меняется, он попадает в эту очередь. При выгрузке в файл или сообщение уходят только зарегистрированные изменения, после чего регистрация по этому узлу снимается.
Что настраивается в плане обмена:
- 🔹 состав — какие справочники, документы и регистры участвуют в обмене;
- 🔹 узлы — базы-участники; у каждого свой код и номера принятого/отправленного сообщения;
- 🔹 авторегистрация — по каким объектам изменения регистрируются автоматически.
Посмотреть и вручную поправить очередь регистрации можно той же стандартной обработкой выгрузки XML — на закладке плана обмена видно, сколько объектов ждёт отправки по каждому узлу.
Распределённая информационная база (РИБ) — это частный случай плана обмена. Главный и подчинённые узлы обмениваются не только данными, но и изменениями конфигурации.
Конвертация данных: правила выгрузки в XML
Если данные уходят в другую конфигурацию или во внешнюю систему, формат файла задают правила конвертации. Их готовят в отдельной конфигурации «Конвертация данных» (КД 2 или КД 3) и выгружают во внешний файл правил, который затем подключают к обработке универсального обмена.
Суть правил — сопоставление: какой реквизит объекта-источника в какой элемент файла-приёмника превращается.
В современных типовых конфигурациях на базе БСП обмен чаще идёт через универсальный формат EnterpriseData. Его преимущество — обе стороны заранее знают схему, и настраивать пересопоставление вручную не нужно. Включается обмен в разделе Администрирование → Синхронизация данных.
Порядок при обмене через универсальный формат:
- В разделе
Администрирование → Синхронизация данныхвключите синхронизацию. - Создайте настройку обмена, выбрав формат EnterpriseData и способ связи (каталог, FTP, электронная почта).
- Сопоставьте объекты двух баз при первой загрузке.
- Запустите обмен — дальше он может идти по расписанию.
Если приёмник прислал собственную XSD-схему, не совпадающую с EnterpriseData, универсальный формат не подойдёт — нужны индивидуальные правила в КД либо программная выгрузка под эту схему.
Программная выгрузка во внешней обработке
Когда готового механизма нет, файл формируют кодом во внешней обработке. Это даёт полный контроль над структурой: можно собрать XML, JSON, CSV или DBF ровно так, как ждёт приёмник.
Выгрузка объекта в XML через сериализатор XDTO:
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\contragent.xml");
СериализаторXDTO.ЗаписатьXML(Запись, СсылкаНаКонтрагента.ПолучитьОбъект());
Запись.Закрыть();
Выгрузка выборки запроса в текстовый CSV:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Код, Наименование, ИНН
|ИЗ Справочник.Контрагенты
|ГДЕ НЕ ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Текст = Новый ЗаписьТекста("C:\Обмен\contragents.csv", КодировкаТекста.UTF8);
Пока Выборка.Следующий() Цикл
Строка = СтрШаблон("%1;%2;%3", Выборка.Код, Выборка.Наименование, Выборка.ИНН);
Текст.ЗаписатьСтроку(Строка);
КонецЦикла;
Текст.Закрыть();
Для формата DBF применяют объект XBase: открывают файл, в цикле добавляют записи методом Добавить() и в конце вызывают Записать(). Для выгрузки в веб-сервис или на сайт удобнее JSON — его собирают объектом ЗаписьJSON, передавая структуру или соответствие с нужными полями.
Внешняя обработка хороша ещё и тем, что в неё закладывают любую логику отбора: только проведённые документы за период, только позиции с остатком, только контрагенты с заполненным ИНН. Стандартные механизмы такой гибкости не дают.
Числа и даты в строку склеивайте через Формат() или СтрШаблон(), а не напрямую — иначе в файл попадут пробелы-разделители групп и региональный вид даты, которые приёмник не разберёт.
Готовую обработку запускают через Файл → Открыть в режиме «1С:Предприятие». Если выгрузку нужно повторять, обработку регистрируют как дополнительную в справочнике дополнительных обработок.
Автоматизация выгрузки по расписанию
Ручной запуск годится для разовой задачи. Регулярную выгрузку вешают на регламентное задание — тогда файл формируется сам, без участия пользователя.
Для типового обмена через синхронизацию расписание задаётся прямо в настройке:
- Откройте
Администрирование → Синхронизация данных. - В настройке обмена найдите параметры расписания.
- Задайте интервал — например, каждые 15 минут или раз в сутки ночью.
Для собственной выгрузки кодом создают регламентное задание в конфигураторе (ветка «Регламентные задания») и назначают ему расписание. В клиент-серверной базе такое задание выполняется на сервере автоматически; в файловой — только пока открыт сеанс, назначенный выполнять регламентные операции.
В файловой базе фоновые и регламентные задания работают лишь при запущенном клиенте. Для надёжной выгрузки ночью по расписанию нужен либо клиент-серверный вариант, либо постоянно открытый сеанс на выделенной машине.
Проверить, отработало ли задание, можно в журнале регистрации: отберите события по имени задания и посмотрите результат последнего запуска.
Частые ошибки при выгрузке
Ниже — не повтор шагов, а ситуации, из-за которых выгрузка срывается чаще всего, и как их обойти.