Вход | Регистрация

1С:Предприятие ::

Метки: 

Как ускорить запись в Ексель защищенный?

Я
   RomaH
 
11.02.18 - 16:11
327    Excel.Application.Run(Имяфайла + "!AddRowF");    32    41,122671    28,42
339    Лист3.Range("B" + НомерСтр).Value = Стр.ПациентНаименование;    307    11,080234    7,66
343    Лист3.Range("F" + НомерСтр).Value = Стр.ФИОРодственника;    306    10,038958    6,94
340    Лист3.Range("C" + НомерСтр).Value = Стр.ДатаРождения;    307    9,855679    6,81
341    Лист3.Range("D" + НомерСтр).Value = Стр.СерияПаспорта + " " + Стр.НомерПаспорта;    307    9,677820    6,69
366    Лист3.Range("R" + НомерСтр).Value = Стр.Организация2009Наименование;    306    9,616122    6,65
363    Лист3.Range("K" + НомерСтр).Value = Стр.Кратность;    306    9,569813    6,61
342    Лист3.Range("E" + НомерСтр).Value = Строка(Стр.КатегорияВнереализация);    306    9,500092    6,57


т.е. сначала встроенным макросом добавляется нужное количество строк (10 строк в секунду - а надо 10 000)
потом в каждую строку пишутся значения - 30 шт в сек * 7 - т.е. примерно 4 строки в секунду

есть варианты ускорить?
 
 
   RomaH
 
1 - 11.02.18 - 16:11
Excel = Новый COMОбъект("Excel.Application");
   RomaH
 
2 - 11.02.18 - 16:12
еще раз - книга защищена, добавление строк можно делать только макросом
   vde69
 
3 - 11.02.18 - 16:20
COM - это и есть макрос

ну а еще - 10к строк в еселе - пошли заказчика нафиг... и сделай ему нормальный отчет на компоновке..
   Изучаю1С8
 
4 - 11.02.18 - 16:27
(3) +++
Никто не смотрит отчеты в 10к строк.
   shadow_sw
 
5 - 12.02.18 - 04:34
вывести в табдок, сохранить в эксель, копировать массив в нужный документ
   АНДР
 
6 - 12.02.18 - 05:16
отключить отображение и авторасчет на момент вывода,  пересчитать книгу после.

использовать шаблон со сгенеренным пулом ячеек
   RomaH
 
7 - 12.02.18 - 07:16
(7)
Excel.Visible    Ложь    Булево
https://www.dropbox.com/s/tk3dvujo3sizkjs/2018-02-12_07h12_28.png?dl=0

авторасчет вроде отключил (но файлик-то защищенный)
разницы не заметил

а вот с пулом ячеек - мысль - хоть немного, но сократит время генерации
   Лефмихалыч
 
8 - 12.02.18 - 07:26
(0) думаю, если ты сделаешь самостоятельно файл экселя, у которого колонки будут в точности на том же месте, то ни кто не заметит разницы.
Еще можно попытаться договориться о каком-то другом формате взаимодействия. С того конца могут даже обрадоваться такому предложению
   Йохохо
 
9 - 12.02.18 - 07:35
   Защитник009
 
10 - 12.02.18 - 20:08
Можно ещё и так сделать 3dnews.ru/582339
 
 Рекламное место пустует
   RomaH
 
11 - 12.02.18 - 20:56
прикол еще в чем
на win xp эта штука отрабатывает за 2.5 часа
а на win 7 и более - мы так и не дождались завершения за 3 суток
макрос работает через буфер 
ексель - тот который xls
   RomaH
 
12 - 12.02.18 - 20:56
(10)
После инсталляции набора макросов PLEX (431 кб; 500 руб.; демо-версия на 500 запусков)
   Йохохо
 
13 - 12.02.18 - 22:32
(11) то, что он защищен мешяет делать oSheet.Range("A2").Resize(100, 3).Value = DataArray ?
   Йохохо
 
14 - 12.02.18 - 22:33
   cons74
 
15 - 13.02.18 - 06:48
(11) 2.5 часа... налицо ошибка архитектуры, которая скорее всего следствие кривой постановки задачи


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует