|
Обмен по OLE 7.7 -> 8.2 Ускорение. | ☑ | ||
---|---|---|---|---|
0
ProProg
20.09.12
✎
11:48
|
Какие есть варианты чтобы загрузить 300 000 номенклатуры быстро.
ТекстЗапроса = " |Обрабатывать НеПомеченныеНаУдаление; |ЭлементСсылка = Справочник.Номенклатура.ТекущийЭлемент; |Поле_Наименование = Справочник.Номенклатура.Наименование; |Поле_Код = Справочник.Номенклатура.Код; |Поле_Артикул = Справочник.Номенклатура.Артикул;"; Если ПереноситьИерархию Тогда ТекстЗапроса = ТекстЗапроса + " |Поле_Родитель5 = Справочник.Номенклатура.Родитель.Наименование; |Поле_Родитель4 = Справочник.Номенклатура.Родитель.Родитель.Наименование; |Поле_Родитель3 = Справочник.Номенклатура.Родитель.Родитель.Родитель.Наименование; |Поле_Родитель2 = Справочник.Номенклатура.Родитель.Родитель.Родитель.Родитель.Наименование; |Поле_Родитель1 = Справочник.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Наименование;"; КонецЕсли; Если ЕстьРеквизитПроизводитель Тогда ТекстЗапроса = ТекстЗапроса + " |Поле_Производитель = Справочник.Номенклатура.Производитель.Наименование;"; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |Группировка ЭлементСсылка БЕЗ ГРУПП; |"; //Запрос = БазаОле.EvalExpr("СоздатьОбъект(""Запрос"")"); Запрос = БазаОле.CreateObject("Запрос"); Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Запрос не выполнен!"); Возврат; КонецЕсли; ТаблицаЗапроса = БазаОле.CreateObject("ТаблицаЗначений"); Запрос.Выгрузить(ТаблицаЗапроса,1,0); ТаблицаЗапроса.ВыбратьСтроки(); Пока ТаблицаЗапроса.ПолучитьСтроку() = 1 Цикл ОбработкаПрерыванияПользователя(); НоваяСтрока = Объект.ТабличнаяЧасть.Добавить(); НоваяСтрока.Поле_Код = ТаблицаЗапроса.Поле_Код; НоваяСтрока.Поле_Артикул = ТаблицаЗапроса.Поле_Артикул; НоваяСтрока.Поле_Наименование = ТаблицаЗапроса.Поле_Наименование; НоваяСтрока.Поле_Производитель = ТаблицаЗапроса.Поле_Производитель; Если ПереноситьИерархию Тогда НоваяСтрока.Поле_Родитель1 = ТаблицаЗапроса.Поле_Родитель1; НоваяСтрока.Поле_Родитель2 = ТаблицаЗапроса.Поле_Родитель2; НоваяСтрока.Поле_Родитель3 = ТаблицаЗапроса.Поле_Родитель3; НоваяСтрока.Поле_Родитель4 = ТаблицаЗапроса.Поле_Родитель4; НоваяСтрока.Поле_Родитель5 = ТаблицаЗапроса.Поле_Родитель5; КонецЕсли; КонецЦикла; |
|||
114
ProProg
20.09.12
✎
14:42
|
кто нить из вас с ПОЛНОЙ уверенностью может сказать что файл ДБФ с 300 000 строк будет считываться пару минут.
|
|||
115
zladenuw
20.09.12
✎
14:43
|
(111) сделай не 4 вызова ТаблицаЗапроса, а 1 и получи 4 параметра. это уже быстрее
|
|||
116
ProProg
20.09.12
✎
14:43
|
(112) про какой апдейт идет речь. если идет примиивное получение запроса, выгрузка в примитивную таблицы с примитивными же данными.
|
|||
117
Serginio1
20.09.12
✎
14:43
|
Книга знаний: v8: Охота на Com-ов
(110) Ну если бы ты был в теме, то свойства и методы в COM вызваются через два метода DispGetIDsOfNames и Invoke |
|||
118
VladZ
20.09.12
✎
14:43
|
(114) Просто считыватья или при этом еще и в базу будет писаться инфа?
|
|||
119
ProProg
20.09.12
✎
14:44
|
(115) каким это образом возможно?
|
|||
120
Serginio1
20.09.12
✎
14:44
|
Через два метода интерфейса IDispatch GetIDsOfNames и Invoke
|
|||
121
ProProg
20.09.12
✎
14:46
|
(118) просто считывание.
|
|||
122
Serginio1
20.09.12
✎
14:46
|
(114) Считываться значительно быстрее.
|
|||
123
zladenuw
20.09.12
✎
14:46
|
(119) а что в запросе нельзя получить любое поле ? ужас
|
|||
124
ProProg
20.09.12
✎
14:46
|
то что будет потом уже ОЛЕ не касается.
Идет заполнение данных в ИЗ восьмерки. а сохздание уже никаким боком к оле не относится. |
|||
125
ProProg
20.09.12
✎
14:47
|
тьфу. блин.
|
|||
126
ProProg
20.09.12
✎
14:47
|
(123) какой запрос? епать. таблица значений. ты говоришь сделай вызов один раз. бред какой то.
|
|||
127
Злопчинский
20.09.12
✎
14:49
|
(100) на каждый прайс своя загрузка или мегауниверсальная мегаобработка для всех прайсов?
|
|||
128
Serginio1
20.09.12
✎
14:50
|
(127) По параметрам прайсов генерится свой запрос
|
|||
129
zladenuw
20.09.12
✎
14:50
|
вот ты тут что получаешь и откуда..
НоваяСтрока.Поле_Код = ТаблицаЗапроса.Поле_Код; НоваяСтрока.Поле_Артикул = ТаблицаЗапроса.Поле_Артикул; НоваяСтрока.Поле_Наименование = ТаблицаЗапроса.Поле_Наименование; НоваяСтрока.Поле_Производитель = ТаблицаЗапроса.Поле_Производитель; а теперь подумай о 50 постах. |
|||
130
ProProg
20.09.12
✎
14:50
|
(127) универсальная. настраиваемая.
|
|||
131
zladenuw
20.09.12
✎
14:51
|
(129) и у тебя пример замера в 44. так что. а не буду грубым. промолчку
|
|||
132
Злопчинский
20.09.12
✎
14:51
|
(114) Женя, я блин удивлен...
прайс 15000 строк читается из ДБФа нескольо секунд.. 300 тыс будет чуть поболее... |
|||
133
ProProg
20.09.12
✎
14:51
|
(129) из таблицы (которая является объектом ОЛЕ) получаю значения.
|
|||
134
ProProg
20.09.12
✎
14:53
|
(132) ситуация. чел взял конфу. хоте перетянть свой справочник. я не буду ему писать загрузки и не буду говорить ему делать прайсы. никаких компонент. есть обработка которая подключется к любой семерке и вытягивает оттуда номенклатуру в УТ11. челу надо нажать две кнопки.
|
|||
135
Злопчинский
20.09.12
✎
14:53
|
(130) как примерно будет настроено типа такое
если в столбце значение формата "DVD x 9" - то получить надо "9" а если другого формата - то пропустить, за исключением формата типа "3MP3" - отсюда получить "3"... - т.е. количество дисков в комплекте..? |
|||
136
Злопчинский
20.09.12
✎
14:55
|
(134) а при чем здесь ЧТЕНИЕ ИЗ ДБФ..? все тормоза в получении значений через ОЛЕ - это жутко тормозной вариант.
|
|||
137
zladenuw
20.09.12
✎
14:55
|
ну так напиши свой инстал. где все проставит и доставит. а в итоге запуск 1 обработки и о чудо все в 8.
|
|||
138
ProProg
20.09.12
✎
14:55
|
(135) не грузи меня сейчас. это к теме не относится.
|
|||
139
VladZ
20.09.12
✎
14:55
|
(121) Я к тому, что в (111) у тебя не просто считывание... А еще и запись (заполнение табличной части).
|
|||
140
ProProg
20.09.12
✎
14:56
|
(136)я уже написал 40 постов назад. что считывание в восьмерку заняло 30 минут. СОЗДАНИЕ в восьмерке! Уже из собственной таблицы - 50 минут.
|
|||
141
Serginio1
20.09.12
✎
14:56
|
(135) Для таких приходится отдельно писать предварительную обработку. Но это обычно мелкие прайсы причем в экселе. Большинство работают по определенным стандартам.
|
|||
142
Злопчинский
20.09.12
✎
14:57
|
(134) выполни в контексте ОЛЕ слив справоячника в ДБФ, в 8-ке прочитай ДБФ.
|
|||
143
ProProg
20.09.12
✎
14:57
|
итого час 20 на 300 тысяч номенклатуры. В принципе результат офигенный. учитывая нажатие двух кнопок и все.
КД - умерло бы сразу. Подключение компонент и прочей уеты - мне больше выйдет чем вся эта долбанная загрузка. |
|||
144
zladenuw
20.09.12
✎
14:58
|
(143) опять ты про то чего не знаешь. не фуфли тут
|
|||
145
Злопчинский
20.09.12
✎
14:58
|
(140) женя, ты блин определись, что тебе надо. чтение из ДБФ или чтение из ДБФ через прокладку ОЛЕ. основное время сожрет получение занченйи через прокладку ОЛЕ.
|
|||
146
Serginio1
20.09.12
✎
14:58
|
(136) Не через оле, а через внешний сервер ОЛЕ. Внктренний сервер будет работать быстро. Хотя вызов в 7 ке своих методов быстрее.
|
|||
147
ProProg
20.09.12
✎
14:59
|
(135) не парься. в определенных спецификах рынка (востребованных все проще). В автозапчастях - артикул и производитель. и все звиздец. наименования ваще нах не нужны.
|
|||
148
Злопчинский
20.09.12
✎
15:00
|
(146) угу.
женя хочет универсальный инструмент который работает быстро и эффективно. такого не бывает... |
|||
149
ProProg
20.09.12
✎
15:01
|
(145) ладно попробую как нить сделать через файл. если интерес будет.
|
|||
150
Злопчинский
20.09.12
✎
15:01
|
(147) угу, как и предполагалось... херня хзерней грубо говоря. мне например, практически на каждый прайс по дискам приходится писать свой "плугин" разбора. универсальность - не канает.
|
|||
151
zladenuw
20.09.12
✎
15:01
|
(147) пиз.дите сер. приедет к вам проверка. вот тогда будете думать по другому.
|
|||
152
Serginio1
20.09.12
✎
15:01
|
(141) Ну и обработка для таких прайсов тоже универсальная. Просто прописывается код обработки для каждого прайса и через выполнить обрабатывается каждая строка.
|
|||
153
ProProg
20.09.12
✎
15:01
|
пока что создание номенклатуры занимает 2/3 всей обработки, так что получение на этом фоне незначительно много занимает.
На фоне других вариантов типа КД это самый быстрый и действенный вариант получился. |
|||
154
zladenuw
20.09.12
✎
15:02
|
(151) антимонопольный комитет. за каждую букву даст под зад
|
|||
155
ProProg
20.09.12
✎
15:02
|
(150) мелкие донастройки фигня. как артикул разобрать и т.п. и т.д. я уже научился. фирма 10 лет на рынке.
|
|||
156
Злопчинский
20.09.12
✎
15:02
|
(149) сделай в 8-ке текст семерошной обработки по сливу справочника в ДБФ. запусти эту обработку в контексте семерошного ОЛЕ. полученный ДБФ прочитай в 8-ке. будет просто акуеть как быстро. это я как неспец говорю.
|
|||
157
Serginio1
20.09.12
✎
15:03
|
(150) А что там много писанины для обработки строки? Эта строка записывается в формат прайса.
|
|||
158
ProProg
20.09.12
✎
15:03
|
через номенклатуру поставщиков (справочник) тоже ничего сложного...
поиск соответствий (отложенный) тоже сделан. загрузка когда номенклатуры нет - тоже. |
|||
159
zladenuw
20.09.12
✎
15:04
|
(156) так кричал об этом. не ТС до ж.... дальше не буду серить в его огород
|
|||
160
ProProg
20.09.12
✎
15:05
|
(156) я сильно НЕ уверен что это не займет в итоге ВСЕ теже 30 минут.
Если бы речь шла о 2-3 часах имел бы смысл искать такие пути. Когда 30 минут. что то мне подсказывает что 5 минут роли не сиграют. |
|||
161
Злопчинский
20.09.12
✎
15:05
|
(155) угу.. вот эти мелкие донастройки - полное УГ. загрузка прайса - 95% универсальный код. оставшиеся 5% - специфика каждого прайса, которая не поддается унификации. я - не смог унифицировать... самый путь который выбрал - систем а плугинов. в ключевых точках - вызовы плугинов с возвратом нужного. плугины - практически под каждый прайс отдельные. свести к чему-то единообразному - не удается...
|
|||
162
Злопчинский
20.09.12
✎
15:06
|
(160) такой слив-чтение суммароно займут минут 10, не больше, а если это на нормальном компе - то воопще пипец будет
|
|||
163
ProProg
20.09.12
✎
15:06
|
(161) хорош уже) у тебя один опыт у меня другой. может я настока гениален что нашел те варианты которые ты не видел))))
|
|||
164
ProProg
20.09.12
✎
15:07
|
у меня больше 500 клиентов одной обработки. спорить будем кто больше повидал?
|
|||
165
Злопчинский
20.09.12
✎
15:07
|
я ж те грю - лет 6-7 назад ПОЛНАЯ ЗАГРУЗКА прайса на 15000 из ДБФа занимала секунд 20.
|
|||
166
ProProg
20.09.12
✎
15:08
|
(162) попробую. как бы не хотелось вспоминать семерку...
|
|||
167
Serginio1
20.09.12
✎
15:08
|
(163) Хе хе. Гений1С отдыхает.
|
|||
168
Злопчинский
20.09.12
✎
15:08
|
(164) мне спорить не надо ;-) я тебе 3-4 прайса выдам и посмотрю как ты их одной и той же обработкой загрузишь без допрограммирования. ;-)
|
|||
169
ProProg
20.09.12
✎
15:09
|
Есть еще понятие целесообразности. Я думал что я что то пропустил в ОЛЕ.
Выгрузка-загрузка такого справочника . дело разовое. выполняемое один раз. И то это у меня столько) У других и 30 тысяч не будет. Производителей 1500 штук за пару минут загрузил и создал. |
|||
170
Злопчинский
20.09.12
✎
15:10
|
структурированные прайсы грузит - хрен ли... а когда прайс типа вручную в экселе написан - тут начинается веселуха.. ;-)
|
|||
171
Злопчинский
20.09.12
✎
15:10
|
(169) согласен. если это разовые работы то бороться особо за скорость не надо...
|
|||
172
ProProg
20.09.12
✎
15:10
|
(168) давай) жду в скайпе.
|
|||
173
Злопчинский
20.09.12
✎
15:11
|
(172) ща попробую найти прасики...
|
|||
174
zladenuw
20.09.12
✎
15:16
|
и мне
|
|||
175
ASU_Diamond
20.09.12
✎
15:16
|
(88) проверял?
|
|||
176
ProProg
20.09.12
✎
15:18
|
(175) Каждый раз КД дохнет когда я из семерки в торговлю данные выгружаю за месяц) если за два то где то на 50000 объектах (часа три) вывалит нехватку памяти и досвидос.
Номенклатуру тоже пытался выгрузить всю в торговлю - тоже самое) даже не увидев строку сколько чего выгрузилось.)) |
|||
177
ProProg
20.09.12
✎
15:18
|
причем все порезано в правилах обмена по самое не балуйся.
|
|||
178
Aprobator
20.09.12
✎
15:19
|
(0) прикольный перенос. Типа знания одного верхнего родителя для переноса недостаточно?
|
|||
179
Aprobator
20.09.12
✎
15:20
|
а так там вообще кирдык. Родитель через наименование тащится. Начало пятницы зачтено.
|
|||
180
ProProg
20.09.12
✎
15:20
|
(178) в смысле? надо же все уровни. а не один.
|
|||
181
ProProg
20.09.12
✎
15:21
|
(179) ну и ? для ОЛЕ нужны строковые данные. получаю в запросе название родителя сразу. на ссылках вообще все умрет.
|
|||
182
Vakhrin
20.09.12
✎
15:21
|
можно еще быстрее, чем ДБФ семерочный... записываем в текст с разделителями, но опять же не через стандартный текст, а через vbs FSO
и полученный файл читаем через ADO )) (180) каждый последующий уровень определит предыдущий |
|||
183
Злопчинский
20.09.12
✎
15:21
|
(172) чтото в скайпе вы неактивны..
|
|||
184
Злопчинский
20.09.12
✎
15:21
|
взял наобум простенький прайсик...
|
|||
185
ProProg
20.09.12
✎
15:22
|
(182) чо чо.
|
|||
186
Vakhrin
20.09.12
✎
15:23
|
(185) to google ))
|
|||
187
ASU_Diamond
20.09.12
✎
15:27
|
(176) сейчас занимаюсь переводом ПУБ на УПП, только что выгружал справочник номеклатуры в УПП: материалов 70 тыс, номенклатуры 30 тыс и того 100 тыс, выгрузилось довольно быстро (и это все поля, ничего не порезано) и без всяких ошибок. ЧЯДНТ?
|
|||
188
Aprobator
20.09.12
✎
15:28
|
для быстрее я бы вообще через ОЛЕ не тащил. В одной базе выгрузил в файр, в другой из файла загрузил. Разовая операция то?
|
|||
189
Aprobator
20.09.12
✎
15:28
|
(187) ты небось не ОЛЕ юзаешь )
|
|||
190
zladenuw
20.09.12
✎
15:29
|
а что в оле нельзя запустить обработку ?
|
|||
191
ASU_Diamond
20.09.12
✎
15:30
|
(189) ну я про КД речь вел
|
|||
192
Aprobator
20.09.12
✎
15:30
|
(176) КД дохнет на 50000? Офигеть. Обработку порциями не прописать что ли? Прием известный, в типовых есть. (190) смотря какими руками.
|
|||
193
zladenuw
20.09.12
✎
15:32
|
(192) тс не читает такого. а можно так (190) ?
|
|||
194
Aprobator
20.09.12
✎
15:35
|
(193) да можно конечно. Но не так как ТС делает. Это же надо додумать такой объем данных одним запросом херакнуть.
|
|||
195
zladenuw
20.09.12
✎
16:08
|
(194) ну так прямой, на выхлопе дбф,хмл,тхт и т.д. и вуаля. или не . не фокус?
|
|||
196
zladenuw
20.09.12
✎
16:38
|
знатоки 7. можно ли в 8 о вызову кому 7. вызвать обработку и создать прямой запрос
|
|||
197
zladenuw
20.09.12
✎
16:41
|
(196) форму для это же. я с телефона тута. Ы
|
|||
198
zladenuw
20.09.12
✎
16:45
|
можно ли так. создаю ком к 7 ну или апли. вызываю обработку. она создает прямой запрос, выгружает в дбф. ком для 8 вернет дбф. так можно ?
|
|||
199
zladenuw
20.09.12
✎
16:46
|
(198) а можно программно создать обработку для 7 ? с 8 ? и запихнуть все что надо.
|
|||
200
zladenuw
20.09.12
✎
16:46
|
ушел в warcraft3 dota
|
|||
201
Злопчинский
20.09.12
✎
16:50
|
(199) можно
|
|||
202
zladenuw
20.09.12
✎
16:53
|
(201) но напрямую вызвать прямой запрос или мета 1с7. мы не можем или можем ?
|
|||
203
zladenuw
20.09.12
✎
16:53
|
(202) условие 1с7 объект подключения
|
|||
204
zladenuw
20.09.12
✎
16:54
|
(201) если аппи. то вроде как да. если ком то не ?
|
|||
205
zladenuw
20.09.12
✎
16:55
|
зашибетесь реклама
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс |
|||
206
zladenuw
20.09.12
✎
16:58
|
надо учитцо!!!!!!!
«Когда мы встречались последний раз, я был всего лишь учеником; теперь я — мастер.» — Дарт Вейдер — Оби-Вану Кеноби(источник) |
|||
207
zladenuw
20.09.12
✎
16:59
|
можно ли это или нет ? вот в чем вопрос ! (202)
|
|||
208
ILM
гуру
20.09.12
✎
17:05
|
Вызвать можете, даже выборку можете вернуть, не может вставить, удалить и записать новые записи справочника, бл.еа.ть.
|
|||
209
3Jl0
20.09.12
✎
17:25
|
(208) а кто про это. вопрос чтения с 7. запись 8. судорь вы под чем !
|
|||
210
ILM
гуру
20.09.12
✎
17:47
|
(208) ответ на (207)
Никто не мешает выгрузить данные в текстовый файл из команд SQL, например вот такого вида "Insert .... into ...." и передать его в ADO или native, как хотите. Вот только не факт, что 1С будет с такими данными работать. И я сударь, под чаем сижу))) А утром под кофе... |
|||
211
3Jl0
20.09.12
✎
18:08
|
(210) кофеин это как бы наркотик
|
|||
212
EvgeniuXP
20.09.12
✎
18:33
|
(27) а зачем в дбф, сразу ТЗ в файл и считать из файла в ТЗ :)
|
|||
213
ILM
гуру
20.09.12
✎
19:11
|
(211) Ну да, "Арабика" свежесмолотая, в турке заваренная, сильно торкает))) А вот цейлонский чай листовой, нет.
А вы на чём сидите, сударь? Обмен опытом так сказать ))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |