Вход | Регистрация
    1  2   
1С:Предприятие :: 1С:Предприятие 8 общая

Загрузка 120 тыс строк из Эксель 30 минут - это нормально?

Загрузка 120 тыс строк из Эксель 30 минут - это нормально?
Я
   palpetrovich
 
13.07.21 - 17:40
Файл - 2 колонки, железо - ну очень приличное, загрузка - "Длительные операции" из БСП
   ДенисЧ
 
1 - 13.07.21 - 17:41
Длительные операции научились загружать из екселя? О_о
   Kassern
 
2 - 13.07.21 - 17:41
(0) загрузка то чего? Одно дело регистр сведений какой нить забивать, другое какой нить тяжелый документ делать.
   Irbis
 
3 - 13.07.21 - 17:41
эксель зло, грузи из цсв будет летать
   palpetrovich
 
4 - 13.07.21 - 17:42
речь о загрузке в табДок
   Garykom
 
5 - 13.07.21 - 17:43
и тут выяснится что через Новый COMОбъект(Excel.Application) грузится ))
   palpetrovich
 
6 - 13.07.21 - 17:43
(1) ну не сами, используя их
   Irbis
 
7 - 13.07.21 - 17:43
Да хоть куда. Текст открывается и разбирается быстрее. И нет ограничения на количество строк
   серый КТУЛХУ
 
8 - 13.07.21 - 17:43
замерь производительность - найди узкое место - переформулиру вопрос типа "потратить два часа на триццать тыщ кратное вычисление уникальныйидентификатор - это много или ок?"
   Garykom
 
9 - 13.07.21 - 17:44
уже была недавно ветка
короче xls в json внешним перегоняй и грузи в 1С
   palpetrovich
 
10 - 13.07.21 - 17:44
(5) кстати , ходят слухи что  через COMОбъект быстро получается
   серый КТУЛХУ
 
11 - 13.07.21 - 17:45
(4): продам ситакс-помощник с описанием метода "Прочитать" для объекта "ТабличныйДокумент".
дорого.
   palpetrovich
 
12 - 13.07.21 - 17:46
(8) да, это надо проверить, спасибо
потому как в файле 12314, 34646  и из них, в процессе получаем ссылки на справочники
   Garykom
 
13 - 13.07.21 - 17:46
(10) из экселя нет
   youalex
 
14 - 13.07.21 - 17:47
(12) через найтипокоду()  ?
   palpetrovich
 
15 - 13.07.21 - 17:50
(14) ну канешн, как еще-то ? :)
   серый КТУЛХУ
 
16 - 13.07.21 - 17:52
(15): например через "найтиссылку(Новый УникальныйИдентификатор(уидстрокой))
   Aleksey
 
17 - 13.07.21 - 17:53
Если писать  базу, то плюс минус нормально, если просто прочитать, то долго.
Я в 7-ке для ускорения перед чтением средствами екселя сохраняю файл в csv (текстовый файл 1с на порядок быстрее читает, чем по оле)
И перед загрузкой надо "кэшировать" справочник (загонять его в ТЗ) и искать ссылки по ТЗ, а не дергать по каждой строку базу
   Андроны едут
 
18 - 13.07.21 - 17:53
ADO использовать в 1с запретили? Там фильтры можно сразу установить, если нужно.
   VladZ
 
19 - 13.07.21 - 17:54
(0) Зависит от алгоритма.
Можно и так написать, что эти 120 тысяч будут 3 дня загружаться.
   серый КТУЛХУ
 
20 - 13.07.21 - 17:55
йоксель
   palpetrovich
 
21 - 13.07.21 - 17:57
злые админы для ADO прав не дают )
   Kassern
 
22 - 13.07.21 - 18:00
(0) а причем тут эксель? Проверьте за сколько 1ска считывает данные экселя в ту же ТЗ. Я более чем уверен, что львиную долю занимает запись объектов в базу.
   ДенисЧ
 
23 - 13.07.21 - 18:02
(22) У него не запись, у него НайтиПоКоду в справочнике ... )))
   1Сергей
 
