Выгрузка данных из 1С в Excel: способы экспорта и решение проблем

· 9 мин

Содержание

Выгрузить данные из 1С в Excel можно пятью способами, и самый быстрый — сохранить открытый отчёт или печатную форму через Главное меню → Файл → Сохранить как и выбрать тип файла «Лист Microsoft Excel (*.xlsx)». Если нужен не отчёт, а целый список справочника или документов — его выводят командой «Вывести список ». Для регулярной выгрузки структуры подойдут обмен XML или скрипт через OLE.

Ниже разберём каждый способ по шагам и отдельно — почему при экспорте в Excel теряются ведущие нули у ИНН, а длинные числа превращаются в 1,2E+11. Все действия описаны для платформы 1С 8.3 с интерфейсом «Такси».

Сохранить отчёт или печатную форму в Excel

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

Порядок действий:

  1. Сформируйте отчёт или откройте печатную форму документа.
  2. Откройте Главное меню → Файл → Сохранить как (кнопка главного меню — значок со стрелкой вниз в левом верхнем углу).
  3. В поле «Тип файла» выберите один из вариантов Excel:
    • Лист Microsoft Excel 2007 (*.xlsx) — современный формат, рекомендуется;
    • Лист Microsoft Excel 97 (*.xls) — для старых версий Excel.
  4. Укажите имя и папку, нажмите «Сохранить».

Тот же пункт «Сохранить как» прячется под кнопкой Ещё в правом верхнем углу формы отчёта. Результат одинаковый.

Если в списке типов нет *.xlsx, а есть только *.mxl — вы пытаетесь сохранить не табличный документ, а что-то другое (например, форму списка). Сначала выведите данные в табличный документ (см. следующий раздел).

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

Копирование через буфер. Когда нужен не весь отчёт, а отдельный фрагмент, его переносят напрямую: выделите мышью нужные ячейки табличного документа, нажмите Ctrl+C, перейдите в открытый Excel и вставьте Ctrl+V. Так удобно забрать из большого отчёта один блок — например, итоговую строку по контрагенту. Минус в том, что при вставке через буфер Excel особенно охотно превращает цифровые коды в числа, поэтому для ИНН и артикулов этот способ подходит хуже, чем сохранение в файл.

Кроме Excel, в том же окне Сохранить как доступны форматы Документ ODF (*.ods) для LibreOffice/OpenOffice и Текстовый документ (*.txt). Если файл нужен только для печати или рассылки — там же есть сохранение в PDF.

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

Когда нужен не один отчёт, а весь справочник номенклатуры или журнал документов за период, используют команду вывода списка.

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

Так выгружают остатки на складе, список контрагентов с реквизитами, перечень сотрудников, товарные позиции. Колонок в выводе ровно столько, сколько вы отметили, — это удобно, когда из большого справочника нужны только код, наименование и артикул.

Отбор и сортировка списка переносятся в выгрузку как есть. Если перед выводом вы отсортировали документы по дате и оставили только проведённые, в Excel попадут те же строки в том же порядке. Это заметно экономит время: не нужно потом фильтровать данные уже в таблице. Настройку списка (колонки, отбор, сортировку) 1С запоминает, поэтому следующая выгрузка того же справочника пойдёт с теми же параметрами.

Чек-лист перед выгрузкой списка
Выполнено: 0 / 5

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

Меню «Все функции»: добраться до любого списка

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

Сначала эту команду нужно включить:

  1. Нажмите значок Сервис и настройки (шестерёнка в правом верхнем углу) → Настройки → Параметры.
  2. Поставьте галочку Отображать команду "Все функции" и нажмите «ОК».

После этого в главном меню появится пункт Все функции. Через него открываются:

  • 📂 Стандартные — журналы, настройки, служебные обработки;
  • 📘 Справочники — все справочники конфигурации, в том числе скрытые из обычного меню;
  • 📄 Документы — любые виды документов;
  • 📊 Регистры сведений и Регистры накопления — внутренние таблицы с данными учёта.

Открыли нужный список — дальше работает та же логика: настраиваете отбор, жмёте Ещё → Вывести список, сохраняете в Excel.

«Все функции» доступны только пользователю с правами администратора или полными правами. Если пункта нет даже после включения галочки — у вашей роли нет доступа к этому режиму, обратитесь к администратору базы.

Перенос структурированных данных: обмен XML и внешние обработки

Предыдущие способы годятся для разовой выгрузки «посмотреть в Excel». Если же данные нужно регулярно переносить в другую систему с сохранением структуры (ссылки, реквизиты, табличные части), простого списка мало.

Здесь применяют два подхода:

Универсальный обмен данными XML . В типовых конфигурациях есть обработка Выгрузка и загрузка данных XML (ищется через Все функции → Стандартные либо как внешняя обработка .epf). Она выгружает выбранные объекты в XML-файл по правилам обмена. XML затем открывается в Excel через Данные → Получить данные → Из файла → Из XML (в самом Excel), либо обрабатывается сторонним скриптом.

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

Что выбрать:

