Книга знаний

1С:Предприятие / v8 / Приемы программирования / OLE, COM

v8: Быстрый вывод данных в Excel по OLE с помощью COMSafeArray.

Пример быстрого вывода данных в Excel по OLE с помощью COMSafeArray.Автор статьи: ptiz | Редакторы: acsent,
Последняя редакция №6 от 02.10.08 | История
URL: http://kb.mista.ru/article.php?id=707

Ключевые слова: Excel, COMSafeArray, вывод, таблица


Объект COMSafeArray  в 1С 8 очень помогает с выводом больших таблиц в Excel.
Тысячи строк выводятся в секунды.

Пример вывода кода и наименования товаров в Excel.


Ексель=Новый COMОбъект("Excel.Application");
Ексель.Workbooks.Add();

Запрос = Новый Запрос("ВЫБРАТЬ
         |    Номенклатура.Код,
         |    Номенклатура.Наименование
         |ИЗ
         |    Справочник.Номенклатура КАК Номенклатура");
ТаблицаРезультата  = Запрос.Выполнить().Выгрузить();

ВсегоСтрок = ТаблицаРезультата.Количество();
ВсегоКолонок = ТаблицаРезультата.Колонки.Количество();

МассивКОМ = Новый COMSafeArray("VT_VARIANT", ВсегоКолонок, ВсегоСтрок);

Для индСтрок = 0 По ТаблицаРезультата.Количество() - 1 Цикл
   
   СтрокаТаблицы = ТаблицаРезультата[индСтрок];
   
   Для индКолонок = 0 По ВсегоКолонок - 1 Цикл
       МассивКОМ.SetValue(индКолонок, индСтрок, СтрокаТаблицы[индКолонок]);
   КонецЦикла;
   
КонецЦикла;

Ексель.Range(Ексель.Cells(1,1), Ексель.Cells(ВсегоСтрок,ВсегоКолонок)).Value = МассивКОМ;    

Ексель.Visible=1; //Делаем Ексель видимым

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика