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

ускорить загрузку прайса из эксела

ускорить загрузку прайса из эксела
Я
   Новый1сник2
 
26.08.21 - 15:59
Доброго дня!
Бухгалтерия 3.0 база серверная, подскажите как ускорить загрузку прайса из эксела, примерно от 60000 позиций.
стандартная обработка загрузки номенклатуры уже более 5 часов грузит.
еще вопрос, в документе какое максимальное количество строк может быть?
   lamme
 
1 - 26.08.21 - 16:01
1 отладчиком - смотри самую длительную процедуру при загрузке (это ил ичтение строки екселя, или непосредственная запись в базу или поиск /создание какого-то реквизита)
2  документе какое максимальное количество строк может быть - любое.
   PLUT
 
2 - 26.08.21 - 16:01
(0) если xlsx, то там внутре xml (текст)

можно ПостроительDOM натравить на чтение
   H A D G E H O G s
 
3 - 26.08.21 - 16:02
Прочитать ТабличнымДокументом.
Не благодарите.
   H A D G E H O G s
 
4 - 26.08.21 - 16:02
(0)
99999 строк хватит каждому. Но только не для марок.
   PLUT
 
5 - 26.08.21 - 16:02
(2) но скрее всего не чтение из экселя тормозит, а (1) - поиск и запись в базу
   ДенисЧ
 
6 - 26.08.21 - 16:04
Тут маня вроде где-то бегал, у него своя поделка есть, грузит по 100500 в секунду...
   Злопчинский
 
7 - 26.08.21 - 16:08
(0) это тебе к Мане, https://subsystems.ru/megaprice/
   DGorgoN
 
8 - 26.08.21 - 16:14
Если эксель на сервере есть то можно через него копированием памяти. В сети ищи примеры быстрой работы.
   DGorgoN
 
9 - 26.08.21 - 16:14
Но я переделал на 1с-кий для того чтобы избавиться от офиса.
   Новый1сник2
 
10 - 26.08.21 - 16:15
еще заметил типовая обработка не ищет введенные позиции, а создает новые.
если написать свою загрузку с предварительным поиском например по артикулу, работать будет быстрее ?
   Злопчинский
 
11 - 26.08.21 - 16:16
(10) а откуда типовая обработка знает как искать позиции если это а) вообще в ней не предусмотрено или б) предусмотрено но ты не настроил..?
   Новый1сник2
 
12 - 26.08.21 - 16:19
(11) читал на итс, но видимо там информация не свежая, в настройках не было настройки поиска, просто выбираешь файл и жмешь далее
   DGorgoN
 
13 - 26.08.21 - 16:19
(12) Мы тут в кишках ковыряемся и смотрим не на интерфейс а на код.
   Новый1сник2
 
14 - 26.08.21 - 16:21
(13) так я не против свою обработку написать, с поиском по артикулу быстрее работать будет?
   Злопчинский
 
15 - 26.08.21 - 16:30
нафуя в бухии 60 тыс позиций прайса?
   acanta
 
16 - 26.08.21 - 16:32
А что, бухгалтерия еще не создает для каждого счета свой регистр накопления?
   DGorgoN
 
17 - 26.08.21 - 16:32
(14) Быстрее чего?
   DGorgoN
 
18 - 26.08.21 - 16:33
У меня загрузка прибл. 60 000 позиций по по артикулу (нечеткий поиск с заменой всяких символов -,./*\ и проч. на %) порядка 30-40 минут.
   mikecool
 
19 - 26.08.21 - 16:36
автор, тебя ЛивингСтар покусал? сформулируй вопрос четко и ясно
как будет работать то, что напишешь ты - точно медленнее, поскольку прогаешь наверняка так же, как и мысли формулируешь
   Новый1сник2
 
20 - 26.08.21 - 16:41
(18) круто, (19) пока ни кто не кусал, вопрос в том что типовая обработка загружает медленно,
и создает дубли, поэтому придется писать свою загрузку с поиском по артикулу + может наименованию, вот и хотел спросить поиск быстрее работает чем создание новых позиций?
   Новый1сник2
 
21 - 26.08.21 - 16:42
(15) там 60000 позиций только по одному прайсу, а будет еще несколько. так нужно Заказчику
   mikecool
 
22 - 26.08.21 - 16:47
(20) а типовая - загрузка из табличного документа?
   серый КТУЛХУ
 
23 - 26.08.21 - 16:48
1. преобразовать в табличный документ. Начав с метода таб.документа "Прочитать", позволяющего встроенными средствами платформы загрузить книгу екселя в табличный документ (каждый лист - область с именем листа).
2. в типовых конфигурациях есть обработка загрузки данных из табличного документа. там можно сделать все что угодно. и сохранять-восстанавливать правила загрузки.
   WhiteDragon93
 
24 - 26.08.21 - 16:49
(21) хорошую настройку для обработки загрузки из табличного документа не предлагать? Или клиенту принципиально выбирать файлик и нажимать "Сделать хорошо"?
   Новый1сник2
 
25 - 26.08.21 - 16:50
(23) так типовая и так вроде через табличный документ грузит
   Новый1сник2
 
26 - 26.08.21 - 16:51
(24) примерно так и есть
   Новый1сник2
 
27 - 26.08.21 - 16:54
(23) посмотрю "обработка загрузки данных из табличного документа", задача чтобы этот прайс загрузился не просто в номенклатуру, а в документ Установка цен, поэтому он и прайс. эта обработка позволяет загрузить в установку цен?
   shuhard
 
28 - 26.08.21 - 16:59
(0) открой для себя ADODB & ADOX, типовая загрузка не для больших файлов
   ildary
 
29 - 26.08.21 - 17:01
(18) Скажите пожалуйста, а нечеткий поиск у Вас через полнотекстовый работает? Полнотекстовый поиск не очень быстрый и в Ваши скорости не укладывается.
   Новый1сник2
 
30 - 26.08.21 - 17:01
(28) ну если своя обработка не взлетит, буду смотреть другие варианты
 
 
   shuhard
 
31 - 26.08.21 - 17:44
(30) в Деда Мороза веришь ?
   mikecool
 
32 - 26.08.21 - 17:50
попахивает ЛивингСтаром...
   Кирпич
 
33 - 26.08.21 - 18:17
А я себе запилил утилитку xlstoTZ.exe
Кидаешь на неё мышкой .xlsx и получается файлик .tz, который можно загрузить в таблицу значений с помощью ЗначениеИзФайла() или ЗначениеИзСтрокиВнутр()
   1Сергей
 
34 - 26.08.21 - 18:18
(33) а на чем сделана?
   Новый1сник2
 
35 - 26.08.21 - 18:20
(31) для начала кто такой Дед мороз? это может быть реальный персонаж, который дарил конфеты и подарки детям на новый год, может этот персонаж выдуманный или это какой то собирательный образ в различных культурах. почему бы и нет. есть праздники есть дед морозы, которые дарят игрушки и сладости детям. в разных культурах он преподносится по разному, на западе это санта клаус на оленях, в нашей культуре со снегуркой на лошадях.
   Новый1сник2
 
36 - 26.08.21 - 18:20
(32) с ЛивингСтаром не пересекался
   Кирпич
 
37 - 26.08.21 - 18:23
(34) на паскале
   Кирпич
 
38 - 26.08.21 - 18:25
+(33) вот про это статья есть https://infostart.ru/1c/articles/1116103/
   Maniac
 
39 - 26.08.21 - 18:31
Мегадок: загрузка документов в 1С из почты и Excel


Умная обработка для загрузки документов в 1С Бухгалтерия / УТ10 / УТ11 / УНФ / КА / ERP / 1С Розница.
Автоматическая система проверки почты и загрузка входящих документов в 1С.
Загрузка предложений, интересов покупателей, заказов и счетов от поставщиков.
Загрузка в 1С сделает всю работу за вас - распознает таблицу товаров, цены, суммы, ГТД и прочие данные.
Загрузка накладных, УПД, заказов, счетов, заявок и других документов от поставщиков и покупателей.
Загрузка номенклатуры, штрихкодов в 1С. Изменение номенклатуры.
Супер функция - cопоставление номенклатуры поставщиков (поиск совпадений по словам).
https://subsystems.ru/solutions/1c_excel/prostaya-zagruzka-dokumentov-v-1s-iz-excel/

Цена 24 900.

Есть в аренду в сервис 42 клаудс за 960 рублей
https://42clouds.com/ru-ru/products/modul1c/megadok.html
   Maniac
 
40 - 26.08.21 - 18:32
сорян 1200.
   Maniac
 
41 - 26.08.21 - 18:35
И еще в БП нет прайс-листов. там нет регистрации цен номенклатуры поставщиков вообще.
Максимум там есть Установка цен номенклатуры.
А что касается поставщиков - не было отродясь.
Поэтому я для нее даже не писал загрузку прайсов, есть загрузка доков, с автонастройкой и причими плюшками.

Ну и встроенны поиск соответствий - сопоставление номенклатуры поставщиков. Кстати две версии!

Для 1С ЭДО
https://subsystems.ru/solutions/raznoe/megapoisk-sopostavlenie-nomenklatury-v-1s-edo/
и для типовой загрузки
https://subsystems.ru/solutions/raznoe/megapoisk-sopostavlenie-nomenklatury-tipovaya-zagruzka-tsen-v-1s/


Все вышеперечисленное. Расширения. В 1С ЭДО и типовой загрузке - пристроена кнопочка.
   Новый1сник2
 
42 - 26.08.21 - 18:37
(40) много конечно всего, но за 24900 я и сам сделаю то что нужно. благодарю
   Maniac
 
43 - 26.08.21 - 18:38
Загрузка прайсов поставщиков в 1С из Excel от А до Я
https://subsystems.ru/solutions/1c_excel/zagruzka_praysov_v_1s_iz_excel_csv_txt/

Вот эта разработка имеет скорость загрузки 100 000 товаров с полным чтением, с настройками, с синхронизацией и так далее 1 минута.
Если номенклатуру создавать в 1С с нуля то это где то 7 минут.
   Новый1сник2
 
44 - 26.08.21 - 18:51
(43)  в курсе твоих разработок, даже встречал их у некоторых клиентов, у меня другая задача, сейчас типовая обработка грузит 60 т. позиций примерно 8 ч, меня и заказчика устроит, если загружаться будут часа за три., так что для меня проще свою загрузку сделать.
   1Сергей
 
45 - 26.08.21 - 18:51
(37) Вах! Паскаль живе! :)
   Кирпич
 
46 - 26.08.21 - 19:00
(45) Так а больше не на чем писать. На Си слишком долго. Остальное тянет за собой рантайм величиной с дом и средства разработки на пол диска. А в Lazarus тяпляп и готово.
   sikuda
 
47 - 26.08.21 - 19:22
(46) ну с этим можно поспорить. И если тебе нужен будет интерфейс, то без библиотек не обойтись
   Кирпич
 
48 - 26.08.21 - 19:23
(47) Там с интерфейсом всё в порядке
   sikuda
 
49 - 26.08.21 - 21:25
(44) Вам же подсказали, читать таблицу в ТаличныйДокумент и хоть часами перебирать его неэфективными способами как вы и делаете ;)
   ololoraise
 
50 - 26.08.21 - 21:46
А всё же знают, что в 2016 Экселе из 1с сохраненные файлы надо ползунок с прокруткой право перетащить, чтоб название листа было видно и Эксель не будет тормозить?
   Новый1сник2
 
51 - 27.08.21 - 11:22
благодарю за ответы, эксел сохранил как ТабличныйДокумент, и загрузил типовой обработкой,
поиск был по артикулу, только не понял, она новые позиции умеет создавать?
   Новый1сник2
 
52 - 27.08.21 - 14:49
сделал свою обработку, загружает быстро мин 10-15
делал через таблицу значений, как можно получить значения из таблицы по номеру колонки, а не по названию? можно конечно через счетчик сделать, но может есть вариант проще
вот пример кода

Для Каждого ТекСтрока из ТаблицаЗначений Цикл 
        
        Наименование = СокрЛП(СтрЗаменить(ТекСтрока.Наименование, """", ""));
        Артикул = СокрЛП(СтрЗаменить(ТекСтрока.Артикул, """", ""));
        Цена = ПолучитьСтрокуТолькоЦифры(ТекСтрока.Цена);
        Цена = Цена * 1.2;
        НовСтрока = Объект.Товары.Добавить();
        НовСтрока.Номенклатура = ПолучитьНоменклатуру(Артикул, Наименование);
        НовСтрока.Цена = Цена;
        НовСтрока.Валюта = Валюта;  
        
    КонецЦикла;
   Новый1сник2
 
53 - 27.08.21 - 15:04
уточню вопрос, из ТекСтроки можно как то номер строки получить ?
   Новый1сник2
 
54 - 27.08.21 - 15:25
разобрался, вот так работает ТаблицаЗначений.Индекс(ТекСтрока)
   Жан Пердежон
 
55 - 27.08.21 - 16:03
запрос скорее всего как был цикле так и остался, можно быстрее
   Новый1сник2
 
56 - 27.08.21 - 16:10
(55) ну сначала ТабДок.Прочитать, потом ПостроительЗапроса, потом выгрузка в ТЗ,
в самой ТЗ конечно циклом, но запрос только по номенклатуре, или находит по артикулу, или создает новую. можно как то ускорить? и так не плохо, мин 10 всего грузит
   Новый1сник2
 
57 - 27.08.21 - 16:11
+ еще немного оптимизировал, думаю быстрее будет грузиться
   Maniac
 
58 - 28.08.21 - 01:57
И всего то навсего зажал клиенту сказать 20 тысяч потратить на решение...
   Maniac
 
59 - 28.08.21 - 01:59
с нищими клиентами если работать будешь то и сам ничего не добьешся.
Получается что ты сейчас где то за пятерку убиваешся чтобы что то сделать.
В принципе это хорошо если делаешь - твой опыт все таки это главное.

Но в циклах ничего не нужно делать. Если только не запись в справочник. там никак без цикла. А вот поиск например все одним запросом. никаких циклов.
   Maniac
 
60 - 28.08.21 - 02:01
(56) тут телепатов нет и то что ты пишешь - х.п.к.з. (расшифруй сам). Поэтому просто выложи свой кусок кода и тебе помогут
 
 
   celentano
 
61 - 30.08.21 - 14:04
(39) как тебе сотрудничество с 42clouds ?
   Новый1сник2
 
62 - 30.08.21 - 17:39
(59) нищие клиенты, это которые тебе 20 тыр, не заплатили?
   Новый1сник2
 
63 - 30.08.21 - 17:47
Есть клиенты, которые могут позволить себе ЕРП или КА (но функционал ЕРП избыточен для них) и они покупают УТ+БП или УНФ+БП
   Новый1сник2
 
64 - 30.08.21 - 18:02
и с прайсами так же, у кого то по 10 и больше прайсов и твоя обработка супер, да и стоит не дорого,  а у кого то один два основных поставщика и в установке цен достаточно загрузить из прайса одной кнопкой, без всяких вообще настроек, клиент выбирает конкретный файл эксел прайса и одной кнопкой загружает, вообще без всяких настроек
   Maniac
 
65 - 30.08.21 - 18:04
(61) так себе. песочница.
   Новый1сник2
 
66 - 30.08.21 - 18:04
(59) ну и на счет пятерки тоже не угадал.
   Maniac
 
67 - 30.08.21 - 18:05
(64) честно говоря не разбирался у кого сколько. есть и с одним прайсом. тут дело не в количестве.
плюс для меня загрузка чисто это уже прошлое. я ща по всем блокам торговым работаю и там наворачиваю решения. по всей торговой части УТ
   Maniac
 
68 - 30.08.21 - 18:05
так что загрузка это уже даже больше прошлое. она конечно нужна и прекрасно работает. Но больше забот со всем остальным. по одним только закупкам можно просто ох..еть от разнообразия.
   Maniac
 
69 - 30.08.21 - 18:07
ты сделал загрузку? быстро делает?
где код что тебе там тормозит?
   Maniac
 
70 - 30.08.21 - 18:08
сейчас я вообще сосредоточен например на целой подсистеме для интернет-магазина. все. от работы со справочником до продаж и закупок. работа с апишками поставщиков и прочим всем.
   Maniac
 
71 - 30.08.21 - 18:09
я так то не жадный могут и скидки сделать кому нужна загрузка если кто считает чт оя ох.ел с ценой.
   Maniac
 
72 - 30.08.21 - 18:09
всяко пойдете всякое дерьмо купите.
   Новый1сник2
 
73 - 30.08.21 - 18:10
(69) да все в принципе норм, 60т. позиций грузит мин 10,  даже не знаю можно как  то ускорить или нет, есть новые позиции которые только в цикле можно создать
   Maniac
 
74 - 30.08.21 - 18:10
давай короче показывай что у тебя там тормозит. какой участок. скажу как и чо ли в скайп стукнись скинь. гляну. и прайс свой. затестирую у себя
   Maniac
 
75 - 30.08.21 - 18:11
грузит именно читает? или синхронизация? или запись? конкретно что?
   Maniac
 
76 - 30.08.21 - 18:12
есть три фазы.
1) чтение 2) синхронизация 3) что то сделать в 1С
   Maniac
 
77 - 30.08.21 - 18:12
у тебя где тупит?
   Maniac
 
78 - 30.08.21 - 18:13
2) самое быстрое должно быть вообще.

первое - от того чем читаешь.
третье это уже от нас не зависит, а от 1С и железа.
   Maniac
 
79 - 30.08.21 - 18:15
а по поводу количества прайсов. да даже вот как раз когда один в 60 тысяч. и если там еще свойства и остальная пои..нь то без нормального инструмента все равно может не обойтись. одна кнопка КРУТО
Но ИНОГДА нужно по этому прайсы - и фильтры, и отчет и контроль.
Особенно отчет. плюс в самой базе еще увидеть эти новые товары. и прочее.
У меня там не просто загрузка а целый набор всего. Вплоть до фиксации даты номенклатуры.
   Новый1сник2
 
80 - 30.08.21 - 18:16
у меня в цикле только получение номенклатуры, которая или находит по артикулу или создает новую (по артикулу) т.е артикул это основное, наименование и прочее второстепенно
   Maniac
 
81 - 30.08.21 - 18:16
и подсветок в справочнике. новое загрузил откуда ты свой загрузкой поймешь что нового создалось? лог писать? а  меня просто она уже горит в справочнике.
плюс редакторы всякие. мало ли нужно для сайта свойства перехреначить, там целый блок ... а не просто загрузка в одну кнопку.
   Maniac
 
82 - 30.08.21 - 18:17
(80) ну блин ты самое быстрое сделал самым медленным. поиск один запросом.

таблицу посчле чтения кидаешь в запрос и обьединяешь со справочником по полю. все.
   Maniac
 
83 - 30.08.21 - 18:17
а создание новой отдульная процедурка. где уже бежим - получаем пустоту и тогда создаем.
   Новый1сник2
 
84 - 30.08.21 - 18:18
(81) есть комментарий туда пишу, все понятно
   Maniac
 
85 - 30.08.21 - 18:19
если несколько признаков поиска. значит делаешь 3-4 процедлуры разных но с одним запросом.

поочередно перебрасываешь таблицу с отбором - по пустой номенклатуре. те каждый послебующий поиск обрабатывает еще меньше информации.

в имтоге после всех троех процедур у тебя максимально заполненная таблица.
   Maniac
 
86 - 30.08.21 - 18:20
а уже последняя - там где пустые товары - создать их в базе.
   Новый1сник2
 
87 - 30.08.21 - 18:20
(83) нет одной функцией или возвращает найденное или созданное, но блин это 10 мин. на все про все, стоит дорабатывать что то, клиенту похрен 10 мин устраивает
   Maniac
 
88 - 30.08.21 - 18:23
следующим клиентам просто предлагай мое решение. для партнеров начиная от 20 процентов кешбек.
   RomanYS
 
89 - 30.08.21 - 18:27
(88) Вот где ты "типовым" сильно уступаешь, 1С партнерам 55% дает)))
   Новый1сник2
 
90 - 30.08.21 - 18:31
(88) Евгений! я лучше свое напишу за 10 тыр, чем твое предлагать за 20 тыр и иметь с этого 20%, плюс еще все организационные моменты, обучать юзера пользоваться твоим и др. в (89) прав.
   Maniac
 
91 - 30.08.21 - 18:32
(89) ))) дает то дает. только пойди сейчас найди кому коробку продать!
Плюс какие там требования? а да. ты должен быть франч! плюс сотрудники с сертификатами! И выполнять норму. так как 55 это ты загнул чуть ли не до лучше цены.
   Maniac
 
92 - 30.08.21 - 18:33
у меня есть последняя переписка с партнером в скайпе.... говорит людям зарплаты по 200 штук уже платить нада а где брать им работу хз.
   Maniac
 
93 - 30.08.21 - 18:34
(90) я не 1С ты ничего не должен делать клиенту. все делаю я по той части что касается программ. это просто 20 процентов подарка без капли обязательтств.
   Maniac
 
94 - 30.08.21 - 18:35
разве что только ты там сам ему не навешаешь платные услуги за все что ты перечислил.
   Maniac
 
95 - 30.08.21 - 18:36
и нафиг загрузку. ты мегу за 150 предлагай!
   Maniac
 
96 - 30.08.21 - 18:36
загрузка это скучно
   Новый1сник2
 
97 - 30.08.21 - 18:39
(95) зачем ему мегу за 150, кода у клиента основных поставщиков максимум пять, я ему свою загрузку сделаю по 10 тыр для каждого
   Новый1сник2
 
98 - 30.08.21 - 18:41
а учитывая  что у клиентов запросы одни и те же, я эти загрузки еще не раз продам, какая выгода от продажи твоих загрузок?
   Maniac
 
99 - 30.08.21 - 18:44
(97) хз как тебе обьяснить программисту чт о причем тут сколько поставщиков. пять 10- или 100. ну да когда 100 до за...еп настраивать еще все надо.
и причем тут "ему". я тебе вообще говорю. у тебя что один клиент? тогда нафиг. Просто есть программисты которые на 10 шабашат и еще новых находят.
   Maniac
 
100 - 30.08.21 - 18:45
а ну все. чо я вообще время теряю. давай))
  1  2   

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