|
Загрузка данных из excel, 4000 - 4500 записей в документ, как ускорить? | ☑ | ||
---|---|---|---|---|
0
ultrannge89
18.09.14
✎
12:16
|
Из excel гружу данные в таблицу значений, затем проверяю есть ли справочники чтобы загрузить данные в ТЧ документа, если есть то далее иначе создать.
Далее проверяю есть ли уже такие данные в регистрах которые двигает документ, причем работаю не через цикл, а запросом к внешнему источнику (тз), выбираю только те записи которые надо загрузить и соответсвенно гружу в документ, отсекая при этом ненужные. Далее по средствам запрос.выполнить().выгрузить() вывожу в документ и отдаю пользователю форму. Хочу выиграть немного по быстродействию, а то чисто получение тз из excel занимает порядка 30 сек. Там около 25 листов в которых лежат данные. |
|||
1
ultrannge89
18.09.14
✎
12:17
|
Конфигурация своя, делается для внутреннего отчета, который собирается из разных данных, которых нет в 1С, есть только в excel
|
|||
2
piter3
18.09.14
✎
12:17
|
щас прибежит маня
|
|||
3
Турист
18.09.14
✎
12:18
|
Хмм ... Почти два года на форуме, а про евгения не знает ))
|
|||
4
ultrannge89
18.09.14
✎
12:18
|
(2), а кто такая маня? и где она живет?))
|
|||
5
piter3
18.09.14
✎
12:19
|
(4)он.см (3)
|
|||
6
ultrannge89
18.09.14
✎
12:22
|
на самом деле решил посовещаться прежде чем делать, а то у меня обычно руки вперед головы, только мысль придет и начинаю делать, а потом оказывается что мысль то не такая классная и 2 часа потрачено впустую...
|
|||
7
ultrannge89
18.09.14
✎
12:23
|
маня это мануал?)
|
|||
8
palpetrovich
18.09.14
✎
12:23
|
как из excel грузишь?
|
|||
9
МойКодУныл
18.09.14
✎
12:24
|
(7) Маня это Автоматизатор. Может он тебе продаст свою обработку загрузки из Excel,
|
|||
10
ultrannge89
18.09.14
✎
12:25
|
Процедура КоманднаяПанель1ОткрытьФайл(Кнопка)
//Диалог выбора файла Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите файл Excel"; Диалог.ПолноеИмяФайла = ""; Диалог.ПредварительныйПросмотр = Ложь; Диалог.Фильтр = "Книга Excel с макросами xlsm (*.xlsm)|*.xlsm|Книги Excel xls (*.xls)|*.xls|Книги Excel xlsx (*.xlsx)|*.xlsx"; Если Диалог.Выбрать() Тогда ИмяФайла = Диалог.ПолноеИмяФайла; Иначе Возврат; КонецЕсли; //Доступ из 1С к Excel Попытка Эксель = Новый COMОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Эксель.AskToUpdateLinks = Ложь; Эксель.DisplayAlerts = Ложь; //Открываем книгу Книга = Эксель.WorkBooks.Open(ИмяФайла,0); //Список значений из имен всех листов СписокИменЛистов = Новый СписокЗначений; Для Инд = 1 По Книга.Sheets.Count Цикл СписокИменЛистов.Добавить(Книга.WorkSheets(Инд).Name); КонецЦикла; //Если нет листов Если СписокИменЛистов.Количество() = 0 Тогда Сообщить("В книге не обнаружено ни одного листа!"); Эксель.Application.Quit(); Возврат; Иначе СчитатьДанные(СписокИменЛистов); КонецЕсли; КонецПроцедуры Процедура СчитатьДанные(СписокИменЛистов) //создаем буферную таблицу ОбработкаРезультат = Новый ТаблицаЗначений; ОбработкаРезультат.Колонки.Добавить("ТипСекции", Новый ОписаниеТипов("СправочникСсылка.ТипСекции")); ОбработкаРезультат.Колонки.Добавить("НомерОбъекта", Новый ОписаниеТипов("Строка")); ОбработкаРезультат.Колонки.Добавить("НомерКвартиры", Новый ОписаниеТипов("Число")); ОбработкаРезультат.Колонки.Добавить("Этаж", Новый ОписаниеТипов("Число")); ОбработкаРезультат.Колонки.Добавить("Подъезд", Новый ОписаниеТипов("Число")); ОбработкаРезультат.Колонки.Добавить("ТипКвартиры", Новый ОписаниеТипов("Число")); КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Неотрицательный); ОбработкаРезультат.Колонки.Добавить("ПлощадьКвартиры", Новый ОписаниеТипов("Число",КвалификаторыЧисла)); ОбработкаРезультат.Колонки.Добавить("СтатусДоговора", Новый ОписаниеТипов("ПеречислениеСсылка.СтатусДоговора")); ОбработкаРезультат.Колонки.Добавить("СуммаДоговора", Новый ОписаниеТипов("Число")); ОбработкаРезультат.Колонки.Добавить("ПеречисленоПоДоговору", Новый ОписаниеТипов("Число")); ОбработкаРезультат.Колонки.Добавить("НомерДоговора", Новый ОписаниеТипов("Строка")); ОбработкаРезультат.Очистить(); //перебор листов //Попытка Для Инд = 1 По Книга.Sheets.Count Цикл //получаем лист по номеру листа Лист = Книга.WorkSheets(Инд); ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; //переберем все ячейки листа Для НомерСтроки = 1 По ВсегоСтрок Цикл Значение = СокрЛП(Лист.Cells(НомерСтроки, 1).Value); НайденаПерваяСтрока = НайтиПервуюСтрокуТаблицы(Значение); //ищем первую строку с заполненным типом секции Если НайденаПерваяСтрока Тогда НачальнаяСтрока = НомерСтроки; Прервать; КонецЕсли; КонецЦикла; Если НачальнаяСтрока <> Неопределено Тогда Для НомерСтроки = НачальнаяСтрока По ВсегоСтрок Цикл ТипСекции = СокрЛП(Лист.Cells(НомерСтроки, 1).Value); НомерОбъекта = СокрЛП(Лист.Cells(НомерСтроки, 2).Value); НомерКвартиры = СокрЛП(Лист.Cells(НомерСтроки, 3).Value); Этаж = СокрЛП(Лист.Cells(НомерСтроки, 4).Value); Подъезд = СокрЛП(Лист.Cells(НомерСтроки, 5).Value); ТипКвартиры = СокрЛП(Лист.Cells(НомерСтроки, 6).Value); Площадь = СокрЛП(Лист.Cells(НомерСтроки, 8).Value); СтатусДоговора = СокрЛП(Лист.Cells(НомерСтроки, 12).Value); СуммаДоговора = СокрЛП(Лист.Cells(НомерСтроки, 13).Value); ПеречисленоПоДоговору = СокрЛП(Лист.Cells(НомерСтроки, 14).Value); НомерДоговора = СокрЛП(Лист.Cells(НомерСтроки, 16).Value); Если НайтиПервуюСтрокуТаблицы(Значение) Тогда Если ЗначениеЗаполнено(ТипСекции) Тогда ПолученныеСсылки = ПреобразоватьВСсылку(ТипСекции,СтатусДоговора); СтрокаТаблицы = ОбработкаРезультат.Добавить(); СтрокаТаблицы.ТипСекции = ПолученныеСсылки.Получить("ТипСекции"); СтрокаТаблицы.НомерОбъекта = НомерОбъекта; СтрокаТаблицы.НомерКвартиры = НомерКвартиры; СтрокаТаблицы.Этаж = Этаж; СтрокаТаблицы.Подъезд = Подъезд; СтрокаТаблицы.ТипКвартиры = ТипКвартиры; СтрокаТаблицы.ПлощадьКвартиры = Площадь; СтрокаТаблицы.СтатусДоговора = ПолученныеСсылки.Получить("СтатусДоговора"); СтрокаТаблицы.СуммаДоговора = СуммаДоговора; СтрокаТаблицы.ПеречисленоПоДоговору = ПеречисленоПоДоговору; СтрокаТаблицы.НомерДоговора = НомерДоговора; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
11
ultrannge89
18.09.14
✎
12:25
|
Не полный код, далее обрабатываю уже...
|
|||
12
VMelifaro
18.09.14
✎
12:31
|
||||
13
palpetrovich
18.09.14
✎
12:31
|
(10) ходят слухи, что "Application" не самый шустрый вариант, почитай тут: http://www.rg-soft.ru/rg/articles/comparison-of-methods-of-load-data-from-excel-in-1c/
|
|||
14
VMelifaro
18.09.14
✎
12:33
|
||||
15
ultrannge89
18.09.14
✎
12:34
|
Спасибо, почитаю
|
|||
16
Maniac
18.09.14
✎
12:36
|
Это ко мне http://subsystems.ru/catalog/program=158/
Обработка одновременно загружает все листы экселя, может загнать их в одну таблицу. Скорость 100к строк в минуту. |
|||
17
Maniac
18.09.14
✎
12:37
|
Синхронизация - тоже БЕШАННАЯ!
У меня поиски все работают в 1 цикле. |
|||
18
Maniac
18.09.14
✎
12:38
|
А не , сори, не подйет. Он какую то фигню грузит. а не прайсы.
|
|||
19
КонецЦикла
18.09.14
✎
12:40
|
У меня это занимает 5 секунд вместе с записью в таблицу SQL
Делай запрос к листу екселя |
|||
20
ultrannge89
18.09.14
✎
12:41
|
(17), увидеть бы ее исходник =)
|
|||
21
Барматолог
18.09.14
✎
12:41
|
ADO
|
|||
22
КонецЦикла
18.09.14
✎
12:41
|
+(19) Примерно 5-6 тыс. строк
|
|||
23
Garykom
гуру
18.09.14
✎
12:44
|
(0) ТС а хронометраж разных операций по загрузке (как то их у тя многовато кстати) слабо сделать и выложить?
Просто непонятно в чем у тя затык то что тормозит больше всего... |
|||
24
ultrannge89
18.09.14
✎
12:45
|
если есть какой-нибудь примерчик такой обработки, киньте на почту [email protected]
|
|||
25
Ёпрст
18.09.14
✎
12:45
|
(19) такая же фигня
|
|||
26
Ёпрст
18.09.14
✎
12:45
|
:)
|
|||
27
Garykom
гуру
18.09.14
✎
12:49
|
(19)(25) ага, а если данные в комментах к ячейках? или еще лучше нужно формулы стянуть с картинками?
какой говорите запрос будет? |
|||
28
КонецЦикла
18.09.14
✎
12:50
|
(24) бизвазмездна?
|
|||
29
КонецЦикла
18.09.14
✎
12:50
|
(27) С потусторонними таблицами предпочитаем не работать
|
|||
30
ultrannge89
18.09.14
✎
12:53
|
Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 89 ТипСекции = СокрЛП(Лист.Cells(НомерСтроки, 1).Value); 4 650 4,036565 7,79
Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 90 НомерОбъекта = СокрЛП(Лист.Cells(НомерСтроки, 2).Value); 4 650 4,009551 7,73 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 91 НомерКвартиры = СокрЛП(Лист.Cells(НомерСтроки, 3).Value); 4 650 3,968441 7,65 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 95 Площадь = СокрЛП(Лист.Cells(НомерСтроки, 8).Value); 4 650 3,965188 7,65 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 97 СуммаДоговора = СокрЛП(Лист.Cells(НомерСтроки, 13).Value); 4 650 3,962971 7,64 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 92 Этаж = СокрЛП(Лист.Cells(НомерСтроки, 4).Value); 4 650 3,945520 7,61 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 98 ПеречисленоПоДоговору = СокрЛП(Лист.Cells(НомерСтроки, 14).Value); 4 650 3,944392 7,61 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 93 Подъезд = СокрЛП(Лист.Cells(НомерСтроки, 5).Value); 4 650 3,937688 7,60 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 96 СтатусДоговора = СокрЛП(Лист.Cells(НомерСтроки, 12).Value); 4 650 3,934528 7,59 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 94 ТипКвартиры = СокрЛП(Лист.Cells(НомерСтроки, 6).Value); 4 650 3,934252 7,59 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 99 НомерДоговора = СокрЛП(Лист.Cells(НомерСтроки, 16).Value); 4 650 3,927714 7,58 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 28 Книга = Эксель.WorkBooks.Open(ИмяФайла,0); 1 1,732899 3,34 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 154 Результат = Запрос.Выполнить(); 5 242 1,472425 2,84 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 12 Если Диалог.Выбрать() Тогда 1 1,444882 2,79 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 174 Результат = Запрос.Выполнить(); 4 100 1,072930 2,07 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 19 Эксель = Новый COMОбъект("Excel.Application"); 1 0,535153 1,03 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 77 Значение = СокрЛП(Лист.Cells(НомерСтроки, 1).Value); 592 0,528459 1,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 73 ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; 23 0,343261 0,66 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 32 СписокИменЛистов.Добавить(Книга.WorkSheets(Инд).Name); 23 0,248703 0,48 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 31 Для Инд = 1 По Книга.Sheets.Count Цикл 24 0,160494 0,31 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 101 Если НайтиПервуюСтрокуТаблицы(Значение) Тогда 4 650 0,068623 0,13 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 103 ПолученныеСсылки = ПреобразоватьВСсылку(ТипСекции,СтатусДоговора); 4 100 0,062986 0,12 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 146 Запрос = Новый Запрос; 5 242 0,052575 0,10 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 74 ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; 23 0,037484 0,07 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 178 Соответствие.Вставить("ТипСекции",Выборка.Ссылка); 4 099 0,029246 0,06 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 153 Запрос.УстановитьПараметр("ТипСекцииНаименование", Значение); 5 242 0,029114 0,06 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 147 Запрос.Текст = "ВЫБРАТЬ 5 242 0,028154 0,05 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 166 Запрос = Новый Запрос; 4 100 0,027358 0,05 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 107 СтрокаТаблицы.НомерКвартиры = НомерКвартиры; 4 100 0,025344 0,05 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 173 Запрос.УстановитьПараметр("ТипСекцииНаименование",ТипСекции); 4 100 0,021397 0,04 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 176 Выборка = Результат.Выбрать(); 4 099 0,021376 0,04 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 111 СтрокаТаблицы.ПлощадьКвартиры = Площадь; 4 100 0,020922 0,04 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 104 СтрокаТаблицы = ОбработкаРезультат.Добавить(); 4 100 0,020582 0,04 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 105 СтрокаТаблицы.ТипСекции = ПолученныеСсылки.Получить("ТипСекции"); 4 100 0,020334 0,04 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 167 Запрос.Текст = "ВЫБРАТЬ 4 100 0,018485 0,04 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 72 Лист = Книга.WorkSheets(Инд); 23 0,017854 0,03 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 186 Соответствие.Вставить("СтатусДоговора",Перечисления.СтатусДоговора.ПустаяСсылка()); 2 527 0,017405 0,03 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 155 Если Не Результат.Пустой() Тогда 5 242 0,016883 0,03 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 113 СтрокаТаблицы.СуммаДоговора = СуммаДоговора; 4 100 0,013024 0,03 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 175 Если Не Результат.Пустой() Тогда 4 100 0,012466 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 112 СтрокаТаблицы.СтатусДоговора = ПолученныеСсылки.Получить("СтатусДоговора"); 4 100 0,011864 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 165 Соответствие = Новый Соответствие; 4 100 0,011440 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 108 СтрокаТаблицы.Этаж = Этаж; 4 100 0,010186 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 114 СтрокаТаблицы.ПеречисленоПоДоговору = ПеречисленоПоДоговору; 4 100 0,009932 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 109 СтрокаТаблицы.Подъезд = Подъезд; 4 100 0,009170 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 177 Выборка.Следующий(); 4 099 0,008769 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 25 Эксель.AskToUpdateLinks = Ложь; 1 0,008588 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 78 НайденаПерваяСтрока = НайтиПервуюСтрокуТаблицы(Значение); 592 0,008502 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 182 Соответствие.Вставить("СтатусДоговора",Перечисления.СтатусДоговора.ДоговорИнвестированияДДУ); 1 154 0,008312 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 110 СтрокаТаблицы.ТипКвартиры = ТипКвартиры; 4 100 0,008231 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 181 Если Лев(СтатусДоговора,11) = "Договор инв" Тогда 4 100 0,008093 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 102 Если ЗначениеЗаполнено(ТипСекции) Тогда 4 170 0,007877 0,02 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 106 СтрокаТаблицы.НомерОбъекта = НомерОбъекта; 4 100 0,006723 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 118 КонецЦикла; 4 650 0,005360 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 115 СтрокаТаблицы.НомерДоговора = НомерДоговора; 4 100 0,005103 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 156 Возврат Истина; 4 190 0,004714 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 161 КонецФункции 5 242 0,004422 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 88 Для НомерСтроки = НачальнаяСтрока По ВсегоСтрок Цикл 4 673 0,004320 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 189 Возврат Соответствие; 4 100 0,003951 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 208 ЭлементыФормы.СтроительнаяПлощадка.Значение = Справочники.Номенклатура.НайтиПоКоду("000000005"); 1 0,003534 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 184 Соответствие.Вставить("СтатусДоговора",Перечисления.СтатусДоговора.ДоговорПереуступкиДолга); 419 0,003468 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 194 КонецФункции 4 100 0,003454 0,01 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 183 ИначеЕсли Лев(СтатусДоговора,11) = "Договор пер" Тогда 2 946 0,002310 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 117 КонецЕсли; 4 650 0,001907 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 179 КонецЕсли; 4 100 0,001885 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 187 КонецЕсли; 4 100 0,001795 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 116 КонецЕсли; 4 170 0,001667 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 158 Возврат Ложь; 1 052 0,001220 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 70 Для Инд = 1 По Книга.Sheets.Count Цикл 24 0,000866 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 13 ИмяФайла = Диалог.ПолноеИмяФайла; 1 0,000773 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 84 КонецЦикла; 572 0,000736 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 76 Для НомерСтроки = 1 По ВсегоСтрок Цикл 595 0,000588 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 207 ЭлементыФормы.ДатаЗагрузки.Значение = ТекущаяДата(); 1 0,000507 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 80 Если НайденаПерваяСтрока Тогда 592 0,000378 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 26 Эксель.DisplayAlerts = Ложь; 1 0,000301 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 83 КонецЕсли; 572 0,000223 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 23 КонецПопытки; 1 0,000194 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 30 СписокИменЛистов = Новый СписокЗначений; 1 0,000115 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 7 Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 1 0,000095 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 33 КонецЦикла; 23 0,000061 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 51 ОбработкаРезультат.Колонки.Добавить("ТипСекции", Новый ОписаниеТипов("СправочникСсылка.ТипСекции")); 1 0,000035 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 60 ОбработкаРезультат.Колонки.Добавить("СуммаДоговора", Новый ОписаниеТипов("Число")); 1 0,000022 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 57 КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Неотрицательный); 1 0,000020 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 87 Если НачальнаяСтрока <> Неопределено Тогда 23 0,000020 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 120 КонецЦикла; 23 0,000018 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 62 ОбработкаРезультат.Колонки.Добавить("НомерДоговора", Новый ОписаниеТипов("Строка")); 1 0,000017 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 82 Прервать; 20 0,000016 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 8 Диалог.Заголовок = "Выберите файл Excel"; 1 0,000016 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 81 НачальнаяСтрока = НомерСтроки; 20 0,000010 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 59 ОбработкаРезультат.Колонки.Добавить("СтатусДоговора", Новый ОписаниеТипов("ПеречислениеСсылка.СтатусДоговора")); 1 0,000010 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 119 КонецЕсли; 23 0,000010 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 58 ОбработкаРезультат.Колонки.Добавить("ПлощадьКвартиры", Новый ОписаниеТипов("Число",КвалификаторыЧисла)); 1 0,000010 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 52 ОбработкаРезультат.Колонки.Добавить("НомерОбъекта", Новый ОписаниеТипов("Строка")); 1 0,000009 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 53 ОбработкаРезультат.Колонки.Добавить("НомерКвартиры", Новый ОписаниеТипов("Число")); 1 0,000009 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 61 ОбработкаРезультат.Колонки.Добавить("ПеречисленоПоДоговору", Новый ОписаниеТипов("Число")); 1 0,000008 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 55 ОбработкаРезультат.Колонки.Добавить("Подъезд", Новый ОписаниеТипов("Число")); 1 0,000007 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 54 ОбработкаРезультат.Колонки.Добавить("Этаж", Новый ОписаниеТипов("Число")); 1 0,000007 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 50 ОбработкаРезультат = Новый ТаблицаЗначений; 1 0,000007 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 56 ОбработкаРезультат.Колонки.Добавить("ТипКвартиры", Новый ОписаниеТипов("Число")); 1 0,000007 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 16 КонецЕсли; 1 0,000004 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 9 Диалог.ПолноеИмяФайла = ""; 1 0,000004 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 11 Диалог.Фильтр = "Книга Excel с макросами xlsm (*.xlsm)|*.xlsm|Книги Excel xls (*.xls)|*.xls|Книги Excel xlsx (*.xlsx)|*.xlsx"; 1 0,000004 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 10 Диалог.ПредварительныйПросмотр = Ложь; 1 0,000004 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 63 ОбработкаРезультат.Очистить(); 1 0,000004 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 209 КонецПроцедуры 1 0,000003 0,00 Обработка.ЗагрузкаОстатковИзExel.Форма.Форма.Форма 35 Если СписокИменЛистов.Количество() = 0 Тогда 1 0,000003 0,00 |
|||
31
AndyD
18.09.14
✎
13:01
|
сначала грузи все в табличный документ целыми листами. 1с из табдока во много раз быстрее читает, чем из экселя.
|
|||
32
AndyD
18.09.14
✎
13:02
|
или в память целый лист (диапазон) считывай и из памяти читай данные, тоже во много раз быстрее, чем по одному значению из экселя
|
|||
33
Kamas
18.09.14
✎
13:15
|
(30) что это такое страшное
|
|||
34
User_Agronom
18.09.14
✎
13:18
|
(16) (17) Сама всё грузит и даже решает куда. Главное указать откуда))
|
|||
35
vis_tmp
18.09.14
✎
13:25
|
(0)ADODB тебя спасёт
|
|||
36
ultrannge89
18.09.14
✎
13:59
|
35, ещебы найти с чего едят, а лучше посмотреть готовый исходник и разобраться как работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |