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

· 9 мин

Содержание

Выгрузить данные из 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 с интерфейсом «Такси» для этого ничего настраивать не нужно.

Чтобы выгрузить список (например, номенклатуру или контрагентов):

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

Чтобы сохранить готовый отчёт или печатную форму, не выводя список вручную, нажмите в самой форме отчёта кнопку сохранения (значок дискеты на командной панели) и укажите формат.

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

  • 📊 .xlsx и .xls — Excel;
  • 📄 .ods — таблица LibreOffice/OpenOffice;
  • 📑 .pdf — для печати и пересылки без правок;
  • 🌐 .html и .mxl — веб-страница и родной формат 1С.

Для пары строк необязательно открывать меню: выделите нужные записи в списке мышью с зажатым Ctrl, скопируйте сочетанием Ctrl+C и вставьте в открытый лист Excel. Копируются видимые колонки списка — быстро, но без настройки состава полей.

При выгрузке больших списков 1С сначала строит весь табличный документ в памяти. На списках в сотни тысяч строк это нагружает клиент — лучше отобрать данные отчётом или выгрузить программно порциями.

Выгрузка платёжных поручений в клиент-банк

Отдельный и очень частый случай экспорта — выгрузка платёжек в систему «Банк-Клиент». Здесь не нужны ни XML, ни правила: обмен идёт текстовым файлом стандартного формата «1С:Предприятие — Клиент банка».

В «1С:Бухгалтерии 8» порядок такой:

  1. Откройте список платёжных поручений в разделе Банк и касса.
  2. Отметьте документы, которые уходят в банк, и воспользуйтесь командой обмена с банком (кнопка называется «Обмен с банком» или «Отправить в банк» — название может отличаться по релизу).
  3. В окне обмена проверьте банковский счёт, каталог выгрузки и кодировку.
  4. Запустите выгрузку — сформируется файл 1c_to_kl.txt.

Этот файл загружают в программу банка. Входящие выписки банк отдаёт обратным файлом kl_to_1c.txt, который 1С умеет импортировать той же командой обмена.

Кодировку (чаще всего Windows-1251) и формат задаёт банк. Если банк не принимает файл — сверьте кодировку и версию формата в настройках обмена с требованиями банка.

Перенос данных между базами через XML-обработку

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

Порядок на базе-источнике:

  1. Откройте обработку Выгрузка и загрузка данных XML (во многих типовых конфигурациях она в составе поставки; если её нет — скачайте типовую обработку с диска ИТС и откройте через Файл → Открыть).
  2. На закладке выгрузки отметьте галочками объекты метаданных, которые нужно перенести: справочники, документы, регистры.
  3. Задайте отбор по периоду или реквизитам, если выгружаете не всё.
  4. Укажите имя файла и запустите выгрузку — получится один .xml.

На базе-приёмнике открываете ту же обработку, переходите на закладку загрузки и указываете полученный файл.

Загрузка XML переписывает объекты по внутренним идентификаторам. Если конфигурации баз различаются по структуре, часть данных не загрузится или встанет с ошибками. Перед загрузкой в рабочую базу обязательно сделайте резервную копию — откатить частичную загрузку иначе будет нечем.

Этот способ не умеет сопоставлять объекты по полям и не подходит для обмена между разными конфигурациями — для этого есть конвертация данных .

Планы обмена и регистрация изменений

Когда выгрузка нужна не разово, а постоянно, разовую обработку заменяют планом обмена. План обмена — это объект конфигурации, который помнит, какие данные уже отправлены, и при каждой выгрузке берёт только изменения.

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

Что настраивается в плане обмена:

  • 🔹 состав — какие справочники, документы и регистры участвуют в обмене;
  • 🔹 узлы — базы-участники; у каждого свой код и номера принятого/отправленного сообщения;
  • 🔹 авторегистрация — по каким объектам изменения регистрируются автоматически.

