Книга знаний

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

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

Пример быстрого вывода данных в Excel по OLE с помощью COMSafeArray.Автор статьи: ptiz | Редакторы: acsent,
Последняя редакция №2 от 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

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