Из 1С в таблицу Excel: от кнопки в списке до выгрузки по расписанию

· 10 мин

Содержание

Выгрузить данные из 1С в Excel проще всего так: откройте список или отчёт, нажмите Еще → Вывести список… (для списков) или кнопку сохранения (для отчётов) и выберите формат «Лист Microsoft Excel 2007-…» (*.xlsx). Программировать для этого ничего не нужно, а сам Excel на компьютере даже не обязателен: 1С пишет файл xlsx сама.

Частое заблуждение — что выгрузить можно только отчёт, а справочники и журналы документов «не выгружаются». Выгружается любая таблица, которую 1С показывает на экране. Код, обработки и планировщик нужны, когда выгрузку надо повторять каждый день, собирать нестандартный набор полей или отдавать файл без участия человека. Всё ниже — для платформы 8.3 с интерфейсом «Такси»; способы общие для БП 3.0, ЗУП 3.1, УТ 11 и других типовых конфигураций.

Какой способ выгрузки из 1С в Excel выбрать

Сначала определитесь, что именно нужно и как часто. От этого зависит способ.

СпособКогда подходитНужен Excel на ПКСложность
Еще → Вывести список…Справочник, журнал документов, любой списокНетМинимальная
Сохранение отчёта в xlsxОСВ, анализ счёта, отчёты по продажам, остаткамНетМинимальная
Копирование Ctrl+C → Ctrl+VНужен кусок таблицы на 20–200 строкДаМинимальная
Внешняя обработка с ТабличныйДокумент.ЗаписатьСвой набор полей, регулярная выгрузкаНетСредняя
COM-объект Excel.ApplicationНужны формулы, форматирование, готовый шаблон книгиДа, WindowsСредняя
Рассылка отчётов / запуск по расписаниюФайл должен появляться сам: каждый день, в папку или на почтуНетСредняя

💡 Если сомневаетесь, начните с первых двух строк таблицы. Они закрывают большую часть задач бухгалтера и кладовщика без помощи программиста.

Выгрузка списка через меню «Еще»

Этот способ работает в любом списке: номенклатура, контрагенты, журнал счетов-фактур, список сотрудников.

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

Как вывести колонки, которых нет в списке

Окно «Вывести список » показывает только поля, доступные в форме. Если нужного реквизита нет:

  • 🔧 сначала добавьте колонку в сам список: Еще → Изменить форму…, затем повторите вывод;
  • 🔍 для справочника без привычной формы используйте режим «Все функции»: включите флажок «Отображать команду Все функции» в ≡ → Сервис → Параметры, затем ≡ → Все функции → Справочники и откройте нужный объект. Там список с полным набором реквизитов.

Иерархия и группы

У справочников с группами вывод идёт по текущему уровню. Чтобы получить все элементы сразу, переключите список в режим «Список» (без дерева групп) через Еще → Режим просмотра. Иначе в файл попадёт только содержимое открытой папки.

Сохранение отчёта в Excel

Отчёты на системе компоновки (ОСВ, анализ субконто, «Остатки и обороты», «Ведомость по товарам на складах») сохраняются напрямую.

  1. Сформируйте отчёт с нужными периодом и отбором.
  2. Нажмите кнопку «Сохранить» (дискета) на панели отчёта или Еще → Сохранить как….
  3. Выберите формат xlsx, имя файла и папку.

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

ФорматДля чего
*.xlsxОсновной вариант для Excel 2007 и новее
*.xlsСтарый Excel, ограничение 65 536 строк
*.odsLibreOffice / OpenOffice Calc
*.pdfПечать и отправка, без редактирования
*.mxlВнутренний формат 1С, откроется только в 1С

Копирование части таблицы

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

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

Группировки отчёта

Свёрнутые группировки при сохранении в xlsx становятся группами строк Excel со значками +/− слева. Если нужна плоская таблица для сводной — в настройках отчёта уберите промежуточные итоги или выберите вариант без группировок, а потом уже сохраняйте.

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

