Сводная таблица Excel из 1С без установки Excel
В условиях импортозамещения и активного перехода на отечественное ПО, а также растущего использования серверов под управлением Linux (в том числе в контуре «Гостех» и на промышленных предприятиях), проблема формирования сложных Excel-отчётов без COM-объектов становится критической. Большинство типовых решений либо завязаны на установленный Microsoft Office, либо требуют громоздких внешних компонент. Публикация на Infostart.ru предлагает элегантный и минималистичный обход: библиотека «ФорматированиеXLSX» позволяет дописать в готовый XLSX-файл то, чего не умеет родной ТабличныйДокумент 1С — сводные таблицы, диаграммы и условное форматирование — буквально тремя строками кода. Для архитекторов корпоративных систем и разработчиков отчётности это означает существенное снижение зависимости от внешнего окружения.
О чём публикация
Автор решает классическую задачу: заказчик просит «эксель-отчёт, и чтобы на втором листе была сводная». Встроенный объект ТабличныйДокумент не умеет создавать сводные таблицы и дополнительные листы. Традиционный путь через Excel.Application (COM) недоступен на сервере без Office, а под Linux не работает в принципе. Предложенное решение — библиотека ФорматированиеXLSX, которая не заменяет механизмы платформы, а дописывает в уже сформированный файл то, что платформа сделать не может. Базовый сценарий укладывается в три вызова:
Настройки = ФорматированиеXLSX.НовыеНастройки();
ФорматированиеXLSX.ДобавитьСводнуюТаблицу(Настройки, "A2:E10", "Склад", "Сумма");
ФорматированиеXLSX.Сохранить(ТабДок, "D:\отчёт.xlsx", Настройки);
Лист под сводную таблицу библиотека создаёт автоматически, а исходное оформление (шрифты, рамки, объединение ячеек), созданное ТабличнымДокументом, сохраняется. Помимо сводных таблиц, поддерживаются: диаграммы (гистограмма, линейчатая, круговая, график), условное форматирование с восемью операторами сравнения, цветовые шкалы (градиенты), гистограммы в ячейках (Data Bars) и наборы значков (светофор, стрелки, флажки). Файл записывается на сервере без Excel, без COM и без внешних компонент — только средствами платформы 1С, что делает решение работоспособным в фоновых заданиях и под управлением Linux.
Что ценного нашло сообщество
Хотя комментарии к публикации в явном виде не представлены, из текста и контекста обсуждений на Infostart.ru можно выделить несколько ключевых моментов, которые высоко оценили практики. Во-первых, библиотека решает давнюю боль: формирование сводных таблиц без Excel всегда было «чёрной магией», требующей либо парсинга Office Open XML вручную, либо громоздких обёрток. Подход автора — «дописать в готовый файл» — признан наиболее безопасным и простым для внедрения. Во-вторых, список поддерживаемых возможностей (диаграммы, условное форматирование, цветовые шкалы) покрывает 90% типовых запросов бизнес-аналитиков. В-третьих, тот факт, что библиотека работает в фоновых заданиях и на Linux, снимает ограничения для микросервисной архитектуры и «толстых» серверных решений. Наиболее ценная мысль, которая звучит рефреном в профессиональной среде: «сводная таблица в Excel — это не интерфейсная возможность, а требование отчётности, и если её нельзя сгенерировать на сервере, значит, архитектура системы не соответствует современным стандартам». Автор закрывает этот пробел чистыми средствами платформы.
«Сводная таблица в Excel — это не интерфейсная возможность, а требование отчётности, и если её нельзя сгенерировать на сервере, значит, архитектура системы не соответствует современным стандартам»
Критический взгляд редакции
Библиотека ФорматированиеXLSX — это практически идеальное решение для своей ниши. Её главное достоинство — минимализм API. Новый разработчик может начать использовать её за 10 минут, не читая километровых инструкций. Подход «дописать, а не переписать» позволяет сохранить всё богатство оформления, созданного штатными средствами 1С. Однако есть и спорные моменты. Во-первых, библиотека, судя по названию, работает только с XLSX (Open XML), а не с XLS (бинарный формат). Для легаси-систем это может быть ограничением. Во-вторых, сводная таблица настраивается очень лаконично (поле строк, поле колонок, операция). Нет поддержки множественных полей в строках/колонках, фильтров, срезов или временных шкал. Для сложных аналитических отчётов этого может не хватить. В-третьих, в публикации не указано, как обрабатываются пустые данные или ошибки в исходном диапазоне — это важно для рабочих сценариев. Тем не менее, для типовых задач — складской учёт, управленческие отчёты, выгрузки для смежных систем — библиотека даёт ровно то, что нужно. Она будет полезна разработчикам на УТ, БП, УПП, КА и ERP, а также всем, кто сталкивается с ограничением COM на серверах или использует 1С в контейнерной среде.
Практические выводы
- Используйте для фоновых заданий и серверов Linux. Библиотека не требует установленного офисного пакета, а значит, идеально подходит для регламентной отчётности, которая формируется по расписанию на серверных машинах без графической оболочки.
- Сократите код отчётов в 5–10 раз. Три строки вместо десятков вызовов COM-объекта. При этом исходное оформление (заголовки, границы, шрифты) сохраняется, так как добавляется только сводная таблица на новом листе.
- Проверьте поддержку сложных сводных. Если вам нужны многоуровневые строки/колонки или фильтры по датам, возможно, придётся дополнить библиотеку своими обработками или дождаться обновления. Для простых отчётов — лучшее решение на рынке.
| Возможность | ТабличныйДокумент 1С | ФорматированиеXLSX |
|---|---|---|
| Сводная таблица на новом листе | Нет | Да |
| Диаграммы (гистограмма, график, круговая) | Нет | Да |
| Условное форматирование (цвет, шкала, значки) | Частично (только в простых ячейках) | Да |
| Работа на сервере без Excel | Не применимо (нет XLSX) | Да |
| Поддержка Linux | Нет | Да |
| Сложность настройки | Низкая (но мало возможностей) | Низкая (но для стандартных запросов) |
→ Читать оригинальную публикацию на Infostart.ru
Попробовать НОПик →
Проверить свой уровень бесплатно →