Посмотреть и вручную поправить очередь регистрации можно той же стандартной обработкой выгрузки XML — на закладке плана обмена видно, сколько объектов ждёт отправки по каждому узлу.

Распределённая информационная база (РИБ) — это частный случай плана обмена. Главный и подчинённые узлы обмениваются не только данными, но и изменениями конфигурации.

Конвертация данных: правила выгрузки в XML

Если данные уходят в другую конфигурацию или во внешнюю систему, формат файла задают правила конвертации. Их готовят в отдельной конфигурации «Конвертация данных» (КД 2 или КД 3) и выгружают во внешний файл правил, который затем подключают к обработке универсального обмена.

Суть правил — сопоставление: какой реквизит объекта-источника в какой элемент файла-приёмника превращается.

Сопоставление полей
Справочник «Контрагенты»→Объект CatalogPartner
ИНН→INN
КПП→KPP
Полное наименование→FullName
Юридический адрес→LegalAddress

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

Порядок при обмене через универсальный формат:

  1. В разделе Администрирование → Синхронизация данных включите синхронизацию.
  2. Создайте настройку обмена, выбрав формат EnterpriseData и способ связи (каталог, FTP, электронная почта).
  3. Сопоставьте объекты двух баз при первой загрузке.
  4. Запустите обмен — дальше он может идти по расписанию.

Если приёмник прислал собственную 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С:Предприятие». Если выгрузку нужно повторять, обработку регистрируют как дополнительную в справочнике дополнительных обработок.

Автоматизация выгрузки по расписанию

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

Для типового обмена через синхронизацию расписание задаётся прямо в настройке:

  1. Откройте Администрирование → Синхронизация данных.
  2. В настройке обмена найдите параметры расписания.
  3. Задайте интервал — например, каждые 15 минут или раз в сутки ночью.

Для собственной выгрузки кодом создают регламентное задание в конфигураторе (ветка «Регламентные задания») и назначают ему расписание. В клиент-серверной базе такое задание выполняется на сервере автоматически; в файловой — только пока открыт сеанс, назначенный выполнять регламентные операции.

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

Проверить, отработало ли задание, можно в журнале регистрации: отберите события по имени задания и посмотрите результат последнего запуска.

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

Частые ошибки при выгрузке

Ниже — не повтор шагов, а ситуации, из-за которых выгрузка срывается чаще всего, и как их обойти.

Почему при выгрузке в Excel пропадают ведущие нули в кодах и ИНН?
Excel трактует длинные числовые строки как число и отбрасывает нули. Выгружайте такие поля как текст: в 1С это достигается принудительным текстовым форматом ячейки табличного документа, либо выгрузкой в CSV с последующим импортом в Excel с указанием текстового типа колонки.
Файл XML загрузился в другую базу с ошибками — что проверить?
Стандартная XML-выгрузка переносит объекты по внутренним идентификаторам и требует одинаковой структуры метаданных. Сверьте версии и состав конфигураций источника и приёмника. Если конфигурации разные — нужна не эта обработка, а правила конвертации данных.
Регламентная выгрузка не запускается по расписанию.
В файловой базе регламентные задания идут только при открытом сеансе, назначенном их выполнять. Проверьте, что такой сеанс запущен, а в клиент-серверной — что задание не отключено и сервер работает. Результат последнего запуска смотрите в журнале регистрации.
Приёмник не принимает файл, хотя выгрузка прошла без ошибок.
Чаще всего не совпадает формат: кодировка, разделитель, набор полей или схема XML. Запросите у приёмной стороны пример корректного файла или XSD-схему и приведите выгрузку к ней — для нестандартной схемы это задача программной выгрузки.
Как выгрузить только изменения, а не всю базу целиком?
Разовая обработка так не умеет — она берёт всё, что отобрано. Отслеживание изменений даёт только план обмена: он регистрирует правки по узлу и при каждой выгрузке отдаёт лишь новые и изменённые объекты.