24 - 13.07.21 - 18:06
Загрузить в ТЗ. ТЗ в запрос. Запросом получить все ссылки за раз
   Garykom
 
25 - 13.07.21 - 18:07
(23) ыыы
   palpetrovich
 
26 - 13.07.21 - 18:10
(23) ага, причем по кому из другой базы )
   Tatitutu
 
27 - 13.07.21 - 18:11
файл с 120 000 строк - две колонки размер 1,4 мб.
Обработкой "ПРЫГ-СКОК" загрузилось в ТЗ на форме за 7:48 минуты
   ДенисЧ
 
28 - 13.07.21 - 18:13
(26) Это шутка?
   серый КТУЛХУ
 
29 - 13.07.21 - 18:28
да перегони ты его уже в табличный документ (mxl) и грузи стандартной обработкой (из упп)
   palpetrovich
 
30 - 13.07.21 - 19:01
(28) ну конечно
 
 
   ildary
 
31 - 13.07.21 - 20:10
(17) скажите пожалуйста, совет кешировать справочник в ТЗ - он относится к 7.7 или к 8?
   ДенисЧ
 
32 - 13.07.21 - 20:27
(31) А не один, как говорил Вовочка в одном анекдоте?
   Злопчинский
 
33 - 13.07.21 - 20:33
ну, Маня хвалился что в Мегапрайсе у него бешеные объемы грузятся за быстрое время.
   Garykom
 
34 - 13.07.21 - 20:55
(33) не знаю чего там маня хвалился но если долго но на сервере то фоновые штук так 20 (точнее по числу ядер) запустить для подбора номенклатуры
   Злопчинский
 
35 - 13.07.21 - 20:57
Подбор/сопоставление - это отдельная хрень, к загрузке из экселя не относится. из экселя максимально быстро прочитать - первая задача... остальное уже зависит от искусности кодера.
   ДедМорроз
 
36 - 13.07.21 - 21:00
Если буфер позволяет,всю страницу excel можно прочитать в массив за один раз.
И 120 тыс,это немного.
   bolder
 
37 - 14.07.21 - 06:15
30 минут это для чтения много.Примерно10 на не сильном железе 5-10 летней давности.
(31) Это совет для 7.7.Актуально (24).
(35) Это ещё быстрее чем чтение,конечно(24)эффективно.
   Адинэснег
 
38 - 14.07.21 - 06:36
(0) загрузи в табдок и работай с ним, если платформа старая - суй в макет обработки.
и померь производительность, какая строка жрет время
   Kassern
 
39 - 14.07.21 - 09:08
(36) можно и в тз запихнуть, а потом ее пихнуть во временную таблицу и запросом сопоставить с данными базы.
   trad
 
40 - 14.07.21 - 09:18
(39) коллега из (36) не про это, а про то, что если дергать ексель поячейчно, т.е. для каждой cell вызывать value - это долго.
Нужно брать целый range и его value - будет массив. И перебирать уже массив
   nodrama
 
41 - 14.07.21 - 09:30
(0) Ну я так понимаю, что еще зависит от "компа" так сказать.
   Kassern
 
42 - 14.07.21 - 09:32
(40) эксель сейчас да, легко через табдок читается, не надо ком соединение мучить. В любом случае, полученную таблицу в 1с будет быстрее через запрос привязать к данным базы, чем в цикле проверять по коду.
   trad
 
43 - 14.07.21 - 09:36
(42) (не ком соединение, а ком объект)
Зависит от задачи - как лучше, через табдок и через комобъект. Есть разница если, например, типы значений ячеек важны.
   NorthWind
 
44 - 14.07.21 - 09:36
(0) на этот вопрос можете ответить только вы у себя на рабочем месте. Я считаю, в принципе, любое время нормальным, если юзеры готовы его терпеть и если процесс не отнимает время у других задач. Хоть два часа. Если же конкретно вам конкретно в вашем процессе оно неприемлемо - тогда предпринимайте шаги к уменьшению.
   NorthWind
 