ЗадачаСпособ
Разово посмотреть данные в ExcelВывод списка или отчёт
Перенести объекты между базами 1СОбмен XML по правилам
Регулярная выгрузка по своей схемеВнешняя обработка .epf
Выгрузка из программы без участия человекаOLE / COM (см. ниже)

Готовые внешние обработки из интернета запускайте только из проверенного источника и сначала на копии базы. Обработка выполняет произвольный код и при ошибке или злом умысле может испортить данные.

Автоматизация: выгрузка в Excel через OLE

OLE (технология Automation, она же COM-соединение) позволяет управлять Excel прямо из кода 1С: создавать книгу, заполнять ячейки, задавать формат и сохранять файл. Это способ для регулярных выгрузок, которые должны идти без ручных действий.

Минимальный пример кода на встроенном языке 1С, который создаёт книгу Excel и записывает данные:

Эксель = Новый COMОбъект("Excel.Application");
Эксель.Visible = Ложь;
Книга = Эксель.Workbooks.Add();
Лист  = Книга.Worksheets(1);

Лист.Cells(1, 1).Value = "Контрагент";
Лист.Cells(1, 2).Value = "ИНН";
Лист.Cells(2, 1).Value = "ООО Ромашка";
// ИНН пишем как текст, чтобы не потерять ведущие нули
Лист.Cells(2, 2).NumberFormat = "@";
Лист.Cells(2, 2).Value = "0123456789";

Книга.SaveAs("C:\Выгрузки\kontragenty.xlsx");
Книга.Close();
Эксель.Quit();

Как это работает:

  • Новый COMОбъект("Excel.Application") запускает Excel в фоне (поэтому на машине должен быть установлен Microsoft Excel);
  • через объекты Workbooks, Worksheets, Cells заполняются книга, лист и ячейки;
  • строка NumberFormat = "@" задаёт ячейке текстовый формат — это и спасает ИНН и артикулы от потери нулей;
  • SaveAs сохраняет файл, Quit закрывает Excel.

Код с COMОбъект работает только в тонком и толстом клиенте под Windows и требует установленного Excel на том же компьютере. На веб-клиенте и на сервере Linux этот способ не сработает — там выгрузку делают через объект ТабличныйДокумент и его метод Записать с указанием типа файла Excel.

Если Excel на машине нет, ту же задачу решает чистый 1С без OLE: формируете ТабличныйДокумент в коде и сохраняете методом Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX). Это надёжнее OLE и не зависит от Microsoft Office.

После работы через OLE обязательно вызывайте Эксель.Quit() и освобождайте объекты. Иначе невидимые процессы Excel.exe остаются висеть в памяти, накапливаются при каждом запуске и со временем тормозят компьютер. На сервере такие зависшие процессы — частая причина утечки памяти.

OLE оправдан, когда выгрузка нужна редко и Excel уже стоит на рабочем месте. Для промышленных сценариев (выгрузка на сервере, по расписанию, без установленного Office) выбирайте ТабличныйДокумент — он работает одинаково на Windows и Linux.

Кодировка и формат: почему «съезжают» числа и даты

Самая частая претензия к выгрузке — «в Excel всё сломалось»: вместо ИНН 7701234567 стоит 7,70123E+09, у артикула 007 пропали нули, а длинный номер счёта превратился в экспоненту. Это не баг 1С, а поведение Excel: он сам приводит длинные цифровые строки к числу.

Что с этим делать:

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

Главное правило: поля-идентификаторы (ИНН, КПП, артикулы, номера счетов) — это текст, а не числа. Если выгрузка идёт через код или внешнюю обработку, задавайте таким ячейкам текстовый формат "@" до записи значения. При ручном выводе списка проще сначала создать пустой лист Excel, выделить нужные столбцы, поставить им текстовый формат, и только потом вставлять данные.

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

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

Можно ли выгрузить данные из 1С без установленного Excel?
Да. Табличный документ сохраняется в формат *.xlsx средствами самой платформы 1С — Excel для этого не нужен, он понадобится только чтобы потом открыть файл. OLE-способ (COMОбъект) — единственный, который требует установленного Excel.
Как выгрузить сразу несколько справочников одним файлом?
Штатной командой «Вывести список» — по одному списку за раз, каждый на свой лист. Для выгрузки нескольких объектов в один файл нужна внешняя обработка или обмен XML.
Почему в выгруженном списке не все колонки?
В файл попадают только те колонки, что видны в списке и отмечены галочками в окне «Вывести список». Добавьте нужные колонки через Ещё → Изменить форму, затем повторите выгрузку.
Чем отличается выгрузка в XML от выгрузки в Excel?
XML сохраняет структуру и связи объектов — он для переноса данных между программами. Excel (*.xlsx) — это плоская таблица для чтения и анализа человеком. Для отчётности и просмотра берите Excel, для интеграции между системами — XML.
Как настроить автоматическую выгрузку по расписанию?
Автоматическую выгрузку делают регламентным заданием, которое запускает внешнюю обработку или код формирования табличного документа. Настраивается это специалистом 1С в конкретной конфигурации; штатной кнопки «выгружать каждый день» в типовых решениях нет.