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

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

Перейти к публикации

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

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

	Экс.ВывестиСекцию("Отчет");
	
        Экс.СохранитьКак("d:\"+ИмяПользователя()+"\Отчет.xls");
        Экс.Показать();
Показать
2. Perfolenta 202 16.03.17 12:17 Сейчас в теме
3. agdam_m 6 18.09.18 13:57 Сейчас в теме
А что из себя представляет данная компонента? Какой у нее API?
4. Perfolenta 202 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 202 19.09.18 15:17 Сейчас в теме
(3) кстати, только сейчас заметил, что в статье, в примере, есть ошибка...
там в поле Цена устанавливается формула, а не значение и должно быть:
не Экс.УстановитьЗначениеПеременной("Цена",Цена);
а Экс.УстановитьФормулуЯчейки(НомерСтроки, НомерКолонки, Цена);
где НомерСтроки, НомерКолонки надо посчитать при выводе....
6. acanta 19.09.18 21:34 Сейчас в теме
Макет можно сделать в 1с(mxl), или нужно создавать файл excel?
7. Perfolenta 202 20.09.18 14:44 Сейчас в теме
макет надо делать в Эксель, в этом и был смысл компоненты... в mxl нельзя создать формулы в ячейках... да и форматирование точно скопировать из mxl в эксель трудно, хотя последние версии 1с не плохо с этим справляются, но не все равно не на 100%... а сам макет эксель можно зашить в конфигурацию и копировать во временный файл перед использованием, в этом проблемы нет...
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 200 000 руб.
Полный день

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день

Технический архитектор 1С
Екатеринбург
зарплата от 200 000 руб.
Полный день