45 - 14.07.21 - 09:37
для работы с экселем есть масса вариантов работы - попроще и помедленнее, либо посложнее и побыстрее. Всегда можно что-то соптимизировать.
   Kassern
 
46 - 14.07.21 - 09:48
(43) ага COMОбъект, я про него и имел в виду. От задачи конечно зависит, но в общем случае таб док универсальней и удобней. Во первых не проблем с разрядностью, DCOM, правах, папках и ветке рееста, которые ексель почему то не создал. В общем, кто первый раз сталкивается с такими проблемами, час и более точно убьет, чтобы COMОбъект корректно заработал. Так же зависшие задачи екселя в диспетчере, когда 1ска к примеру завершилась аварийно, либо обработка чтения.
   Maniac
 
47 - 14.07.21 - 10:18
Мегалайт - Загрузка в 1С от А до Я.

Грузит файлы по 100 000 строк менее чем за 10 секунд.
Полная синхронизация 8 секунд.

https://subsystems.ru/solutions/1c_excel/zagruzka_praysov_v_1s_iz_excel_csv_txt/
   Garykom
 
48 - 14.07.21 - 10:24
(47) давно тебя что то не было видно
   Kassern
 
49 - 14.07.21 - 10:25
(47) а если не загрузит за 10 сек, вернете деньги?))
   Maniac
 
50 - 14.07.21 - 10:28
(49) а ты купишь для этого нормальное железо? А не хлам 10 летней давности)
Хотя даже на хламе результат будет вменяемым. На полную загрузку 1 минута.
   Maniac
 
51 - 14.07.21 - 10:31
Загрузка в 1С 8.3 прайса 100 000 товаров! 1 минута (с записью цен в 1С)
https://www.youtube.com/watch?v=-gMhJkM4yDU

Показываю реальный прайс и загрузку.
На видео старое видео и старая версия 2017 года.
   lodger
 
52 - 14.07.21 - 10:34
(0) Загрузка 120 тыс строк из Эксель 30 минут - это не нормально.
есть множество способов и трюков для быстрого чтения Экселя.
манька умеет - (51)
   Kassern
 
53 - 14.07.21 - 10:36
(50) зачем мне это? Тогда уже и говорите при каком железе, формате источника и параметров приемника у вас такая скорость. А так мол 10 сек 100000 строк это ни о чем, вот и все, что я хотел сказать.
   Kassern
 
54 - 14.07.21 - 10:36
(50) у меня с железом проблем нет и с загрузкой больших таблиц тоже)
   Maniac
 
55 - 14.07.21 - 10:38
Дам подсказку. Чтение экселя полностью зависит от проца. Причем пофиг ксеон или что - 1С однопоточная прога и использует 1 ядро.
Начхать какая там нагрузка в диспетчере.

Проц должен быть с частотой минимум 3.5 и то это так себе.
Нормально может работать с 4.5 и выше.

У меня используется не стандарт. В моей обработке файл перекачивается на наш веб-сервис, где под линуксом на специальной библиотеке на питоне считывается эксель со скоростью звука и возвращает клиенту готовые таблицы (если многолистововй) сразу в формате 1С.
   Maniac
 
56 - 14.07.21 - 10:39
По стандарту добавлю - плюс обязательно 64 разрядная система, 1С.
Помимо проца естественно нормальная оперативка.

Это то что я хотел сказать по загрузке таких обьемов. если нужно постоянно что то лить в таких обьемах.
   Злопчинский
 
57 - 14.07.21 - 10:40
(43) угу, через табдок - что будет в итоге прочитано - value или text ...?
   acht
 
58 - 14.07.21 - 10:42
(57) <СпособЧтенияЗначений> (необязательный)
Тип: СпособЧтенияЗначенийТабличногоДокумента.

Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа
XLS, XLSX или ODS.

При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.

Значение по умолчанию: Текст.
   Kassern
 
59 - 14.07.21 - 10:42
(57) в большинстве случаев пофиг, ты знаешь в каких колонках какие данные и обработаешь как надо, хоть тебе все текстом придет.
   Maniac
 
60 - 14.07.21 - 10:43
Ну а после загрузки, когда оно в таблицах. Уже далее все зависит тоже от железа.
СИнхронизация (у меня суперскоростная на 1 запросе).
Ну и запись в базу это уже тоже самое медленное из всего.
Я гружу в регистр сведений, поэтому очень быстро. Без всяких документов.
Создание номенклатуры тоже самое - тут уже никуда не деться - каждый элемент в цикле, разве что отключить проверку.
100 000 номенклатуры где то минут 5-7 создается.
 
 
   Kassern
 
61 - 14.07.21 - 10:43
(55) а если к вам на сервис куча народа с большими таблицами попрет, он не загнется?)
   Maniac
 
62 - 14.07.21 - 10:45
(61) уже так. для именно этого хватает обычного сервера. я арендую.
там не 1С.
   Maniac
 
63 - 14.07.21 - 10:47
Я сам жду когда 1С наконец сделает что то подобное. С их возможностями это как два пальца.
Такая примитивная задача.
21 год а 1С с экселсем до сих пор не может дружить. Хотя могла бы просто мгновенно все делать.

Но видимо этого не будет никогда.
   Maniac
 
64 - 14.07.21 - 10:48
Мне вообще этот функционал безразличен, мы его сделали потому что вариантов нет.
Если бы в 1С такой был то я был бы только рад. Ни мне ни моим клиентам не иинтересно каким именно образом читается эксель.
Я решаю предметные задачи в разработках и это ценно, а не то как эксель читается.
   Garykom
 
65 - 14.07.21 - 10:49
Имхо переносить данные через Excel это идиотизм, как и грузить из него

Всегда! Всегда можно допинать отдающего данные на выдачу их в согласованном удобном формате!
   Kassern
 
66 - 14.07.21 - 10:50
(65) не всегда)
   Garykom
 
67 - 14.07.21 - 10:50
(65)+ Но задача переходит из разряда софтовой в административную, а проги обычно плохо умеют в административку
   Kassern
 
68 - 14.07.21 - 10:50
(65) пробовали пинать гос структуры, чтобы они вам в нужном формате данные слали?)
   Garykom
 
69 - 14.07.21 - 10:50
(66) Всегда.
Приведи примеры когда нельзя
   piter3
 
70 - 14.07.21 - 10:51
(65) Бистро-бистро для консов сойдет
   Garykom
 
71 - 14.07.21 - 10:51
(68) Прекрасно пинаются если зависимость не односторонняя
Или пишется внешний конвертер для преобразования xls в удобный формат
   Maniac
 
72 - 14.07.21 - 10:52
(65) это в каком же? ты в курсе что XML еще медленнее 1С читает причем в разы!
   Garykom
 
73 - 14.07.21 - 10:52
(72) Иди нафик со своим XML
   Kassern
 
74 - 14.07.21 - 10:53
(71) вооот пошли уже костыли в ход) "если зависимость не односторонняя " именно про одностороннюю и речь, когда тебе надо, а другая сторона, какой то крупный сервис.
   Maniac
 
75 - 14.07.21 - 10:53
Самый быстрый CSV но фиг дождешся чтобы кто то такие данные выдавал.
   Garykom
 
76 - 14.07.21 - 10:53
(73)+ TSV, CSV или JSON
   Garykom
 
77 - 14.07.21 - 10:54
(75) Конвертеров из xls в csv дофига готовых и не проблема самому наваять
   Garykom
 
78 - 14.07.21 - 10:54
(75) И нихрена CSV не удобный в случае строк, там со служебными символами проблема разбора, удобней tsv
   Maniac
 
79 - 14.07.21 - 10:55
(77) а что ты будешь делать с книгами в которых каждый лист может быть разный?
   Garykom
 
80 - 14.07.21 - 10:55
(79) в разные файлы
   Garykom
 
81 - 14.07.21 - 10:56
(80)+ но имхо проще в json
   Maniac
 
