Вход | Регистрация
    1  2
1С:Предприятие :: 1С:Предприятие 8 общая

Загрузка 120 тыс строк из Эксель 30 минут - это нормально?

Загрузка 120 тыс строк из Эксель 30 минут - это нормально?
Я
   palpetrovich
 
13.07.21 - 17:40
Файл - 2 колонки, железо - ну очень приличное, загрузка - "Длительные операции" из БСП
   Garykom
 
101 - 14.07.21 - 11:18
(100) Нафик юга, я бы среднюю полосу предпочел типа Воронежа или можно поближе к Сибири и ДВ
   Злопчинский
 
102 - 14.07.21 - 11:18
(100) к Белому морю? подальше от мигрантов?
   Garykom
 
103 - 14.07.21 - 11:19
(102) Холодновато тут на Белом море зимой особенно
   Maniac
 
104 - 14.07.21 - 11:28
А я Красную поляну обожаю.
   Злопчинский
 
105 - 14.07.21 - 11:31
(104) построй себе шале на Эльбрусе.
   серый КТУЛХУ
 
106 - 14.07.21 - 12:06
ТабДокументЗагрузки = Новый ТабличныйДокумент;
    ТабДокументЗагрузки.Прочитать(ExcelФайл);
    ТаблицаЗначенийЗагрузки = Новый ТаблицаЗначений;
    ТаблицаЗначенийЗагрузки.Колонки.Добавить("Колонка1");
    ТаблицаЗначенийЗагрузки.Колонки.Добавить("Колонка2");
    Для СчетчикСтрок=1 По 100000 Цикл
        СтрокаТз = ТаблицаЗначенийЗагрузки.Добавить();
        СтрокаТз.Колонка1 = ТабДокументЗагрузки.Область(СчетчикСтрок+1,1).Текст;
        СтрокаТз.Колонка2 = ТабДокументЗагрузки.Область(СчетчикСтрок+1,2).Текст;
        ПустоеВычисление = Справочники.Номенклатура.ПолучитьСсылку(МассивДляВычислений[СчетчикСтрок-1]);
    КонецЦикла;
итого затрачено времени(сек): 3,462536
что я делаю не так?
   Злопчинский
 
107 - 14.07.21 - 12:07
(106) "сломается", если в табдокумент 99999 или 100001
   Garykom
 
108 - 14.07.21 - 12:10
(106) >ПустоеВычисление = Справочники.Номенклатура.ПолучитьСсылку(МассивДляВычислений[СчетчикСтрок-1]);

не так надо
   Kassern
 
109 - 14.07.21 - 12:11
(106) Если нужно прочитать все, то лучше 
КоличествоСтрок=ТабДок.ПолучитьРазмерОбластиДанныхПоВертикали();
Для к=1 По КоличествоСтрок Цикл
   Kassern
 
110 - 14.07.21 - 12:13
(106) можно в цикле ничего не вычислять, а лишь тз заполнить. А далее все 1 запросом сопоставить и отфильтровать как надо.
   Garykom
 
111 - 14.07.21 - 12:18
(109) эээ я юзал просто ТабДок.ВысотаТаблицы
   Вафель
 
112 - 14.07.21 - 13:03
(110) ссылку все равно нужно в цикле вычислять
   Kassern
 
113 - 14.07.21 - 13:40
(112) зачем ссылку в цикле вычислять? К примеру у вас есть эксель с колонками артикул, цена. Что мешает создать ТЗ с данными колонками и определенным типом, заполнить в цикле данными из табдока и запихнуть в запрос. Далее эту временную таблицу привязать к таблице номенклатуры по артикулу и получить уже найденные в базе данные. зачем это дело в цикле гонять?
   palpetrovich
 
114 - 14.07.21 - 14:22
ох, а понаписывали то :)
сделал так 
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ПутьКФайлу);
    ОбластьЯчеек = ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, 2);
    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
    ПостроительОтчета = Новый ПостроительОтчета; 
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();
    ТЗ = ПостроительОтчета.Результат.Выгрузить();
потом ТЗ - в запрос для получения ссылок

время 10-15 сек, выводит на экран (если нужно) - мягко говоря - подольше  :)
   trad
 
