|
Excel.application плохая производительность при загрузке .xls в 1С. | ☑ | ||
---|---|---|---|---|
0
Alexandrovich
17.04.21
✎
01:35
|
В общем очень долго загружается 4000 строк из *.xls или *.xlsx в 1С.
На компе стоит офис 2007, платформу 1С пробовал 8.3.14,8.3.15, 8.3.17, кстати офис тоже пробовал 2016. Подключение происходит через внешнюю компоненту excel.application. Размер файла 7Мб. Железо: Intel Xeon (Skylake, IBRS) 2.29 GHz SSD 16Гб ОП При загрузке файла нагрузка идет только на процессор 25%, на диск и оперативку загрузки нету. И самое главное что на другом ПК загрузка происходит в два раза быстрее. В чем может быть проблема? |
|||
1
Garykom
гуру
17.04.21
✎
01:37
|
1 антивирус и прочие фоновые
2 грузи без экселя напрямую через табдок.прочитать |
|||
2
UFOdriver
17.04.21
✎
01:38
|
СпособЧтенияЗначенийТабличногоДокумента.Текст
|
|||
3
UFOdriver
17.04.21
✎
01:38
|
А уж опосля...
|
|||
4
Alexandrovich
17.04.21
✎
01:48
|
Еще есть варианты?
|
|||
5
UFOdriver
17.04.21
✎
01:51
|
https://infostart.ru/public/1025900/ Смотрели?
|
|||
6
UFOdriver
17.04.21
✎
01:52
|
Смущает ВК excel.application. Первый раз такую слышу. ВК я писал и прикручивал, но что бы майкросовтовский офис...
|
|||
7
UFOdriver
17.04.21
✎
01:56
|
Откажемся от вражеского ПО и доверимся монополии 1С "даром" что она все метОды предоставляет!
|
|||
8
Aleksey
17.04.21
✎
02:28
|
(4) сдредствами ексел сохранить в csv файл (это быстро) и дальше работать как с текстовым файлом (это тоже очень быстро)
|
|||
9
Злопчинский
17.04.21
✎
02:37
|
(8) или в дбф, будет наверное еще быстрее
по крайней мере когда я на клюшках так делал - разница была в десятки раз по сравнению с экселем |
|||
10
Жан Пердежон
17.04.21
✎
03:17
|
(0) *.xls* уже давно можно через табличный документ читать без excel.application
|
|||
11
Жан Пердежон
17.04.21
✎
03:23
|
а так в (0) всё не конкретно - плохо / быстро / медленно
на Xeon 2.29GHz - одно ядро на 100% грузит, а на "другом ПК" вполне может оказаться что-нибудь современное 4.2-4.7 GHz - отсюда и результат |
|||
12
NorthWind
17.04.21
✎
08:20
|
(6) да нет такой ВК. Это автор OLE-объект так называет, потому что не понимает чем одно отличается от другого.
|
|||
13
NorthWind
17.04.21
✎
08:27
|
По существу - эксель это последнее, чем сейчас стоит пользоваться для таких целей. Во-первых, требуется его наличие на компе, где происходит работа. Часто разбором файлов занимаются на сервере, а на серверах офис нужен как корове седло. При этом лицензия стоит вполне конкретных денег. Во-вторых, как я недавно убедился, даже при наличии офиса нужной битности иногда бывают всякие подземные стуки, из-за которых ком-объект не работает как надо, можно потратить кучу времени на выяснение причин и с неясным результатом. Ну и в-третьих, есть куча вариантов без экселя обойтись. Табличный документ в относительно свежих 1С. Прямой разбор XLSX файла. Драйвер Jet/Access для ADO.
|
|||
14
GANR
17.04.21
✎
13:12
|
(0) На CSV-ху заменить не вариант? Все эти Ворды и Эксели при загрузках больших объёмов - зло
|
|||
15
Alexandrovich
17.04.21
✎
16:56
|
Это все понятно, писал обработку другой человек, почему используется ecxel.application я не знаю, но задача сейчас в том чтобы как-то ускорить процесс загрузки товаров, 5 минут идет загрузка - это не совсем удобно.
|
|||
16
Garykom
гуру
17.04.21
✎
17:14
|
(15) Логично же что переписать обработку
И да если она написана криворуким недопрограммистом это будет сложней Чем если нормальным и там в самом начале все данные из файлика получаются в какой то объект 1С а затем юзаются А не так что тут же поиск/создание номенклатуры например и тут же в цикле чтение из ячеек екселя )) |
|||
17
NorthWind
17.04.21
✎
19:15
|
(16) на табличный документ 1С переписать не так уж трудно и в этом случае. Логика-то практически та же
|
|||
18
GANR
18.04.21
✎
11:34
|
(15) А вы, кстати, уверены, что тормоза возникают именно из за экселя? У меня подозрение, что на самом деле надо запись в базу-приемник ускорять. Если он там у себя грузит не "дельты", а каждый раз всю базу, рекомендую выкинуть эту обработку и написать свой обмен по инструкции по подсистеме "Обмен данными" с ИТС по правилам конвертации. Проще будет КД2 для БСП 2 (старая методика), если модель сервиса - лучше КД3 для БСП 3.
|
|||
19
GANR
18.04.21
✎
11:34
|
разумеется правила регистрации продумать
|
|||
20
GANR
18.04.21
✎
11:40
|
(0) Замер производительности при длительной операции покажите, если можно.
|
|||
21
mistеr
18.04.21
✎
15:24
|
>Подключение происходит через внешнюю компоненту excel.application
Это ты COM так называешь? :) >на другом ПК загрузка происходит в два раза быстрее Битность 1С и Excel совпадет? Если нет, там накладные расходы приличные. |
|||
22
Alexandrovich
18.04.21
✎
16:58
|
(21) Совпадает, 1с 32х и офис тоже 32х.
Еще есть варианты? Человек отказывается менять с DCOM на табчасть, получается мне надо менять сервак :) |
|||
23
craxx
18.04.21
✎
17:21
|
(22) а ты там кем?
|
|||
24
mistеr
18.04.21
✎
17:54
|
(22) Профилировать, как уже советовали.
|
|||
25
GANR
18.04.21
✎
19:19
|
(22) Так что замер производительности показывает? Можно ещё сходить свечку поставить, дохлую крысу к ране приложить - вдруг чума пройдёт.
|
|||
26
Alexandrovich
18.04.21
✎
22:57
|
(25) Какой замер производительности? Написал какая ситуация и все, нету никаких производительностей.
Файл загружается, но грузит долго, в это время сервер работает в холостую. |
|||
27
Garykom
гуру
18.04.21
✎
23:23
|
(26) ты программист или где?
делишь свой файл и в кол-во потоков фоновых по числу сервера грузишь |
|||
28
Garykom
гуру
18.04.21
✎
23:23
|
(27) *по числу ядер сервера
|
|||
29
acanta
18.04.21
✎
23:29
|
(28) точно! А не цикл...
|
|||
30
Alexandrovich
19.04.21
✎
01:15
|
(27) Можно ссылку на инструкцию если существует разбор такой процедуры.
|
|||
31
GANR
19.04.21
✎
05:40
|
(26) Замер производительности 1С - это гуглится. Как вы себе представляете не оптимизацию без этой информации? Если запрос тормозит действия одни, запись в базу - другие, если экселевские операции - третьи.
|
|||
32
Bigbro
19.04.21
✎
05:52
|
проблема в мегагерцах процессора, которые Эксель по ОЛЕ сжирает полностью.
|
|||
33
NorthWind
19.04.21
✎
10:00
|
(30) у меня не так давно была похожая ситуация, правда, она была хуже - на серваке в системе просто что-то покорежилось и Excel через OLE отказался нормально работать, при том что все остальное осталось в норме, а переустановка офиса не помогла. Переписывание на табличный документ решило проблему а) полностью; б) с минимальными затратами на кодирование, потому что логика обращения к ячейкам по сути та же; в) в качестве бонуса увеличилась производительность. А там думайте, решайте.
|
|||
34
DGorgoN
19.04.21
✎
10:05
|
(33) Я бы поспорил по производительности т.к. у экселя есть процедура копирующая область прямо в тз. Это существенно быстрее очень многих методов.
|
|||
35
NorthWind
19.04.21
✎
10:06
|
(34) хмм... а что за процедура? И откуда эксель вообще может знать про ТЗ, это же объект 1С.
|
|||
36
DGorgoN
19.04.21
✎
10:14
|
(35) Щас кину но в сети есть примеры. Там копирование с 1 области памяти в другую
|
|||
37
DGorgoN
19.04.21
✎
10:18
|
ТаблицаДанных = Новый ТаблицаЗначений();
чМаксКолонок = 30; Для чКол = 1 По чМаксКолонок Цикл ТаблицаДанных.Колонки.Добавить("Колонка"+СокрЛП(чКол)); КонецЦикла; Область = Excel.Range(Excel.Cells(1,1), Excel.Cells(ФайлСтрок,ФайлКолонок)); Данные = Область.Value.Выгрузить(); Для Счетчик = 0 По ФайлКолонок-1 Цикл ТаблицаДанных.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; |
|||
38
Kassern
19.04.21
✎
10:40
|
(0) а долго это сколько? И чем не устроило типовое чтение через табдок?
|
|||
39
Alexandrovich
19.04.21
✎
10:45
|
Кроме перехода на табличную часть, есть варианты как ускорить процесс загрузки?
|
|||
40
Irbis
19.04.21
✎
10:46
|
(39) Почто про CSV прощёлкал?
|
|||
41
Kassern
19.04.21
✎
10:48
|
(39) какая еще табличная часть? Вы точно программист? Табличная часть <> Табличный документ.
|
|||
42
Kassern
19.04.21
✎
10:48
|
(39) и про "долго" тоже не отписались, может для вас 5сек это уже долго
|
|||
43
Alexandrovich
19.04.21
✎
10:53
|
(42) 5 минут, вместо 1 минуты
|
|||
44
Dmitrii
гуру
19.04.21
✎
10:58
|
(40) Автор разработки <> Автор этой ветки.
Автор разработки не хочет переписывать что-либо в части загрузки. Автор ветки пытается найти волшебную кнопку "Сделать быстрее не изменяя подход к реализации". Такой кнопки нет. Разница в скорости, вероятнее всего, обусловлена причинами, не зависящими от платформы 1С. (Например, скорость процессора или какой-нибудь антивирус, сканирующий каждый чих с файлами excel). Но точно это сказать невозможно, т.к. замер производительности автор ветки делать не хочет. Ветку можно закрывать. |
|||
45
Kassern
19.04.21
✎
11:11
|
(44) не удивлюсь, если в там еще в цикле выполняется 4тыс запросов (по каждой позиции), а потом вопросы, "а че так долго то?!"
|
|||
46
Garykom
гуру
19.04.21
✎
11:26
|
(45) меня больше удивляет что вайтишник с нулевыми почти знаниями еще не обзавелся синдромом самозванца
ну или скорее админ зачем то в 1С полез причем админ херовый, который про как выжать максимум из железа не знает, особенно для 1С |
|||
47
Alexandrovich
19.04.21
✎
11:28
|
(46) :)
|
|||
48
Garykom
гуру
19.04.21
✎
11:31
|
(47) это не смешно
это страшно что в ИТ попали совершенно случайные люди, которые не обладают знаниями и опытом но им зарплату платят и нехилую! только непонятно за что |
|||
49
Kassern
19.04.21
✎
11:32
|
(48) чаще бывает другая ситуация, программист свалил, остался только сисадмин, нового программиста полгода найти не могут, заставляют админа через клизму 1с учить)
|
|||
50
Garykom
гуру
19.04.21
✎
11:32
|
(48)+ Хотя я и в медицине с подобным сталкивался
Когда хреновый терапевт перешел в УЗИсты - потому что там много платят А как не умеет нихрена так и осталось. Ну да знает как аппарат включить и некие манипуляции провести а понять что происходит и что желчный камнями забит никак... |
|||
51
Garykom
гуру
19.04.21
✎
11:32
|
(49) Ну флаг им в жопу
|
|||
52
Kassern
19.04.21
✎
11:33
|
(49) ведь для руководства, что тот компуторщик, что другой)
|
|||
53
Garykom
гуру
19.04.21
✎
11:33
|
(52) Надо руководство спросить чем они отличаются от дирижера.
Что один руками водит что другой... |
|||
54
Kassern
19.04.21
✎
11:39
|
(0) В общем для ТС, дам подсказку, как ускорить загрузку. Для 4к позиций не особо важно чем ты читать будешь (оле, ком, табдок) важно как будешь обрабатывать данные. Львиную долю занимает соответствие строк экселя к данным 1ски, особенно при кривой реализации. Лучше 1 раз получить заполненную таблицу значений по данным экселя, чем по каждой строчке долбиться к базе. Получили ТЗ, запихнули ее во временную таблицу в запрос, далее соединили по ключевым полям с таблицами базы и одним запросом получили результирующую таблицу на выходе.
|
|||
55
Garykom
гуру
19.04.21
✎
11:46
|
(54) Для ТС лучшая подсказка это нанять/обратиться к специалисту
И да вполне возможно что автор загрузки не хочет бесплатно переписывать )) |
|||
56
NorthWind
19.04.21
✎
11:53
|
(37) интересно, спасибо.
|
|||
57
GANR
19.04.21
✎
12:01
|
(49) (51) Развеселили выражениями )))
(54) а здесь светлее ))) |
|||
58
Alexandrovich
19.04.21
✎
18:25
|
(51) Мужик, за что тебя так жизнь наказала? Ты где то увидел где я представился? Программист, админ, или баба Галя уборщица - подбирай какое нравится. Вопрос не зависит от должности, пусть я буду бомжара с улицы которого что-то интересует поэтому он пришел на этот форум, пусть студент или школьник который хочет знать, научиться, но в результате такие гавн*ки как ты портят советы профессионалов, читаешь полезные советы и видишь впереди твои флаги в жопе. С твоих рекомендаций я увидел только антивирус и фоновые, а остальное всё твоё гов*но-возмущения.
|
|||
59
Alexandrovich
19.04.21
✎
18:41
|
(54) Спасибо.
|
|||
60
Garikk
19.04.21
✎
18:42
|
(58) Рунет - злое место, довольно известный факт в этихваших инторнетах
|
|||
61
GANR
19.04.21
✎
21:15
|
(58) Складывается впечатление, что Вы системный администратор или железчик некой фирмы, в которой ИТ не является основным производством. Уволился программист и сказал Вам "Вот тебе полцарства и денег на лекарства...". Угадал?
|
|||
62
ДедМорроз
19.04.21
✎
21:50
|
Читайте весь лист сразу в массив ComSafeArray через Range.
И все,будет быстро и красиво. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |