|   |   | 
| 
 | Обмен по 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) Ну да, "Арабика" свежесмолотая, в турке заваренная, сильно торкает))) А вот цейлонский чай листовой, нет.
  А вы на чём сидите, сударь? Обмен опытом так сказать ))) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |