Отчёт из 1С в Excel со сводной, диаграммой и формулами: файл собирает сервер без Excel и COM
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Задача звучит так: "пришлите эксель-отчёт, и чтобы на втором листе была сводная". ТабличныйДокумент второго листа не делает вовсе, дальше остаётся Excel.Application - которого на сервере нет, а под Linux не будет.
Здесь это три строки:
Настройки = ФорматированиеXLSX.НовыеНастройки(); ФорматированиеXLSX.ДобавитьСводнуюТаблицу(Настройки, "A2:E10", "Склад", "Сумма"); ФорматированиеXLSX.Сохранить(ТабДок, "D:\отчёт.xlsx", Настройки);
Лист под сводную библиотека создаёт сама. Файл пишет сервер 1С: без Excel, без COM, без внешних компонент, в фоновом задании и под Linux.
Шестнадцать функций
Библиотека не заменяет ТабличныйДокумент, а дописывает в его готовый файл то, чего он не умеет. Оформление, которое платформа уже сделала, остаётся на месте.
Обязательные:
НовыеНастройки- пустой набор настроек, первая строка любого вызова.Сохранить- применяет набор к табличному документу и пишет xlsx. Возвращает протокол.
Аналитика:
ДобавитьСводнуюТаблицу- сводная Excel на отдельном листе: поле строк, поле колонок, операция (сумма, количество, среднее, максимум, минимум).ДобавитьДиаграмму- гистограмма, линейчатая, график или круговая по диапазону, на листе с данными.
Оформление:
ДобавитьУсловноеФорматирование- подсветка по условию, восемь операторов, свои цвета фона и текста.ДобавитьЦветовуюШкалу- градиент от минимума к максимуму по диапазону.ДобавитьГистограммуВЯчейках- полоска длиной по значению внутри ячейки.ДобавитьЗначки- светофор, стрелки, флажки; по третям диапазона раскладываются сами.
Данные:
ДобавитьВыпадающийСписок- проверка данных: выбор из списка прямо в ячейке.ДобавитьАвтофильтр- кнопки фильтра на строке заголовков.ЗакрепитьОбласти- шапка и колонки не уезжают при прокрутке.ДобавитьФормулу- настоящая=SUM(...), а не посчитанный текст. Недостающую ячейку создаёт сама: табличный документ пустые не выгружает.УстановитьЧисловойФормат- деньги, проценты, даты, разделители разрядов.ДобавитьГиперссылку- ссылка в ячейке, схемаmailto:подставляется сама.
Печать и защита:
ПовторятьШапкуПриПечати- шапка печатается на каждой странице.ЗащититьЛист- защита от случайной правки, пароль необязателен.
Что в поставке
Один архив: расширение .cfe, внешняя обработка .epf, справка по каждому методу, готовые сценарии, текст общего модуля для ручной установки.
Расширение - основной способ. Ничего не заимствует и не переопределяет, только добавляет свой общий модуль, поэтому обновление типовой его не касается.
Внешняя обработка - попробовать, ничего не устанавливая, и для баз, где расширения запрещены регламентом. Переменную в примерах зовут так же, как общий модуль, поэтому код работает дословно в обеих упаковках.
Демо-стенд
Обработка открывается как консоль: слева каталог функций, справа готовый пример вызова. Кнопка выполняет ровно тот текст, который виден в поле, и открывает получившийся файл. Текст правится на месте: подставили свои диапазоны, нажали, посмотрели в Excel.

На записи выше сводная разворачивается и перестраивается прямо в Excel - это настоящий объект книги, а не картинка, отрисованная табличным документом.
Консоль живёт только во внешней обработке. В расширение, которое ставится в рабочую базу, выполнение произвольного текста не идёт.
Что возвращает вызов
Результат = ФорматированиеXLSX.Сохранить(ТабДок, Путь, Настройки); // Результат.Успех - собралось всё // Результат.Частично - файл валиден, но применилось не всё // Результат.Ошибки - что не получилось и почему // Результат.Применено - что добавлено сверх табличного документа
Каждый шаг сборки идёт в собственном обработчике исключений и под своим именем: отказал один - остальные продолжают, а в Ошибки попадает строка с именем шага.
Ограничения
- Пересчёт сводной делает офис получателя: в файле лежит её описание, а не посчитанные цифры. Проверено в Excel 16, в LibreOffice Calc и Р7-Офисе не проверялось.
- Пока файл в защищённом просмотре, лист сводной выглядит пустым. Это поведение офиса, а не дефект файла.
- Лист один, второй появляется только под сводную. Многолистовые книги произвольного вида не собираются.
- Только запись, чтения xlsx нет.
- Сводных диаграмм нет: у листа ровно один блок рисунков, и они дерутся за него с обычной диаграммой.
- Файл пишет сервер 1С: путь должен быть доступен серверу, а учётной записи службы нужны права на запись.
- Выпадающий список не длиннее 253 символов - предел самого Excel. Библиотека говорит об этом явно, а не обрезает молча.
Требования
Сборка проверена на 8.3.27.1606, прогон на 8.3.20.2290, управляемые формы. Конфигурация любая. Excel, COM и внешние компоненты не нужны ни при сборке, ни на сервере.
Как это устроено внутри - в статье Отчёт на первом листе, сводная на втором.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
24900 руб.
20.08.2024 83173 431 171
16500 руб.
02.09.2020 285493 1606 423
14000 руб.
17.04.2026 16689 63 62
5490 руб.
12.08.2021 48387 654 71
6000 руб.
11.12.2019 67992 1163 3
12444 руб.
29.10.2014 237822 777 544