82 - 14.07.21 - 10:57
Что тут гговорить - вы посмотрите 1С ные формы - УПД. этож ужас! там 80 колонок по 5 мм. А фактически в табличной части 15.
И такие УПД присылают в экселе. Да в них конечно не 100 000 строк.
Но попробуй просто даже настроить
   Maniac
 
83 - 14.07.21 - 10:58
Проще мозг не делать) а покупать готовое) Ссылка выше.
В котором уже вообще все что можно продумано и реализовано.
Все что только изместно на текущий день. И делает все.
   Kassern
 
84 - 14.07.21 - 11:00
(82) работайте с ЭДО, там приходит xmlка с данными УПД, еще есть и информация по договору, по которому это дело выписано.
   Maniac
 
85 - 14.07.21 - 11:00
Могу сдать в аренду 500 рублей в месяц свой веб-сервис.
С готовой обработкой примером - по обращению к вебсервису - там 30-40 строк кода.

Будете передавать файл и получать на входе готовые Таблицы значений 1С (даже не табличный документ, а именно таблицы значений).
   Kassern
 
86 - 14.07.21 - 11:00
(82) 21 век на дворе, а вы все эксельки гоняете))
   Maniac
 
87 - 14.07.21 - 11:01
(86) поэтому и езжу на мерседесе.
   ILM
 
Модератор
88 - 14.07.21 - 11:03
Учите python он вам загрузит всё очень быстро.
   Garykom
 
89 - 14.07.21 - 11:04
(88) прямо в 1С?
   Злопчинский
 
90 - 14.07.21 - 11:04
(87) Правильно, Маня, так их, этих нищебродов-расставлятелей галочек!!!
   Garykom
 
91 - 14.07.21 - 11:05
(90) я на электросамокате езжу и что?
мне не понты а удобство, в дождь на машине поеду понятно
   Kassern
 
92 - 14.07.21 - 11:07
(87) рад за вас, главное чтобы мерсу было не 20+ лет)
   Maniac
 
93 - 14.07.21 - 11:08
Да ладно там эксель - фигня.
Ну загрузили. А дальше что? А если все товары отличаются с теми что в 1С? месяц сопоставлять 100 000 товаров? или год?

Вот одна из задач это Сопоставление номенклатуры поставщиков. Вообще нет нормальных решений - полный ноль.
Я поиске если вбить - одна туфта! Стать и материалы как в 1С руками заводить одну карточку номенклатуры поставщика.

И полностью ничего про то как сделать чтобы тысячи товаров сопоставить.

А я так денек подумал и нарисовал супер функционал, без аналогов.
https://subsystems.ru/solutions/megaprays-nomenklatura/sopostavlenie-nomenklatury-postavshchikov-v-1s-nechetkiy-poisk/
   Kassern
 
94 - 14.07.21 - 11:08
(92) сейчас мерс не такой показатель, а вот взять без ипотеки купить 3шку в москве в 2021году, вот это показатель) Знакомые недавно взяли ипотеку на 18 лямов и это двушка...
   Kassern
 
95 - 14.07.21 - 11:10
(93) да у всех, кто сталкивался с такими задачами есть свои узкие решения. Вряд ли проги руками все это дело сводят, просто не всем интересно делать универсальные решения и гнать их на продажу.
   Maniac
 
96 - 14.07.21 - 11:10
(94) за такие деньги можно было бы на море дом купить полноценный.
   Garykom
 
97 - 14.07.21 - 11:10
(94) можно спросить а нахрена покупать недвигу в Мск?
ибо сча можно выбрать регион для жизни почище и по удаленке работать
   Kassern
 
98 - 14.07.21 - 11:11
(97) знакомые стоматолог и реаниматолог, вряд ли смогут удаленно работать))
   Kassern
 
99 - 14.07.21 - 11:12
(96) у некоторых привязка жесткая к москве, своя клиника например, или высокая зарплата требующая находиться в москве.
   Maniac
 
100 - 14.07.21 - 11:12
Сейчас массовый приток мигрантов на юга ближе к морю. хотя оно всегда так было, но сейчас видимо еще больше.
Сам подумываю свалить из Ростова. смотрю варианты.
  1  2   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.