Когда штатного списка мало (например, нужна номенклатура с ценами, остатками и штрихкодами в одной строке), пишут внешнюю обработку .epf. Главный приём специалиста — не трогать Excel вообще, а собрать ТабличныйДокумент на сервере и записать его в xlsx методом Записать. Это работает на сервере 1С, в веб-клиенте и на Linux, где Excel нет.

Пример серверной процедуры в форме обработки:

&НаСервере
Процедура ВыгрузитьНоменклатуруНаСервере(ПутьКФайлу)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Наименование КАК Наименование,
    |    Номенклатура.Артикул КАК Артикул
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    НЕ Номенклатура.ЭтоГруппа
    |    И НЕ Номенклатура.ПометкаУдаления
    |УПОРЯДОЧИТЬ ПО
    |    Наименование";

    Выборка = Запрос.Выполнить().Выбрать();

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Область(1, 1, 1, 1).Текст = "Код";
    ТабДок.Область(1, 2, 1, 2).Текст = "Наименование";
    ТабДок.Область(1, 3, 1, 3).Текст = "Артикул";

    НомерСтроки = 1;
    Пока Выборка.Следующий() Цикл
        НомерСтроки = НомерСтроки + 1;
        ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст = Выборка.Код;
        ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст = Выборка.Наименование;
        ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст = Выборка.Артикул;
    КонецЦикла;

    ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);

КонецПроцедуры

Поля запроса подставьте под свою конфигурацию: реквизит «Артикул» есть в номенклатуре БП 3.0 и УТ 11, но в нетиповой базе может называться иначе. Проверить имена можно в Конфигураторе или в режиме «Все функции».

💡 Путь в ПутьКФайлу относится к серверу 1С, а не к компьютеру пользователя. В клиент-серверной базе указывайте сетевую папку, на которую у учётной записи службы 1С есть права записи. Иначе файл «пропадёт» на диске сервера или запись упадёт с ошибкой доступа.

Как подключить готовую обработку

  • 📂 разово: ≡ → Файл → Открыть… и выберите файл .epf;
  • 📌 постоянно: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, добавить из файла. Так обработка будет доступна всем пользователям с правами и попадёт в резервную копию базы .

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

Прямая запись в Excel через COM (OLE-автоматизация)

COM нужен, если файл должен выглядеть строго определённым образом: формулы, условное форматирование, заполнение готового шаблона с логотипом. 1С запускает сам Excel и управляет им командами.

Ограничения сразу:

  • 🖥 работает только на Windows и только там, где установлен Microsoft Excel;
  • 🐢 запись по одной ячейке медленная: на 10–20 тысячах строк выгрузка может занимать минуты;
  • 🚫 запускать Excel на сервере 1С не рекомендует и сама Microsoft: зависшие процессы EXCEL.EXE копятся и съедают память.

Пример клиентской процедуры (тонкий клиент на Windows):

&НаКлиенте
Процедура ЗаписатьВExcel(Команда)

    Excel = Новый COMОбъект("Excel.Application");
    Excel.DisplayAlerts = Ложь;

    Книга = Excel.Workbooks.Add();
    Лист = Книга.Worksheets(1);

    Лист.Cells(1, 1).Value = "ИНН";
    Лист.Cells(1, 2).Value = "Контрагент";

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

    Книга.SaveAs("C:\Выгрузка\Контрагенты.xlsx");
    Книга.Close();
    Excel.Quit();

КонецПроцедуры

В рабочей обработке данные для строк получают серверным вызовом (массив структур), а на клиенте только раскладывают по ячейкам. Обязательно оборачивайте код в Попытка … Исключение и вызывайте Excel.Quit() в обеих ветках, иначе при ошибке процесс Excel останется висеть в диспетчере задач.

💡 Комбинированный приём: соберите данные через ТабличныйДокумент и сохраните в xlsx (быстро), а COM используйте только для финального оформления уже готового файла: открыть, задать формулы итогов, сохранить.

Выгрузка в веб-клиенте и через браузер

В веб-клиенте 1С (база открывается в Chrome, Edge, Firefox или Яндекс Браузере) работают те же команды: Вывести список… и сохранение отчёта. Отличается только последний шаг: файл не записывается в выбранную папку, а скачивается браузером.

  1. Сформируйте список или отчёт и нажмите «Сохранить».
  2. Выберите xlsx.
  3. Браузер сохранит файл в папку загрузок или спросит, куда сохранить, — по его настройкам.

Что учесть:

  • 🔒 если скачивание не начинается, проверьте, не заблокировал ли браузер всплывающее окно или загрузку с этого адреса, и разрешите их для сайта базы;
  • 🧩 для некоторых операций с файлами (выбор папки, работа с несколькими файлами) 1С может предложить установить расширение для работы с файлами — это штатный компонент, его можно поставить по запросу программы;
  • ☁️ в облачной 1С (fresh, сервисы партнёров) всё работает так же, как в веб-клиенте: COM-объект там недоступен, остаётся ТабличныйДокумент.

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

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

Рассылка отчётов (без программиста)

В типовых конфигурациях на БСП есть механизм рассылки: Администрирование → Печатные формы, отчеты и обработки → Рассылки отчетов.

  1. Создайте рассылку, добавьте нужный отчёт с сохранённым вариантом и настройками.
  2. Выберите формат вложения xlsx.
  3. Укажите доставку: на электронную почту получателям или в сетевую папку.
  4. Включите расписание — например, ежедневно в 7:00.

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

Регламентное задание в расширении

Программист добавляет в расширение конфигурации регламентное задание, которое вызывает код из раздела про обработку и пишет файл в сетевую папку. Настройки расписания затем меняются без доработок: через Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

Планировщик Windows и параметр /Execute

Для файловой базы без сервера подойдёт запуск 1С по расписанию с внешней обработкой. Обработка в обработчике открытия формы делает выгрузку и закрывает программу командой ЗавершитьРаботуСистемы(Ложь).

@echo off
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" ENTERPRISE /F "D:\Base\Buh" /N "Выгрузка" /P "пароль" /Execute "D:\Обработки\ВыгрузкаВExcel.epf" /DisableStartupDialogs

Номер платформы в пути замените на свой. Для серверной базы вместо /F "путь" используется /S "сервер\база". Задачу создайте в «Планировщике заданий» Windows на нужное время.

Пароль в bat-файле лежит открытым текстом. Заведите для выгрузки отдельного пользователя 1С с правами только на чтение нужных данных и закройте доступ к папке с bat-файлом. Каждый запуск занимает лицензию на время работы.

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

Ошибки при выгрузке из 1С в Excel и как их исправить

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

Ещё две вещи, о которых узнают только после первой выгрузки:

  • 📅 даты из отчёта иногда приходят строкой «01.10.2025 0:00:00». Если Excel не распознал дату, используйте «Данные → Текст по столбцам» с форматом «ДМГ»;
  • 🔗 объединённые ячейки в шапке отчёта мешают сортировке и сводным таблицам. Для анализа удаляйте шапку или выбирайте вариант отчёта без объединения.

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

Можно ли выгрузить из 1С сразу в Google Таблицы?
Напрямую нет. Сохраните файл в xlsx и загрузите его в Google Диск: Таблицы откроют его с сохранением колонок.
Как выгрузить в Excel табличную часть одного документа, например товары из реализации?
Откройте документ, перейдите на вкладку с товарами и в командной панели табличной части нажмите Еще → Вывести список. Дальше всё как для обычного списка.
Сохраняются ли в Excel формулы из отчёта 1С?
Нет. В файл попадают готовые значения и оформление. Формулы можно добавить в Excel вручную или через COM после выгрузки.
Сколько строк можно выгрузить за один раз?
Формат xlsx ограничен 1 048 576 строками на лист. На практике упираются раньше в память компьютера: таблицы на сотни тысяч строк лучше выгружать частями по периоду.
Как загрузить данные обратно из Excel в 1С?
Для списков в типовых конфигурациях есть команда загрузки из файла в разделах справочников и в табличных частях документов. Это отдельная операция со своими правилами сопоставления колонок.