|
Загрузка 120 тыс строк из Эксель 30 минут - это нормально? | ☑ | ||
---|---|---|---|---|
0
palpetrovich
13.07.21
✎
17:40
|
Файл - 2 колонки, железо - ну очень приличное, загрузка - "Длительные операции" из БСП
|
|||
35
Злопчинский
13.07.21
✎
20:57
|
Подбор/сопоставление - это отдельная хрень, к загрузке из экселя не относится. из экселя максимально быстро прочитать - первая задача... остальное уже зависит от искусности кодера.
|
|||
36
ДедМорроз
13.07.21
✎
21:00
|
Если буфер позволяет,всю страницу excel можно прочитать в массив за один раз.
И 120 тыс,это немного. |
|||
37
bolder
14.07.21
✎
06:15
|
30 минут это для чтения много.Примерно10 на не сильном железе 5-10 летней давности.
(31) Это совет для 7.7.Актуально (24). (35) Это ещё быстрее чем чтение,конечно(24)эффективно. |
|||
38
Адинэснег
14.07.21
✎
06:36
|
(0) загрузи в табдок и работай с ним, если платформа старая - суй в макет обработки.
и померь производительность, какая строка жрет время |
|||
39
Kassern
14.07.21
✎
09:08
|
(36) можно и в тз запихнуть, а потом ее пихнуть во временную таблицу и запросом сопоставить с данными базы.
|
|||
40
trad
14.07.21
✎
09:18
|
(39) коллега из (36) не про это, а про то, что если дергать ексель поячейчно, т.е. для каждой cell вызывать value - это долго.
Нужно брать целый range и его value - будет массив. И перебирать уже массив |
|||
41
nodrama
14.07.21
✎
09:30
|
(0) Ну я так понимаю, что еще зависит от "компа" так сказать.
|
|||
42
Kassern
14.07.21
✎
09:32
|
(40) эксель сейчас да, легко через табдок читается, не надо ком соединение мучить. В любом случае, полученную таблицу в 1с будет быстрее через запрос привязать к данным базы, чем в цикле проверять по коду.
|
|||
43
trad
14.07.21
✎
09:36
|
(42) (не ком соединение, а ком объект)
Зависит от задачи - как лучше, через табдок и через комобъект. Есть разница если, например, типы значений ячеек важны. |
|||
44
NorthWind
14.07.21
✎
09:36
|
(0) на этот вопрос можете ответить только вы у себя на рабочем месте. Я считаю, в принципе, любое время нормальным, если юзеры готовы его терпеть и если процесс не отнимает время у других задач. Хоть два часа. Если же конкретно вам конкретно в вашем процессе оно неприемлемо - тогда предпринимайте шаги к уменьшению.
|
|||
45
NorthWind
14.07.21
✎
09:37
|
для работы с экселем есть масса вариантов работы - попроще и помедленнее, либо посложнее и побыстрее. Всегда можно что-то соптимизировать.
|
|||
46
Kassern
14.07.21
✎
09:48
|
(43) ага COMОбъект, я про него и имел в виду. От задачи конечно зависит, но в общем случае таб док универсальней и удобней. Во первых не проблем с разрядностью, DCOM, правах, папках и ветке рееста, которые ексель почему то не создал. В общем, кто первый раз сталкивается с такими проблемами, час и более точно убьет, чтобы COMОбъект корректно заработал. Так же зависшие задачи екселя в диспетчере, когда 1ска к примеру завершилась аварийно, либо обработка чтения.
|
|||
47
Maniac
14.07.21
✎
10:18
|
Мегалайт - Загрузка в 1С от А до Я.
Грузит файлы по 100 000 строк менее чем за 10 секунд. Полная синхронизация 8 секунд. https://subsystems.ru/solutions/1c_excel/zagruzka_praysov_v_1s_iz_excel_csv_txt/ |
|||
48
Garykom
гуру
14.07.21
✎
10:24
|
(47) давно тебя что то не было видно
|
|||
49
Kassern
14.07.21
✎
10:25
|
(47) а если не загрузит за 10 сек, вернете деньги?))
|
|||
50
Maniac
14.07.21
✎
10:28
|
(49) а ты купишь для этого нормальное железо? А не хлам 10 летней давности)
Хотя даже на хламе результат будет вменяемым. На полную загрузку 1 минута. |
|||
51
Maniac
14.07.21
✎
10:31
|
Загрузка в 1С 8.3 прайса 100 000 товаров! 1 минута (с записью цен в 1С)
https://www.youtube.com/watch?v=-gMhJkM4yDU Показываю реальный прайс и загрузку. На видео старое видео и старая версия 2017 года. |
|||
52
lodger
14.07.21
✎
10:34
|
(0) Загрузка 120 тыс строк из Эксель 30 минут - это не нормально.
есть множество способов и трюков для быстрого чтения Экселя. манька умеет - (51) |
|||
53
Kassern
14.07.21
✎
10:36
|
(50) зачем мне это? Тогда уже и говорите при каком железе, формате источника и параметров приемника у вас такая скорость. А так мол 10 сек 100000 строк это ни о чем, вот и все, что я хотел сказать.
|
|||
54
Kassern
14.07.21
✎
10:36
|
(50) у меня с железом проблем нет и с загрузкой больших таблиц тоже)
|
|||
55
Maniac
14.07.21
✎
10:38
|
Дам подсказку. Чтение экселя полностью зависит от проца. Причем пофиг ксеон или что - 1С однопоточная прога и использует 1 ядро.
Начхать какая там нагрузка в диспетчере. Проц должен быть с частотой минимум 3.5 и то это так себе. Нормально может работать с 4.5 и выше. У меня используется не стандарт. В моей обработке файл перекачивается на наш веб-сервис, где под линуксом на специальной библиотеке на питоне считывается эксель со скоростью звука и возвращает клиенту готовые таблицы (если многолистововй) сразу в формате 1С. |
|||
56
Maniac
14.07.21
✎
10:39
|
По стандарту добавлю - плюс обязательно 64 разрядная система, 1С.
Помимо проца естественно нормальная оперативка. Это то что я хотел сказать по загрузке таких обьемов. если нужно постоянно что то лить в таких обьемах. |
|||
57
Злопчинский
14.07.21
✎
10:40
|
(43) угу, через табдок - что будет в итоге прочитано - value или text ...?
|
|||
58
acht
14.07.21
✎
10:42
|
(57) <СпособЧтенияЗначений> (необязательный)
Тип: СпособЧтенияЗначенийТабличногоДокумента. Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS. При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра. Значение по умолчанию: Текст. |
|||
59
Kassern
14.07.21
✎
10:42
|
(57) в большинстве случаев пофиг, ты знаешь в каких колонках какие данные и обработаешь как надо, хоть тебе все текстом придет.
|
|||
60
Maniac
14.07.21
✎
10:43
|
Ну а после загрузки, когда оно в таблицах. Уже далее все зависит тоже от железа.
СИнхронизация (у меня суперскоростная на 1 запросе). Ну и запись в базу это уже тоже самое медленное из всего. Я гружу в регистр сведений, поэтому очень быстро. Без всяких документов. Создание номенклатуры тоже самое - тут уже никуда не деться - каждый элемент в цикле, разве что отключить проверку. 100 000 номенклатуры где то минут 5-7 создается. |
|||
61
Kassern
14.07.21
✎
10:43
|
(55) а если к вам на сервис куча народа с большими таблицами попрет, он не загнется?)
|
|||
62
Maniac
14.07.21
✎
10:45
|
(61) уже так. для именно этого хватает обычного сервера. я арендую.
там не 1С. |
|||
63
Maniac
14.07.21
✎
10:47
|
Я сам жду когда 1С наконец сделает что то подобное. С их возможностями это как два пальца.
Такая примитивная задача. 21 год а 1С с экселсем до сих пор не может дружить. Хотя могла бы просто мгновенно все делать. Но видимо этого не будет никогда. |
|||
64
Maniac
14.07.21
✎
10:48
|
Мне вообще этот функционал безразличен, мы его сделали потому что вариантов нет.
Если бы в 1С такой был то я был бы только рад. Ни мне ни моим клиентам не иинтересно каким именно образом читается эксель. Я решаю предметные задачи в разработках и это ценно, а не то как эксель читается. |
|||
65
Garykom
гуру
14.07.21
✎
10:49
|
Имхо переносить данные через Excel это идиотизм, как и грузить из него
Всегда! Всегда можно допинать отдающего данные на выдачу их в согласованном удобном формате! |
|||
66
Kassern
14.07.21
✎
10:50
|
(65) не всегда)
|
|||
67
Garykom
гуру
14.07.21
✎
10:50
|
(65)+ Но задача переходит из разряда софтовой в административную, а проги обычно плохо умеют в административку
|
|||
68
Kassern
14.07.21
✎
10:50
|
(65) пробовали пинать гос структуры, чтобы они вам в нужном формате данные слали?)
|
|||
69
Garykom
гуру
14.07.21
✎
10:50
|
(66) Всегда.
Приведи примеры когда нельзя |
|||
70
piter3
14.07.21
✎
10:51
|
(65) Бистро-бистро для консов сойдет
|
|||
71
Garykom
гуру
14.07.21
✎
10:51
|
(68) Прекрасно пинаются если зависимость не односторонняя
Или пишется внешний конвертер для преобразования xls в удобный формат |
|||
72
Maniac
14.07.21
✎
10:52
|
(65) это в каком же? ты в курсе что XML еще медленнее 1С читает причем в разы!
|
|||
73
Garykom
гуру
14.07.21
✎
10:52
|
(72) Иди нафик со своим XML
|
|||
74
Kassern
14.07.21
✎
10:53
|
(71) вооот пошли уже костыли в ход) "если зависимость не односторонняя " именно про одностороннюю и речь, когда тебе надо, а другая сторона, какой то крупный сервис.
|
|||
75
Maniac
14.07.21
✎
10:53
|
Самый быстрый CSV но фиг дождешся чтобы кто то такие данные выдавал.
|
|||
76
Garykom
гуру
14.07.21
✎
10:53
|
(73)+ TSV, CSV или JSON
|
|||
77
Garykom
гуру
14.07.21
✎
10:54
|
(75) Конвертеров из xls в csv дофига готовых и не проблема самому наваять
|
|||
78
Garykom
гуру
14.07.21
✎
10:54
|
(75) И нихрена CSV не удобный в случае строк, там со служебными символами проблема разбора, удобней tsv
|
|||
79
Maniac
14.07.21
✎
10:55
|
(77) а что ты будешь делать с книгами в которых каждый лист может быть разный?
|
|||
80
Garykom
гуру
14.07.21
✎
10:55
|
(79) в разные файлы
|
|||
81
Garykom
гуру
14.07.21
✎
10:56
|
(80)+ но имхо проще в json
|
|||
82
Maniac
14.07.21
✎
10:57
|
Что тут гговорить - вы посмотрите 1С ные формы - УПД. этож ужас! там 80 колонок по 5 мм. А фактически в табличной части 15.
И такие УПД присылают в экселе. Да в них конечно не 100 000 строк. Но попробуй просто даже настроить |
|||
83
Maniac
14.07.21
✎
10:58
|
Проще мозг не делать) а покупать готовое) Ссылка выше.
В котором уже вообще все что можно продумано и реализовано. Все что только изместно на текущий день. И делает все. |
|||
84
Kassern
14.07.21
✎
11:00
|
(82) работайте с ЭДО, там приходит xmlка с данными УПД, еще есть и информация по договору, по которому это дело выписано.
|
|||
85
Maniac
14.07.21
✎
11:00
|
Могу сдать в аренду 500 рублей в месяц свой веб-сервис.
С готовой обработкой примером - по обращению к вебсервису - там 30-40 строк кода. Будете передавать файл и получать на входе готовые Таблицы значений 1С (даже не табличный документ, а именно таблицы значений). |
|||
86
Kassern
14.07.21
✎
11:00
|
(82) 21 век на дворе, а вы все эксельки гоняете))
|
|||
87
Maniac
14.07.21
✎
11:01
|
(86) поэтому и езжу на мерседесе.
|
|||
88
ILM
модератор
14.07.21
✎
11:03
|
Учите python он вам загрузит всё очень быстро.
|
|||
89
Garykom
гуру
14.07.21
✎
11:04
|
(88) прямо в 1С?
|
|||
90
Злопчинский
14.07.21
✎
11:04
|
(87) Правильно, Маня, так их, этих нищебродов-расставлятелей галочек!!!
|
|||
91
Garykom
гуру
14.07.21
✎
11:05
|
(90) я на электросамокате езжу и что?
мне не понты а удобство, в дождь на машине поеду понятно |
|||
92
Kassern
14.07.21
✎
11:07
|
(87) рад за вас, главное чтобы мерсу было не 20+ лет)
|
|||
93
Maniac
14.07.21
✎
11:08
|
Да ладно там эксель - фигня.
Ну загрузили. А дальше что? А если все товары отличаются с теми что в 1С? месяц сопоставлять 100 000 товаров? или год? Вот одна из задач это Сопоставление номенклатуры поставщиков. Вообще нет нормальных решений - полный ноль. Я поиске если вбить - одна туфта! Стать и материалы как в 1С руками заводить одну карточку номенклатуры поставщика. И полностью ничего про то как сделать чтобы тысячи товаров сопоставить. А я так денек подумал и нарисовал супер функционал, без аналогов. https://subsystems.ru/solutions/megaprays-nomenklatura/sopostavlenie-nomenklatury-postavshchikov-v-1s-nechetkiy-poisk/ |
|||
94
Kassern
14.07.21
✎
11:08
|
(92) сейчас мерс не такой показатель, а вот взять без ипотеки купить 3шку в москве в 2021году, вот это показатель) Знакомые недавно взяли ипотеку на 18 лямов и это двушка...
|
|||
95
Kassern
14.07.21
✎
11:10
|
(93) да у всех, кто сталкивался с такими задачами есть свои узкие решения. Вряд ли проги руками все это дело сводят, просто не всем интересно делать универсальные решения и гнать их на продажу.
|
|||
96
Maniac
14.07.21
✎
11:10
|
(94) за такие деньги можно было бы на море дом купить полноценный.
|
|||
97
Garykom
гуру
14.07.21
✎
11:10
|
(94) можно спросить а нахрена покупать недвигу в Мск?
ибо сча можно выбрать регион для жизни почище и по удаленке работать |
|||
98
Kassern
14.07.21
✎
11:11
|
(97) знакомые стоматолог и реаниматолог, вряд ли смогут удаленно работать))
|
|||
99
Kassern
14.07.21
✎
11:12
|
(96) у некоторых привязка жесткая к москве, своя клиника например, или высокая зарплата требующая находиться в москве.
|
|||
100
Maniac
14.07.21
✎
11:12
|
Сейчас массовый приток мигрантов на юга ближе к морю. хотя оно всегда так было, но сейчас видимо еще больше.
Сам подумываю свалить из Ростова. смотрю варианты. |
|||
101
Garykom
гуру
14.07.21
✎
11:18
|
(100) Нафик юга, я бы среднюю полосу предпочел типа Воронежа или можно поближе к Сибири и ДВ
|
|||
102
Злопчинский
14.07.21
✎
11:18
|
(100) к Белому морю? подальше от мигрантов?
|
|||
103
Garykom
гуру
14.07.21
✎
11:19
|
(102) Холодновато тут на Белом море зимой особенно
|
|||
104
Maniac
14.07.21
✎
11:28
|
А я Красную поляну обожаю.
|
|||
105
Злопчинский
14.07.21
✎
11:31
|
(104) построй себе шале на Эльбрусе.
|
|||
106
серый КТУЛХУ
14.07.21
✎
12:06
|
ТабДокументЗагрузки = Новый ТабличныйДокумент;
ТабДокументЗагрузки.Прочитать(ExcelФайл); ТаблицаЗначенийЗагрузки = Новый ТаблицаЗначений; ТаблицаЗначенийЗагрузки.Колонки.Добавить("Колонка1"); ТаблицаЗначенийЗагрузки.Колонки.Добавить("Колонка2"); Для СчетчикСтрок=1 По 100000 Цикл СтрокаТз = ТаблицаЗначенийЗагрузки.Добавить(); СтрокаТз.Колонка1 = ТабДокументЗагрузки.Область(СчетчикСтрок+1,1).Текст; СтрокаТз.Колонка2 = ТабДокументЗагрузки.Область(СчетчикСтрок+1,2).Текст; ПустоеВычисление = Справочники.Номенклатура.ПолучитьСсылку(МассивДляВычислений[СчетчикСтрок-1]); КонецЦикла; итого затрачено времени(сек): 3,462536 что я делаю не так? |
|||
107
Злопчинский
14.07.21
✎
12:07
|
(106) "сломается", если в табдокумент 99999 или 100001
|
|||
108
Garykom
гуру
14.07.21
✎
12:10
|
(106) >ПустоеВычисление = Справочники.Номенклатура.ПолучитьСсылку(МассивДляВычислений[СчетчикСтрок-1]);
не так надо |
|||
109
Kassern
14.07.21
✎
12:11
|
(106) Если нужно прочитать все, то лучше
КоличествоСтрок=ТабДок.ПолучитьРазмерОбластиДанныхПоВертикали(); Для к=1 По КоличествоСтрок Цикл |
|||
110
Kassern
14.07.21
✎
12:13
|
(106) можно в цикле ничего не вычислять, а лишь тз заполнить. А далее все 1 запросом сопоставить и отфильтровать как надо.
|
|||
111
Garykom
гуру
14.07.21
✎
12:18
|
(109) эээ я юзал просто ТабДок.ВысотаТаблицы
|
|||
112
Вафель
14.07.21
✎
13:03
|
(110) ссылку все равно нужно в цикле вычислять
|
|||
113
Kassern
14.07.21
✎
13:40
|
(112) зачем ссылку в цикле вычислять? К примеру у вас есть эксель с колонками артикул, цена. Что мешает создать ТЗ с данными колонками и определенным типом, заполнить в цикле данными из табдока и запихнуть в запрос. Далее эту временную таблицу привязать к таблице номенклатуры по артикулу и получить уже найденные в базе данные. зачем это дело в цикле гонять?
|
|||
114
palpetrovich
14.07.21
✎
14:22
|
ох, а понаписывали то :)
сделал так ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ПутьКФайлу); ОбластьЯчеек = ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, 2); ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек); ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.ИсточникДанных = ИсточникДанных; ПостроительОтчета.Выполнить(); ТЗ = ПостроительОтчета.Результат.Выгрузить(); потом ТЗ - в запрос для получения ссылок время 10-15 сек, выводит на экран (если нужно) - мягко говоря - подольше :) |
|||
115
trad
14.07.21
✎
14:52
|
а которую страницу екселя прочитает табдок?
|
|||
116
Kassern
14.07.21
✎
14:56
|
(115) насколько я помню, табдок склеивает все таблицы в одно целое. А страницы лишь области этого табдока
|
|||
117
Maniac
15.07.21
✎
12:20
|
(116) существенный недостаток 1С.
Как и это. Так и то что из 1С нельзя делать многолистовые эксель файлы. |
|||
118
Maniac
15.07.21
✎
12:21
|
Могли бы и сделать чтобы возвращался массив табличных документов.
А также чтобы можно было и из 1С разные таб доки склеивать в многолистовую книгу. |
|||
119
acht
15.07.21
✎
12:24
|
(117) > из 1С нельзя делать многолистовые эксель файлы.
Серьезно? |
|||
120
ДенисЧ
15.07.21
✎
12:25
|
(119) Ты чо, обурел? ))))
|мане не веришь?? |
|||
121
Kassern
15.07.21
✎
12:26
|
(118) все можно, есть для этого специальный конструктор для пакета документов. Каждый уйдет на нужный лист.
|
|||
122
Kassern
15.07.21
✎
12:27
|
||||
123
acht
15.07.21
✎
12:27
|
Я начинаю подозревать, что манина загрузка, гм, слегка устарела =)
|
|||
124
Kassern
15.07.21
✎
12:30
|
(123) Да не быть такого не может) достаточно прочитать (55) "1С однопоточная прога и использует 1 ядро".
|
|||
125
Kassern
15.07.21
✎
12:31
|
(124) *быть такого не может)
|
|||
126
acht
15.07.21
✎
12:34
|
(124) О, там круче - "В моей обработке файл перекачивается на наш веб-сервис"
И можно начинать барыжить статистикой внутреннмх цен поставщиков |
|||
127
Kassern
15.07.21
✎
12:39
|
(126) вот еще идея, в какой то момент делаешь мол первые 100мб бесплатно в месяц. Кто до 1гб отправляет тот 3тыс платит, а кто еще больше то 5тыс. Людям, которые заплатили бабки и автоматизировали свои рабочие места на ваш сервис придется раскошеливаться)
|
|||
128
acht
15.07.21
✎
12:40
|
(127) И правда. И 1С знать уже не обязательно. Но советы раздавать по прежнему можно.
|
|||
129
Krendel
15.07.21
✎
12:43
|
(104) Маня вернулся?
|
|||
130
Kassern
15.07.21
✎
12:45
|
(128) пример кстати из реальной жизни, на одном из проектов, так и поступили. Создали свой обменник для поставщиков на подобии почтовика, чтобы поставщики могли обмениваться документами друг с другом. Всех посадили на прогу, которая xmlки выплевывает в этот сервис, который передает далее файлик нужному клиенту. А через пол годика сообщили, мол сервис разросся поддерживать его стало накладно, мол платите абоненточку за объем)
|
|||
131
bolder
15.07.21
✎
15:58
|
(37) >30 минут это для чтения много.Примерно 10 на не сильном железе 5-10 летней давности.
Не, 5 минут для чтения 8 колоночного файла хватает.На все про все с сопоставлением номенклатуры и прочего (ага, нужно и другое сопоставить), а также отображением на экране 9,5 минут. Процессор 3,0 ГГц 2008 года )) 1C 8.3.15.2107 клиент- сервер MS SQL |
|||
132
bolder
15.07.21
✎
16:08
|
(100) Маня, этот год показал, что делать на юге у моря нечего.В горы стремись))
|
|||
133
bolder
15.07.21
✎
16:11
|
(112) > ссылку все равно нужно в цикле вычислять
Зачем? Давно все получаю запросами.Как и в (24) отметил верно.Одним запросом все ссылки да еще и на разные типы) |
|||
134
Maniac
21.07.21
✎
20:58
|
Кстати спасибо за подскахку о том, что в 1С появились методы сохранения книги в Эксель из 1С.
Я допилил своб разработку, теперь у меня мультипрайс умеет создавать в 1С многолистовой прайс-лист на форме и сохранять его в эксель. https://subsystems.ru/news/mnogostranichnyy-prays-list-iz-1s-sozdanie/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |