Как вывести отчёт из 1С в Excel: все способы с примерами

Почему экспорт в Excel из 1С — обязательный навык для специалистов

Работа с 1С:Предприятие редко обходится без необходимости переноса данных в Microsoft Excel или LibreOffice Calc. Бухгалтеры нуждаются в этом для формирования отчётности по шаблонам ФНС, аналитики — для построения сводных таблиц, а программисты — для интеграции с внешними системами. Однако стандартные инструменты выгрузки часто скрыты в глубинах интерфейса или требуют знания 1С:Запрос.

В этой статье мы разберём 5 рабочих методов экспорта — от простых (для пользователей без технических навыков) до продвинутых (с использованием кода). Особое внимание уделим типичным ошибкам, таким как потеря форматирования при выгрузке дат или сумм с копейками, и покажем, как их избежать. Все инструкции актуальны для 1С:Предприятие 8.3 (включая последние релизы 2026 года) и совместимы с Excel 2016–2023.

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

📊 Как часто вы выгружаете данные из 1С в Excel?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не делал этого

Способ 1: Стандартный экспорт через меню «Файл»

Самый простой метод, который не требует знания программирования. Подходит для выгрузки отчётов, списков документов или справочников в формате .xlsx или .xls. Рассмотрим на примере отчёта «Оборотно-сальдовая ведомость».

Инструкция:

  • 📊 Сформируйте нужный отчёт в 1С (например, через Отчёты → Оборотно-сальдовая ведомость).
  • 💾 Нажмите Файл → Сохранить как... (или Ещё → Выгрузить в новых версиях).
  • 📄 Выберите формат:
    • Excel 2007–2023 (.xlsx) — рекомендуется для больших объёмов данных;
    • Excel 97–2003 (.xls) — если нужно совместимость со старыми версиями;
    • Текстовый формат (.csv) — только для табличных данных без форматирования.
  • 📁 Укажите папку для сохранения и подтвердите.

⚠️ Внимание: При выгрузке через меню Файл теряются некоторые настройки форматирования (например, условное оформление ячеек или объединённые строки). Если они критичны, используйте методы 3 или 4.

☑️ Подготовка к стандартному экспорту

Выполнено: 0 / 4

Способ 2: Выгрузка через «Все функции» (универсальный метод)

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

