|
Загрузка данных через ДБФ файл Прочитать() | ☑ | ||
---|---|---|---|---|
0
Henistaromin
09.06.13
✎
12:49
|
Всем доброго времени суток.
Имеется ДБФ файл с большим количеством строк (250 000) которые необходимо загрузить в регистр сведений. Написал обработку загрузки данных: Процедура КнопкаВыполнитьНажатие(Кнопка) //Регистр = РегистрыСведений.ДанныеОЗаказНарядах1С77.СоздатьНаборЗаписей(); //Регистр.Записать(); ДБФ = Новый XBase; ДБФ.ОткрытьФайл("C:\export13.dbf"); Пока ДБФ.Следующая() Цикл Рег = РегистрыСведений.ДанныеОЗаказНарядах1С77.СоздатьНаборЗаписей(); Рег.Прочитать(); НовСтрока = Рег.Добавить(); НовСтрока.ДатаПодпМе = ДБФ.ДатаПодпМе; НовСтрока.ДатаПодп = ДБФ.ДатаПодп; НовСтрока.Контр = ДБФ.Контр; Сообщить("Загрузили контрагента: "+ДБФ.Контр+ДБФ.ДатаПодп); НовСтрока.КонтЛицо = ДБФ.КонтЛицо; НовСтрока.Адр = ДБФ.Адр; НовСтрока.Тел = ДБФ.Тел; НовСтрока.Марка = ДБФ.Марка; НовСтрока.Мод = ДБФ.Мод; НовСтрока.ВИН = ДБФ.ВИН; НовСтрока.ВидРемонта = ДБФ.ВидРемонта; НовСтрока.ТипРаботы = ДБФ.ТипРаботы; НовСтрока.НомерЗН = ДБФ.НомерЗН; НовСтрока.Пробег = ДБФ.Пробег; НовСтрока.СтРабФ = ДБФ.СтРабФ; НовСтрока.СтЗчФ = ДБФ.СтЗчФ; НовСтрока.СтатусКЛ = ДБФ.СтатусКЛ; Рег.Записать(); КонецЦикла; ДБФ.ЗакрытьФайл(); КонецПроцедуры Соответственно после загрузки 50 000 строк действие Рег.Прочитать() выполняется куда намного дольше чем хотелось бы и практически тормозит весь процесс загрузки. Подскажите пожалуйста, возможно ли этот момент как-либо обойти? Заранее всем большое спасибо! |
|||
1
Кокос
09.06.13
✎
12:51
|
||||
2
Wobland
09.06.13
✎
12:51
|
из цикла вынеси
|
|||
3
Кокос
09.06.13
✎
12:52
|
(2) точно :)) я чет код не развернул даже
|
|||
4
Wobland
09.06.13
✎
12:53
|
(0) ты когда в блокноте карандашиком пишешь, для каждой строки перечитываешь блокнот сначала?
|
|||
5
Кокос
09.06.13
✎
12:59
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
//Регистр = РегистрыСведений.ДанныеОЗаказНарядах1С77.СоздатьНаборЗаписей(); //Регистр.Записать(); ДБФ = Новый XBase; ДБФ.ОткрытьФайл("C:\export13.dbf"); Рег = РегистрыСведений.ДанныеОЗаказНарядах1С77.СоздатьНаборЗаписей(); Рег.Прочитать(); Пока ДБФ.Следующая() Цикл НовСтрока = Рег.Добавить(); НовСтрока.ДатаПодпМе = ДБФ.ДатаПодпМе; НовСтрока.ДатаПодп = ДБФ.ДатаПодп; НовСтрока.Контр = ДБФ.Контр; Сообщить("Загрузили контрагента: "+ДБФ.Контр+ДБФ.ДатаПодп); НовСтрока.КонтЛицо = ДБФ.КонтЛицо; НовСтрока.Адр = ДБФ.Адр; НовСтрока.Тел = ДБФ.Тел; НовСтрока.Марка = ДБФ.Марка; НовСтрока.Мод = ДБФ.Мод; НовСтрока.ВИН = ДБФ.ВИН; НовСтрока.ВидРемонта = ДБФ.ВидРемонта; НовСтрока.ТипРаботы = ДБФ.ТипРаботы; НовСтрока.НомерЗН = ДБФ.НомерЗН; НовСтрока.Пробег = ДБФ.Пробег; НовСтрока.СтРабФ = ДБФ.СтРабФ; НовСтрока.СтЗчФ = ДБФ.СтЗчФ; НовСтрока.СтатусКЛ = ДБФ.СтатусКЛ; КонецЦикла; Рег.Записать(); ДБФ.ЗакрытьФайл(); КонецПроцедуры |
|||
6
Wobland
09.06.13
✎
13:00
|
(5) скучно? ;)
|
|||
7
Кокос
09.06.13
✎
13:08
|
(6) ага. большие базы выгружаю загружаю. долго. скучно. пишу сюда между делом :)
|
|||
8
Henistaromin
09.06.13
✎
13:10
|
Ребят, ошибку понял, сам все поправил, заработало.
Всем большое спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |