gifts2017

1С:ExcelReport - COM компонента для вывода в Excel в стиле 1С

Опубликовал Серж Пеленг (Peleng) в раздел Программирование - Внешние компоненты

Когда необходимо создать из 1С файл Excel с богатым форматированием и встроенными в ячейки формулами, приходится писать на языке 1С довольно объемный код. Предлагаемая компонента позволяет создать макет Excel и вывести отчет «как в 1С», с использованием простого задания параметров и вывода/присоединения секций.

Компонента 1С:ExcelReport предназначена для облегчения создания отчетов в формате Excel из программ 1С, особенно таких отчетов, в которых много визуального форматирования, шрифты, рамки, цвета, картинки и т.д.. Программисты хорошо знают встроенный язык 1С и умеют строить все необходимые пользователю отчеты, которые затем пользователь может сохранить в Excel средствами платформы. Но жизнь часто диктует необходимость формировать отчеты непосредственно в формате Excel, а не сохранять в этот формат отчеты созданные средствами . Например, это необходимо тогда, когда созданный отчет должен быть отправлен клиенту по электронной почте автоматически без участия бухгалтера. Или, если необходимо, что бы готовый отчет содержал все нужные формулы. Таких случаев можно привести много...

Писать сложный код по построению отчета через OLE Automation нудно, долго и не интересно. Программисты зачастую плохо знают объектную модель Excel т.к. это другая специализация и другой язык программирования (VBA). Поэтому приятней делать все на знакомом языке используя привычные приемы.

Используя данную компоненту программист может создавать отчет Excel почти так же, как он создает его средствами . Полностью исключается необходимость знать язык VBA. Более того, переделка отчета в отчет Excel практически не потребует переделки кода, всего-лишь небольшой доработки (это касается 1С версии 7.7, т.к. в версии 8 этот подход применяется редко из-за наличия СКД)...

Приведенный фрагмент программы достаточно ясно показывает, как использовать компоненту, и для программиста 1С другой документации не потребуется :

Экс=СоздатьОбъект("rsa1CExtRep.ExcelAs1CReport");
Экс.ИсходнаяТаблица(КаталогИБ()+"ExtForms\ШаблонЭкономОтчетПоКиеву.xls", "Шаблон"); 
//Выводим ШАПКУ отчета
Экс.УстановитьЗначениеПеременной("Период",ПериодСтр(Дата1,Дата2));
Экс.ВывестиСекцию("Шапка");
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1)=1 Цикл
    Наим=Строка(БИ.Субконто(1));
    Кво=БИ.ДО("К");
    Сумма=БИ.ДО("С");
    Цена="=RC[1]/RC[-1]";
    Экс.УстановитьЗначениеПеременной("Кво",Кво);
    Экс.УстановитьЗначениеПеременной("Сумма",Сумма);
    Экс.УстановитьЗначениеПеременной("Цена",Цена);
    Экс.УстановитьЗначениеПеременной("Наименование",Наим);
    //Выводим СТРОКУ отчета
    Экс.ВывестиСекцию("Строка");
КонецЦикла;
//Выводим ПОДВАЛ отчета
Экс.УстановитьЗначениеПеременной("Сумма",БИ.ДО("С"));
Экс.ВывестиСекцию("Подвал");
//Вызов выходного отчета в окно просмотра и редактирования.
Экс.СохранитьКак(ИмяФайлаВыгрузки);
Экс.Показать();

Поддерживается вывод и присоединение секций к таблице Excel, а из незнакомых методов только УстановитьЗначениеПеременной(ИмяПеременной,ЗначениеПеременной), что так же можно не комментировать, всем понятно без объяснений.

Небольшое пояснение к способу создания в Excel таблиц-шаблонов: Можно задать только прямоугольные блоки задавая имена областям таблицы. В этой версии не поддерживается синтаксис пересечения секций (например, "Строка|Наименование" и т.д.), но это компенсируется тем, что в Excel можно именовать любые области таблицы.

Пример приведен для 1С 7.7, но компонента прекрасно работает в версиях 8.2 и 8.3, проверено на практике. За несколько лет использования на разных версиях Windows, в том числе в терминальном режиме, а так же с разными версиями Excel, проблем не замечено.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
1CExcelReport
.rar 24,59Kb
01.12.16
2
.rar 1.0.0.10 24,59Kb 2 Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа