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

02.12.16

Разработка - Разработка внешних компонент

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

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

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

Компонента 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, проблем не замечено.

компонента Excel отчет печатная форма вывод

См. также

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    209813    620    524    

438

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150379    365    375    

499

Маркетплейсный загрузчик для 12-ти маркетплейсов в "БП 3", "УТ 11", "КА 2", ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    31793    234    63    

117

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

5400 руб.

04.06.2019    101126    296    173    

312

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

3600 руб.

07.06.2022    14947    78    0    

59

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 руб.

09.11.2016    214602    921    886    

938
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Perfolenta 203 16.03.17 12:17 Сейчас в теме
Пример для 1с 8:
Попытка
		Экс = ПолучитьCOMОбъект("", "rsa1CExtRep.ExcelAs1CReport");
	Исключение             
		Сообщить("Не получилось создать объект ""rsa1CExtRep.ExcelAs1CReport""!");
		Возврат;
	КонецПопытки;                                                                         
	Экс.ИсходнаяТаблица("d:\Шаблоны\Шаблон отчета.xls", "Лист1");

	Экс.УстановитьЗначениеПеременной("ИмяОтчета", "Отчет по затратам"); 

	Экс.ВывестиСекцию("Отчет");
	
        Экс.СохранитьКак("d:\"+ИмяПользователя()+"\Отчет.xls");
        Экс.Показать();
Показать
2. Perfolenta 203 16.03.17 12:17 Сейчас в теме
Пример для восьмерки:
3. agdam_m 6 18.09.18 13:57 Сейчас в теме
А что из себя представляет данная компонента? Какой у нее API?
4. Perfolenta 203 19.09.18 15:02 Сейчас в теме
(3) вы наверное имели ввиду не API, а технологию, на которой работает компонента? Технология COM, а точнее OLE Automation, написана на Vb 6. Написана давно и с тех пор постоянно мной применяется... пережила 7.7 и успешно живет на 8.3...
API компоненты это те методы и свойства, которые она предоставляет. Если вы все же имели ввиду API компоненты, то документации я не делал... API можно посмотреть в любом Object Browser, например, в Word или Excel.
В компоненте 2 класса:
ExcelAs1CReport - для создания отчета, как описано в статье
ExcelTo1CReader - для чтения данных из Excel по именам колонок, но этот класс можно считать устаревшим, т.к. технология чтения из Excel со времен 7.7 очень развилась и в 8.3 врядли у кого-то с этим проблемы... хотя эта компонента сама ищет заголовки колонок и в некоторых случаях может быть полезна, если пользователи присылают таблицы в которых заголовки все время в разных колонках и столбцах...

ExcelAs1CReport имеет следующие методы:
- Public Sub УстановитьФормулуЯчейки(Строка As Long, Колонка As Long, Формула As String)
- Public Sub ИсходнаяТаблица(ПутьКФайлуШаблонаТаблицы As String, ИмяТаблицы As String)
- Public Sub ВывестиСекцию(ИмяСекции As String, Optional ИзмШиринуКолонок As Long = 1, Optional ИзмВысотуСтрок As Long = 1)
- Public Sub ПрисоединитьСекцию(ИмяСекции As String, Optional ИзмШиринуКолонок As Long = 1)
- Public Sub НоваяСтраница()
- Public Sub Показать()
- Public Sub СохранитьКак(ПутьКФайлу As String)
- Public Sub УстановитьЗначениеПеременной(ИмяПеременной As String, Значение As Variant)
- Public Function ПоказатьОшибки() As String
- Public Function ЛистШаблона() As Object
- Public Function ЛистОтчета() As Object
- Public Function ТекущаяСтрока() As Long
- Public Function ТекущаяКолонка() As Long
- Public Function ТекущаяВысотаСекции() As Long

Если вам компонента действительно нужна, то спрашивайте, что не понятно, буду отвечать...
5. Perfolenta 203 19.09.18 15:17 Сейчас в теме
(3) кстати, только сейчас заметил, что в статье, в примере, есть ошибка...
там в поле Цена устанавливается формула, а не значение и должно быть:
не Экс.УстановитьЗначениеПеременной("Цена",Цена);
а Экс.УстановитьФормулуЯчейки(НомерСтроки, НомерКолонки, Цена);
где НомерСтроки, НомерКолонки надо посчитать при выводе....
6. acanta 19.09.18 21:34 Сейчас в теме
Макет можно сделать в 1с(mxl), или нужно создавать файл excel?
7. Perfolenta 203 20.09.18 14:44 Сейчас в теме
макет надо делать в Эксель, в этом и был смысл компоненты... в mxl нельзя создать формулы в ячейках... да и форматирование точно скопировать из mxl в эксель трудно, хотя последние версии 1с не плохо с этим справляются, но не все равно не на 100%... а сам макет эксель можно зашить в конфигурацию и копировать во временный файл перед использованием, в этом проблемы нет...
Оставьте свое сообщение