1С в Эксель, выедает память #689538


#0 by AndreyBorovkov
Здравствуйте уважаемые форумчане! Посоветуйте что можно предпринять в таком случае: При сохранении отчета (с картинками) занимается много памяти и после сохранения файла память остается занятой (см. фото). Сама процедура такая - сохраняется вся таблица одним методом в эксель , потом открывается этот файл и происходит обход необходимых ячеек в которые вставляется формула). Оптимизируется както этот процес сохранения или как можно освободить память после сохранения файла?
#1 by dj_serega
Как сохраняешь? Может COM не сбрасываешь?
#2 by AndreyBorovkov
#3 by Maxus43
используй Excel.comconnector например
#4 by Maxus43
тьфу, это к 1с так можно, к экселю через АДОДБ, вобще со временем размер должен уменьшится, мусорщики памяти не спят
#5 by grayshadow
память выжирается, когда срабатывает ExcelФайл = Excel.WorkBooks.Open(FileName) ? можно еще добавить ExcelФайл.Close
#6 by H A D G E H O G s
Память выжирается, когда формируется отчет с картинками.
#7 by AndreyBorovkov
&
#8 by H A D G E H O G s
колосок мне в носок...
#9 by AndreyBorovkov
#10 by Повелитель
Зачем так извращаться? Не проще было вывести все это в табдок и потом одним нажатием в эксель отправить?
#11 by grayshadow
вот прям интересно, у кого получалось запихать в эксель формулу, используя типовое сохранение табдока?
#12 by grayshadow
минутку... в процедуре нету СформироватьОтчет, идет обращение к Результату значит память жрецца не в процедуре:)
#13 by AndreyBorovkov
Может причиной быть что все это происходит в "попытке"?
#14 by grayshadow
и интересно что там за отчет... у меня аналогичный прайс с картинками и характеристиками, порядка 1000 строк, не жрал особо
#15 by AndreyBorovkov
Отчет скд, 2 вложеные схемы компоновки, картинки плюс формула Сумма = колонка цена * колонка заказ и формула скидки = поле с процентом скидки * (Сумм(Яейка1:Ячейка2)+Сумм(Яейка3:Ячейка4)+....)/100 И таких сумм штук 50
#16 by grayshadow
повторюсь: если память жрется при формировании отчета, то процедура выгрузки тут ни при чем
#17 by AndreyBorovkov
нет! память начинает наростать как снежный ком только после нажатия сохранить в эксель! Отчет формируется как положено!
#18 by grayshadow
итоговый размер файла какой?
#19 by AndreyBorovkov
до 10 мб
#21 by grayshadow
имхо тут не эксель тупит на скрине видно, что процессов экселя нет а интересно чему равен комобъект после application.quit?
#22 by AndreyBorovkov
какие свойства интересуют?
#23 by grayshadow
хм, а он не умер,он все еще комобъект со свойствами
#24 by AndreyBorovkov
да не умер, сейчас попробую..
#25 by grayshadow
и кстати почему на исключениях не убивается эксель?:)
#26 by AndreyBorovkov
не продумал( Неа неопрделено не очищает память((((
#27 by AndreyBorovkov
Приходится 1с перезапускать что б память очистилась
#28 by AndreyBorovkov
Вот сам выходной отчет Но обычно формируют в 1500 строк
#29 by AndreyBorovkov
Опрделили какая строка делает такой "прирост" памяти Но почему память после сохранения не очищается?(((
#30 by AndreyBorovkov
Даже если сохранять Файл -> сохранить как -> имя.xlsx -> Сохранить Происходит тоже самое
#31 by H A D G E H O G s
картинки там потому что.
#32 by Кирпич
потому что у нас теперь везде ООП и XML, много памяти и мощные процессоры.
#33 by AndreyBorovkov
Как же так сделать что б память очистилась после сохранения?
#34 by Кирпич
+да. ещё у нас сборщики мусора есть.
#35 by Кирпич
жалуйся в 1с. по другому никак
#36 by H A D G E H O G s
никак.
#37 by AndreyBorovkov
Пипец(((((
#38 by Кирпич
а шо вы хотели. 1С она как антивирус. Только антивирус думает, компьютеры существуют для поиска вирусов, а 1с думает, что компьютеры нужны только для 1с.
#39 by AndreyBorovkov
))) ох уж эта 1с
#40 by H A D G E H O G s
Картинка остается в памяти еще жестче, чем просто СложныйОбъект. СложныйОбъект после потери видимости переводит память в reserved и у меня есть мысли, как это исправить благодаря Картинка не переводит память в reserved и все, никак. Можно конечно сделать для процесса EmptyWorkingSet но я не уверен, что это зашевелит сборщик.
#41 by Кирпич
сборщик лучше вообще не трогать, я думаю. если он начнет работать, то остановится уже всё.
#42 by AndreyBorovkov
Спасибо всем за помощь .. жаль конечно что проблема не решаема
#43 by H A D G E H O G s
Можно попробовать на вас Нетленку 3.0 :-)
#44 by Кирпич
проблема то решаема. не забивай память и всё.
#45 by H A D G E H O G s
А ты хитрец!
#46 by AndreyBorovkov
??
#47 by Кирпич
хорошая картинка
#48 by Кирпич
надо будет на майку такую нафигачить
#49 by H A D G E H O G s
Отправил на ящик.
#50 by Кирпич
а откуда у тебя картинки беруться?
#51 by AndreyBorovkov
#52 by AndreyBorovkov
отправьте сюда andrey_borovkov@ukr.net
#53 by Кирпич
а они у тебя не гигантские случайно?
#54 by Кирпич
ну самое тупое решение(если не вникать чо ты там вообще делаешь) - запустить еще один экземпляр 1с, который создаст прайс и захлопнется. по оле или там еще как нибудь.
#55 by AndreyBorovkov
Я вот думаю сначала сохранять без картинок а потом открывать и подставлять картинки по ячейкам.
#56 by Кирпич
ну если 1с картинки потом в памяти не оставляет, то вполне.
#57 by Кирпич
можно картинки выгрузить в файл и пускай excel их сам вставляет
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С