Пошаговая инструкция:

  1. Откройте нужную таблицу (например, Справочники → Номенклатура).
  2. Нажмите Ещё → Все функции (или Ctrl+Shift+F).
  3. В строке поиска введите Выгрузить и выберите ПечатьИВыгрузкаДанных.Выгрузить().
  4. В открывшемся окне:
    • 📋 Укажите диапазон данных (текущий список или всё);
    • 📑 Выберите формат Excel;
    • ⚙️ Отметьте галочкой Сохранять форматирование (если нужно).
  • Нажмите Выгрузить и дождитесь завершения.
  • 🔹 Преимущество метода: работает даже для тех таблиц, где нет явной кнопки экспорта. Например, так можно выгрузить журнал регистрации или логи изменений.

    Что делать, если команда "Выгрузить" не отображается?

    Это означает, что у вашей роли в 1С нет прав на использование объекта "ПечатьИВыгрузкаДанных". Обратитесь к администратору за настройкой прав или используйте альтернативные способы (например, через внешнюю обработку).

    Способ 3: Экспорт через внешнюю обработку (для сложных отчётов)

    Если стандартные методы не подходят — например, нужно объединить данные из нескольких отчётов или применить сложное форматирование — используйте внешние обработки. Это файлы с расширением .epf, которые расширяют функционал 1С.

    Где взять обработку:

    • 🔍 Скачать готовые решения на порталах:
      • Инфостарт (раздел «Обработки»);
      • ITS 1С (каталог решений);
      • GitHub (поиск по запросу 1C export to Excel).
    • 🛠️ Написать самостоятельно (требует знания 1С:Предприятие).

    Как подключить и использовать:

    1. Скачайте файл обработки (например, ВыгрузкаВExcel.epf).
    2. В 1С перейдите в Файл → Открыть → Выбрать файл обработки.
    3. Следуйте инструкциям в интерфейсе обработки (обычно нужно указать источник данных и параметры выгрузки).
    4. Нажмите Выгрузить и сохраните файл.

    💡 Пример кода для простой обработки:

    Процедура ВыгрузитьВExcel(ТаблицаДанных, ИмяФайла)
    

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

    Книга = Excel.Workbooks.Add();

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

    // Заполнение заголовков

    Для Каждого Колонка Из ТаблицаДанных.Колонки Цикл

    Лист.Cells(1, Колонка.Индекс + 1).Value = Колонка.Заголовок;

    КонецЦикла;

    // Заполнение данных

    Для i = 0 По ТаблицаДанных.Высота() - 1 Цикл

    Для Каждого Колонка Из ТаблицаДанных.Колонки Цикл

    Лист.Cells(i + 2, Колонка.Индекс + 1).Value = ТаблицаДанных.Получить(i, Колонка.Индекс);

    КонецЦикла;

    КонецЦикла;

    Книга.SaveAs(ИмяФайла);

    Excel.Quit();

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

    Способ 4: Автоматический экспорт через 1С:Запрос и COM-объект

    Для программистов и продвинутых пользователей, которым нужно гибко настраивать выгрузку (например, фильтровать данные перед экспортом или добавлять формулы в Excel). Метод основан на использовании 1С:Запрос и COM-объекта Excel.

    Пример кода для выгрузки данных о продажах:

    Процедура ВыгрузитьПродажиВExcel()
    

    // 1. Получаем данные через запрос

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    | Продажи.Дата КАК Дата,

    | Продажи.Контрагент КАК Контрагент,

    | Продажи.СуммаДокумента КАК Сумма

    |ИЗ

    | Документ.РеализацияТоваровУслуг КАК Продажи

    |УПОРЯДОЧИТЬ ПО

    | Дата";

    РезультатЗапроса = Запрос.Выполнить();

    Выборка = РезультатЗапроса.Выбрать();

    // 2. Создаём Excel-файл

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

    Книга = Excel.Workbooks.Add();

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

    // 3. Заполняем заголовки

    Лист.Cells(1, 1).Value = "Дата";

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

    Лист.Cells(1, 3).Value = "Сумма";

    // 4. Заполняем данные

    НомерСтроки = 2;

    Пока Выборка.Следующий() Цикл

    Лист.Cells(НомерСтроки, 1).Value = Выборка.Дата;

    Лист.Cells(НомерСтроки, 2).Value = Выборка.Контрагент;

    Лист.Cells(НомерСтроки, 3).Value = Выборка.Сумма;

    НомерСтроки = НомерСтроки + 1;

    КонецЦикла;

    // 5. Форматируем сумму как денежный формат

    ДиапазонСумм = Лист.Range(Лист.Cells(2, 3), Лист.Cells(НомерСтроки - 1, 3));

    ДиапазонСумм.NumberFormat = "# ##0.00 руб;[Красный]-# ##0.00 руб";

    // 6. Сохраняем файл

    ПутьКФайлу = "C:\Отчёты\Продажи_" + ТекущаяДата() + ".xlsx";

    Книга.SaveAs(ПутьКФайлу);

    Excel.Quit();

    Сообщить("Файл сохранён: " + ПутьКФайлу);

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

    ⚠️ Внимание: При использовании COM-объекта Excel на сервере 1С (например, в фоновом задании) может возникнуть ошибка "Не удаётся создать объект OLE". Решение — установить Microsoft Excel на сервер или использовать альтернативные библиотеки (например, EPPlus через .NET).

    Проблема Причина Решение
    Данные выгружаются как текст, а не числа Excel автоматически определяет формат ячеек Явно задайте формат через NumberFormat (см. пример выше)
    Русские буквы отображаются как "???" Некорректная кодировка при сохранении Используйте .xlsx вместо .xls или укажите кодировку UTF-8
    Файл не открывается, пишет "повреждён" Excel был закрыт неправильно при сохранении Добавьте Excel.DisplayAlerts = Ложь; перед SaveAs
    Медленная выгрузка больших данных Построчное заполнение ячеек Используйте массивы: Лист.Range("A2:C100").Value = МассивДанных;

    Способ 5: Выгрузка через ODBC (для интеграции с внешними системами)

    Если вам нужно регулярно обновлять данные в Excel из 1С (например, для дашбордов в Power BI), настройте подключение через ODBC. Этот метод позволяет связать Excel напрямую с базой 1С и обновлять данные по расписанию.

    Инструкция по настройке:

    1. 🔧 Установите драйвер ODBC для 1С (скачать можно на сайте users.v8.1c.ru).
    2. 🖥️ Настройте источник данных:
      • Откройте Панель управления → Администрирование → Источники данных ODBC;
      • Добавьте новый источник, выбрав 1C:Enterprise 8 ODBC Driver;
      • Укажите путь к базе 1С и credentials для подключения.
  • 📊 В Excel:
    • Перейдите на вкладку Данные → Получить данные → Из других источников → Из ODBC;
    • Выберите созданный источник и укажите запрос (например, SELECT * FROM Справочник.Номенклатура);
    • Нажмите Загрузить — данные подтянутся в Excel.

    Плюсы метода:

    • 🔄 Автоматическое обновление данных по кнопке или расписанию;
    • 📈 Возможность использовать сводные таблицы и графики Excel;
    • 🔗 Интеграция с Power Query для трансформации данных.

    Минусы:

    • ⚙️ Требует настройки на стороне сервера и клиента;
    • 🛡️ Нужны права на доступ к базе 1С;
    • 🐢 Медленнее, чем прямая выгрузка через COM.

    Типичные ошибки и как их исправить

    Даже при правильной выгрузке могут возникать проблемы с данными. Разберём самые частые:

    1. Даты отображаются как числа (например, 44197 вместо 01.01.2021)

    🔹 Причина: Excel хранит даты как количество дней с 1900 года. 1С передаёт их в таком же формате, но без форматирования.

    🔧 Решение: После выгрузки выделите столбец с датами → Главная → Формат ячеек → Дата.

    2. Суммы с копейками становятся текстом (например, "1000.00" вместо 1000)

    🔹 Причина: Разделитель дробной части в 1С (запятая) не совпадает с настройками Excel (точка).

    🔧 Решение: В 1С перед выгрузкой замените запятую на точку:

    СуммаСтрокой = СтрЗаменить(Формат(Сумма, "ЧДЦ=0; ЧГ=0"), ",", ".");

    или настройте региональные параметры Windows.

    3. Файл весит сотни мегабайт при небольшом объёме данных

    🔹 Причина: 1С сохраняет данные в формате .xls (старый) или добавляет скрытые листы.

    🔧 Решение: Всегда выбирайте .xlsx и удаляйте ненужные листы после выгрузки.

    4. Кириллические символы заменяются на "???"

    🔹 Причина: Некорректная кодировка при сохранении в .csv.

    🔧 Решение: Сохраняйте в .xlsx или укажите кодировку UTF-8:

    Текст = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8);
    Как ускорить выгрузку больших данных?

    1. Используйте массивы вместо построчного заполнения ячеек: Лист.Range("A2:C1000").Value = МассивДанных;

    2. Отключите обновление экрана в Excel:

    Excel.ScreenUpdating = Ложь;

    3. Сохраняйте файл в формате .xlsx (а не .xls).

    FAQ: Ответы на частые вопросы

    Можно ли выгрузить отчёт из 1С в Excel без потери форматирования?

    Да, но не все элементы форматирования сохранятся. Например, цвет ячеек и шрифты обычно переносятся, а условное форматирование и объединённые ячейки — нет. Для полного сохранения используйте внешние обработки или COM-объект с ручной настройкой стилей.

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

    На macOS стандартные методы (через COM-объект) не работают, так как нет native-версии Excel для 1С. Альтернативы:

    • Используйте .csv и открывайте в Numbers;
    • Настройте ODBC-подключение;
    • Выгружайте данные через Google Sheets (есть обработки для 1С).
    Почему при выгрузке в Excel суммы округляются?

    Это происходит из-за настроек точности вычислений в Excel. Решения:

    • Перед выгрузкой в 1С округлите суммы до 2 знаков: Окр(Сумма, 2);
    • В Excel установите формат ячейки Числовой с 2 decimal;
    • Используйте .xlsx вместо .xls (в старом формате ограничение на точность).
    Как автоматизировать выгрузку по расписанию?

    Для этого подойдут:

    • Регламентные задания 1С — настройте задачу с вызовом обработки экспорта;
    • Планировщик Windows — запускайте 1cv8.exe с параметрами;
    • Внешние сервисы (например, 1С:EDT или OneScript).

    Пример команды для планировщика:

    "C:\Program Files\1cv8\8.3.xxx\bin\1cv8.exe" DESIGNER /S "ИмяБазы" /N "Пользователь" /P "Пароль" /Execute "ОбщийМакрос.ЭкспортВExcel()"

    Можно ли выгрузить данные из 1С в Google Таблицы?

    Да, для этого:

    1. Используйте внешнюю обработку с интеграцией через Google Sheets API;
    2. Выгружайте данные в .csv и импортируйте в Google Таблицы;
    3. Настройте ODBC-подключение через Google BigQuery.

    Готовые решения есть на Инфостарте (поиск по запросу 1С Google Sheets).