Отчеты и Аналитика · 10 мин
Как сохранить из 1С в Excel с формулами
Как выгрузить отчёт из 1С в Excel с сохранением формул: настройки сохранения табличного документа, типовые отчёты, обработки и проверка результата.
Стандартное сохранение табличного документа из 1С в формат Excel переносит только значения и оформление: формулы в ячейках при этом заменяются готовыми числами. Это нормальное поведение платформы — табличный документ 1С и книга Excel устроены по-разному, и прямой конвертации «формула в формулу» в базовом сценарии нет. Однако получить файл, где итоги пересчитываются в Excel, всё же можно — несколькими способами.
Ниже разобраны рабочие варианты: настройка сохранения табличного документа, выгрузка типовых отчётов, использование макетов с формулами и программная запись через COM-объект. Для каждого способа указаны условия, при которых он даёт именно формулы, а не статичные числа.
Почему при обычном сохранении формулы пропадают
Табличный документ в 1С — это результат, а не вычислительная модель. Когда отчёт сформирован, платформа уже посчитала все итоги и хранит в ячейках готовые значения. Команда «Файл → Сохранить как → Лист Excel» просто переносит эти значения вместе со шрифтами, границами и объединёнными ячейками.
Даже если в конфигурации отчёт строится формулами на уровне запроса или СКД, к моменту вывода в табличный документ это уже числа. Поэтому открытый в Excel файл выглядит корректно, но при изменении исходных данных в строках итоги не пересчитываются — они «зашиты» в ячейки.
Понимание этого ограничения важно для выбора стратегии: либо формулы должны быть заложены в макет документа заранее, либо их нужно создавать на стороне Excel — вручную или программно.
Способ 1. Сохранение табличного документа в Excel
Базовый путь подходит, когда нужен быстрый файл для просмотра или печати, а живые формулы не обязательны. Откройте сформированный отчёт, затем «Файл → Сохранить копию» (в старых версиях — «Сохранить как») и выберите тип «Лист Excel (.xlsx)» или «Лист Excel 97–2003 (.xls)».
Обратите внимание на формат MXL как промежуточный вариант: табличный документ можно сохранить в MXL, а затем открыть в другой базе или передать коллеге. Но и при конвертации MXL в Excel формулы не появятся — по той же причине: их нет в источнике.
Если в диалоге сохранения доступен выбор «сохранять только значения» или аналогичная опция — проверьте её состояние. В типовых конфигурациях такой настройки обычно нет, но в отраслевых решениях и внешних обработках она встречается.
Способ 2. Макет с формулами в конфигурации
Если отчёт регулярно нужен в Excel именно с формулами, правильное решение — доработать макет. В 1С при программном выводе в табличный документ ячейке можно присвоить не значение, а строку формулы, а тип ячейки указать как формулу Excel при последующем сохранении через COM или при выгрузке специализированными средствами.
На практике это делает разработчик: в модуле формирования отчёта вместо записи итогового числа записывается выражение вида =СУММ(B2:B15) (или английский вариант =SUM(B2:B15) в зависимости от способа записи). Тогда в полученном файле итоги пересчитываются при изменении строк.
Такой подход требует доступа к конфигуратору или подключения внешней обработки. Если у вас типовая конфигурация на поддержке, доработку лучше выполнять через расширение, чтобы не потерять изменения при обновлении.
Лист = ExcelApp.ActiveSheet;
Лист.Cells(10, 2).Formula = "=SUM(B2:B9)";Способ 3. Программная выгрузка через COM-объект Excel
Наиболее гибкий способ — записать данные напрямую в книгу Excel через COM-соединение. В этом случае 1С управляет Excel как приложением: заполняет ячейки значениями, а в итоговые ячейки записывает именно формулы через свойство Formula или FormulaLocal.
Разница между этими свойствами существенна: Formula ожидает английские имена функций и запятую как разделитель аргументов, а FormulaLocal — локализованные имена и разделители в соответствии с региональными настройками. Ошибка в выборе свойства — частая причина того, что формула записывается как текст или вызывает ошибку.
Ограничения способа: на компьютере или сервере, где выполняется код, должен быть установлен Excel; работа через COM заметно медленнее обычного сохранения на больших объёмах; при выполнении на сервере 1С нужны соответствующие права и настройка DCOM. Для разовых выгрузок на клиенте это приемлемо, для регламентных заданий на сервере — требует аккуратной настройки.
- 1Создайте COM-объект Excel.Application и новую книгу
- 2Заполните ячейки данных значениями из результата запроса
- 3В итоговые ячейки запишите формулы через Formula или FormulaLocal
- 4Сохраните книгу методом SaveAs с указанием формата XLSX
- 5Закройте Excel и освободите COM-объект, чтобы не осталось зависших процессов
Способ 4. Выгрузить данные и добавить формулы в Excel
Самый простой вариант без доработок — сохранить отчёт как есть, а формулы ввести вручную уже в Excel. Откройте файл, замените статичные итоги формулами =СУММ(...), добавьте нужные вычисляемые столбцы. Для разовой задачи это быстрее любого программирования.
Если отчёт нужен регулярно, удобнее сделать шаблон: один раз подготовьте книгу Excel с формулами и форматированием, а из 1С выгружайте только «сырые» данные на отдельный лист. Формулы на основном листе будут ссылаться на лист данных — при каждой новой выгрузке достаточно заменить данные, и весь отчёт пересчитается сам.
Для выгрузки именно данных, а не оформленного отчёта, используйте «Вывести список» из динамических списков и табличных частей: правый клик по списку → «Вывести список» → сохранение в табличный документ → Excel. Так вы получите плоскую таблицу, к которой легко привязать формулы и сводные таблицы.
Сравнение вариантов
Быстро и без доработок, но формул нет — только значения. Подходит для печати и передачи готового отчёта.
Формулы появляются автоматически при каждой выгрузке. Требует разработки или расширения конфигурации.
Полный контроль над формулами и оформлением. Нужен установленный Excel, медленнее, сложнее в поддержке.
Без доработок 1С, формулы живут в шаблоне. Требует дисциплины: каждый раз заменять лист данных.
Проверка результата и типичные ошибки
После выгрузки откройте файл и кликните на итоговую ячейку: если в строке формул видно выражение вида =СУММ(B2:B15) — формула на месте. Если там число — сохранилось значение, и способ нужно менять. Дополнительная проверка: измените любое число в строке данных и убедитесь, что итог пересчитался.
Частая ошибка — формула записана как текст: в ячейке видна строка «=СУММ(...)», но расчёта нет. Причины: ячейка имеет текстовый формат, перед знаком «=» есть пробел или апостроф, либо при COM-записи использовано свойство Value вместо Formula. Лечится сменой формата ячейки на «Общий» и повторным вводом формулы.
Ещё одна группа проблем — локализация: формула с английским именем функции, записанная через FormulaLocal в русский Excel, вызовет ошибку #ИМЯ?. Проверяйте соответствие свойства записи и языка функций. Также следите за типами данных: числа, выгруженные как текст (слева от ячейки зелёный треугольник), не участвуют в расчётах СУММ.
Как проверить результат
Видно выражение =СУММ(...) или аналог
В строке формул статичное число
Итог меняется после правки строки
Итог остаётся прежним
Числа выровнены вправо, участвуют в расчётах
Зелёный треугольник, числа как текст
Excel открывает книгу без предупреждений
Сообщения о повреждении или неверных формулах
Когда какой способ выбрать
Для разовой задачи без доступа к конфигуратору оптимален шаблонный подход: выгрузка данных плюс готовая книга с формулами. Он не требует доработок, работает в любой типовой конфигурации и легко передаётся коллегам.
Если отчёт с формулами нужен регулярно и пользователей много — вложитесь в доработку: макет с формулами или COM-выгрузка окупаются за счёт исключения ручных операций и ошибок. Для серверных регламентных выгрузок без установленного Excel рассмотрите формирование XLSX программно через пакетную сборку файла — это сложнее, но не требует Excel на сервере.
Как выбрать действие
Частые вопросы
Можно ли сохранить отчёт СКД из 1С сразу с формулами Excel?
Напрямую — нет: СКД выводит готовые значения в табличный документ. Чтобы получить формулы, нужна доработка выгрузки (COM или программное формирование XLSX) либо шаблон Excel, в который подставляются выгруженные данные.
Почему в Excel формула отображается как текст и не считает?
Чаще всего ячейка имеет текстовый формат или формула записана со служебным символом перед знаком «=». Смените формат на «Общий», войдите в ячейку (F2) и нажмите Enter. При программной записи проверьте, что используется свойство Formula, а не Value.
Какие имена функций использовать: СУММ или SUM?
Зависит от способа записи. Через COM-свойство Formula — только английские (SUM) с запятой-разделителем; через FormulaLocal — локализованные (СУММ) с разделителем региональных настроек. При ручном вводе в русский Excel используйте СУММ.
Выгружаются ли формулы при сохранении в формат MXL?
Нет. MXL — родной формат табличного документа 1С, он хранит значения и оформление. При открытии MXL и последующем сохранении в Excel формулы не появятся.
Что делать, если числа из 1С не суммируются в Excel?
Проверьте, не выгружены ли они как текст: признак — зелёный треугольник в углу ячейки и выравнивание влево. Исправляется командой «Преобразовать в число» или умножением диапазона на 1 через «Специальную вставку». При программной выгрузке записывайте значения числовым типом, а не строкой.
Можно ли выгружать в Excel с формулами без установленного Excel?
Да, если формировать XLSX программно — это обычный ZIP-пакет с XML-файлами, куда можно записать и формулы. Способ требует разработки, но работает на сервере без офисного пакета и значительно быстрее COM.
Что важно запомнить
Обычное сохранение из 1С переносит в Excel только значения. Формулы появляются при доработке выгрузки (макет, COM, программный XLSX) или при использовании шаблона Excel с заранее введёнными формулами. Проверяйте результат: итоговая ячейка должна содержать выражение и пересчитываться при изменении данных.