Имя: Пароль:
1C
 
Жутко зависает выгрузка в эксель
0 falselight
 
22.05.19
09:49
Перебором результата запросе, идет заполнение полей листа эксель.
каждая вот такая строка перебирается по несколько секунд с паузами то есть.
Почему?

            Лист.Cells(СчетчикСтрок, 1).Value             = Строка(ТекСтрока.ВерсияДанных);
                Лист.Cells(СчетчикСтрок, 2).Value             = Строка(ТекСтрока.Родитель);
1 falselight
 
22.05.19
09:49
Всего 50 строк, 50 полей строки то есть.
2 falselight
 
22.05.19
09:56
&НаКлиенте
Процедура СохранитьВExcel(Команда)
        ФайлДанных = "\обмен\Номенклатура.xlsx";
        Попытка
            Excel = Новый COMОбъект("Excel.Application");
        Исключение
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;
        Попытка
            Книга                             = Excel.WorkBooks.Add();
            //Зададим первому листу имя
            Лист                             = Книга.WorkSheets(1);
            Лист.Name                       = "Выгрузка данных";
            Excel.ActiveWindow.View         = 2;     // Режим страничного просмотра
            Excel.ActiveWindow.Zoom         = 100;  // Масштаб
            Лист.PageSetup.Orientation         = 2;     // Альбомная ориентация
            СчетчикСтрок = 1; //Заполнение ТЧ начинаем со второй строки
            Для Каждого ТекСтрока Из ТЗ Цикл
                Лист.Cells(СчетчикСтрок, 1).Value             = Строка(ТекСтрока.ВерсияДанных);
                Лист.Cells(СчетчикСтрок, 2).Value             = Строка(ТекСтрока.Родитель);
                Лист.Cells(СчетчикСтрок, 3).Value             = Строка(ТекСтрока.ЭтоГруппа);
                Лист.Cells(СчетчикСтрок, 4).Value             = Строка(ТекСтрока.Код);
                Лист.Cells(СчетчикСтрок, 5).Value             = Строка(ТекСтрока.Наименование);
                Лист.Cells(СчетчикСтрок, 6).Value             = Строка(ТекСтрока.АлкогольнаяПродукция);
                Лист.Cells(СчетчикСтрок, 7).Value             = Строка(ТекСтрока.Артикул);
                Лист.Cells(СчетчикСтрок, 8).Value             = Строка(ТекСтрока.Вес);
                Лист.Cells(СчетчикСтрок, 9).Value             = Строка(ТекСтрока.Весовой);
                Лист.Cells(СчетчикСтрок, 10).Value             = Строка(ТекСтрока.ВидАлкогольнойПродукцииЕГАИС);
3 falselight
 
22.05.19
10:05
Это было вот из за этого


         Excel.ActiveWindow.View         = 2;     // Режим страничного просмотра

            Excel.ActiveWindow.Zoom         = 100;  // Масштаб

            Лист.PageSetup.Orientation         = 2;     // Альбомная ориентация
4 SleepyHead
 
гуру
22.05.19
10:38
Платформа 1с какая? Если 1с8, то фигли вы так мучаетесь?

Таб.Сохранить(...) // ТабличныйДокумент, читать синтаксис-помощник
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший