v8: Быстрый вывод данных в Excel по OLE с помощью COMSafeArray. Ключевые слова: 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; //Делаем Ексель видимым
КонецПроцедуры
|