Имя: Пароль:
1C
1С v8
Загрузка данных из 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, ещебы найти с чего едят, а лучше посмотреть готовый исходник и разобраться как работает
AdBlock убивает бесплатный контент. 1Сергей