115 - 14.07.21 - 14:52
а которую страницу екселя прочитает табдок?
   Kassern
 
116 - 14.07.21 - 14:56
(115) насколько я помню, табдок склеивает все таблицы в одно целое. А страницы лишь области этого табдока
   Maniac
 
117 - 15.07.21 - 12:20
(116) существенный недостаток 1С.
Как и это.
Так и то что из 1С нельзя делать многолистовые эксель файлы.
   Maniac
 
118 - 15.07.21 - 12:21
Могли бы и сделать чтобы возвращался массив табличных документов.
А также чтобы можно было и из 1С разные таб доки склеивать в многолистовую книгу.
   acht
 
119 - 15.07.21 - 12:24
(117) > из 1С нельзя делать многолистовые эксель файлы.
Серьезно?
   ДенисЧ
 
120 - 15.07.21 - 12:25
(119) Ты чо, обурел? ))))
|мане не веришь??
   Kassern
 
121 - 15.07.21 - 12:26
(118) все можно, есть для этого специальный конструктор для пакета документов. Каждый уйдет на нужный лист.
   Kassern
 
122 - 15.07.21 - 12:27
   acht
 
123 - 15.07.21 - 12:27
Я начинаю подозревать, что манина загрузка, гм, слегка устарела =)
   Kassern
 
124 - 15.07.21 - 12:30
(123) Да не быть такого не может) достаточно прочитать (55) "1С однопоточная прога и использует 1 ядро".
   Kassern
 
125 - 15.07.21 - 12:31
(124) *быть такого не может)
   acht
 
126 - 15.07.21 - 12:34
(124) О, там круче - "В моей обработке файл перекачивается на наш веб-сервис"
И можно начинать барыжить статистикой внутреннмх цен поставщиков
   Kassern
 
127 - 15.07.21 - 12:39
(126) вот еще идея, в какой то момент делаешь мол первые 100мб бесплатно в месяц. Кто до 1гб отправляет тот 3тыс платит, а кто еще больше то 5тыс. Людям, которые заплатили бабки и автоматизировали свои рабочие места на ваш сервис придется раскошеливаться)
   acht
 
128 - 15.07.21 - 12:40
(127) И правда. И 1С знать уже не обязательно. Но советы раздавать по прежнему можно.
   Krendel
 
129 - 15.07.21 - 12:43
(104) Маня вернулся?
   Kassern
 
130 - 15.07.21 - 12:45
(128) пример кстати из реальной жизни, на одном из проектов, так и поступили. Создали свой обменник для поставщиков на подобии почтовика, чтобы поставщики могли обмениваться документами друг с другом. Всех посадили на прогу, которая xmlки выплевывает в этот сервис, который передает далее файлик нужному клиенту. А через пол годика сообщили, мол сервис разросся поддерживать его стало накладно, мол платите абоненточку за объем)
 
 
   bolder
 
131 - 15.07.21 - 15:58
(37) >30 минут это для чтения много.Примерно 10 на не сильном железе 5-10 летней давности.
Не, 5 минут для чтения  8 колоночного файла хватает.На все про все с сопоставлением номенклатуры и прочего (ага, нужно и другое сопоставить), а также отображением на экране 9,5 минут.
Процессор 3,0 ГГц 2008 года )) 1C 8.3.15.2107 клиент- сервер MS SQL
   bolder
 
132 - 15.07.21 - 16:08
(100) Маня, этот год показал, что делать на юге у моря нечего.В горы стремись))
   bolder
 
133 - 15.07.21 - 16:11
(112) > ссылку все равно нужно в цикле вычислять
Зачем? Давно все получаю запросами.Как и в (24) отметил верно.Одним запросом все ссылки да еще и на разные типы)
   Maniac
 
134 - 21.07.21 - 20:58
Кстати спасибо за подскахку о том, что в 1С появились методы сохранения книги в Эксель из 1С.

Я допилил своб разработку, теперь у меня мультипрайс умеет создавать в 1С многолистовой прайс-лист на форме и сохранять его в эксель.

https://subsystems.ru/news/mnogostranichnyy-prays-list-iz-1s-sozdanie/
  1  2

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.