Имя: Пароль:
1C
 
Оптимальный вариант загрузки из эксель
, ,
0 falselight
 
14.05.20
05:41
Что бы загрузка происходила быстро, каким образом следует производить подключение к эксель листу????
Говорят через ком соединение долго. А как тогда?
1 вым
 
14.05.20
05:46
(0) через Маню)
2 Turku
 
14.05.20
05:57
(0) Методом Прочитать() у табличного документа.
3 Irbis
 
14.05.20
05:58
Лучше ёксель в csv слить, текст быстрее читается. Это если файлы нормальные, от 1 млн строк.
4 ДенисЧ
 
14.05.20
06:09
Через ADO ещё не предлагали?
5 falselight
 
14.05.20
06:18
То есть через ком соединение сейчас не рекомендуется категорически делать?
6 falselight
 
14.05.20
06:20
(2) А табличный документ от куда берется?
7 falselight
 
14.05.20
06:21
(3) То есть вы предлагаете загрузку с csv ??? Речь о загрузке с эксель.
Как открываете эксель для обработки?
8 Irbis
 
14.05.20
06:27
(7) Через "ком", но csv практичнее. Особенно когда на обработку приходят файлы в 2-3 млн строк. В качестве извращения через Ёксель можно пересохранить исходник в csv и работать с ним. Но если размер файла в несколько десятков тысяч строк, то можно и не заморачиваться.
9 falselight
 
14.05.20
06:36
(8) А как пересохраняете? И ничего не теряется?

А во сколько документов, такие файлы грузите?
10 falselight
 
14.05.20
06:38
(8) Вроде как через ком соединение все же долго, и 600 достаточно.
Что бы кто то высказал в пользу такой загрузки недовольство. Или я ошибаюсь?
11 falselight
 
14.05.20
06:42
всегда делал через ком соединение. А тут выясняется что это не рекомендуемая методика.
Я вот и думаю как делать правильно, кто скажет?
csv понятно что это быстро, но тут речь о экселе
12 Irbis
 
14.05.20
06:44
(9)SaveAs, там нужный параметр (ЕМНИП второй по счету) указываешь и алга. Из нескольких документов, полученных из разных мест, собираю один отчет. В исходниках по 50-60 столбцов, и до 1,6 млн строк. И в базу для анализа, топам отчет по верхам, низам сверка до строки нужна.
13 Irbis
 
14.05.20
06:47
(11) Почему не рекомендуемая? Просто временные затраты на открытие одного файла не покрывают время его обработки. Тупа файл открывается 20 секунд, а обрабатывается 1 с. А вот когда на входе несколько десятков файлов с 3-4 листами разной структуры по многатысяч строк и из всего этого нужно слепить отчет или выбрать только необходимое... пуркуапа?
14 Галахад
 
гуру
14.05.20
06:58
(6) 1С умеет читать xls документы самостоятельно.
15 falselight
 
14.05.20
09:36
(12) Сохранить как их эксель? что за параметр?????
(14) как?
16 VladZ
 
14.05.20
09:40
17 Irbis
 
14.05.20
09:50
18 fisher
 
14.05.20
10:13
(5) Ну как не рекомендуется? Если можно без него, то лучше конечно же без него. Зачем нужны лишние внешние зависимости?
Через ADO чтение очень быстрое и можно работать с листами по отдельности но есть свои ньюансы.
Когда пробовал штатное чтение когда оно появилось - пришлось отказаться. Какие были бока уже не помню. Скорее всего уже допилили.
Так что если штатное чтение устроит - то какой смысл использовать внешние библиотеки?
Мы пока продолжаем по инерции ADO использовать. Работает - не трожь :)
19 Eiffil123
 
14.05.20
10:44
(18) не рекомендуемая самим майкрософтом.
И действительно, у нас на одном из проектов для целей МСФО данные собирались через формы сбора в формате excel. И периодически ловили крайне трудновыявляемые ошибки, типа пользователь где-то в конце таблицы поставил пробел или фильтр в ненужном месте и после этого файл через com уже не открывается, хотя пользователь с ним может работать.

Табличным документом к сожалению открыть не получалось, т.к. файл был с макросами. А на другом проекте также собирали данные через файлы excel, но там макросов не было, поэтому файл прекрасно читался табличным документом. Получалось и удобнее и быстрее.
20 Eiffil123
 
14.05.20
10:45
(8) Общее количество строк и столбцов на листе    1 048 576 строк и 16 384 столбца. Т.е. 2-3 млн не может быть в файле excel на одном листе )
21 Новиков
 
14.05.20
10:48
(18) посредством каких-то провайдеров/драйверов ADO есть возможность SQL запросы писать на прямую к листу, без предварительной обработки. Когда-то давно, это меня выручало, если нужно было быстро проверить что-то, не запуская саму обработку в 1С. Кстати, тогда же я узнал, что и к файлам *.txt можно запросы писать :)
22 ildary
 
14.05.20
10:56
(21) извините, можно поподробнее рассказать, как к файлам *.txt писать запросы?
23 Lama12
 
14.05.20
11:11
(22) Нужно драйвер ADO поставить.
24 Lama12
 
14.05.20
11:13
(22) В винде поставить в источниках данных драйвер Microsoft Text Driver
25 fisher
 
14.05.20
11:22
(22) К структурированным файлам, ессно. Если драйвер может интерпретировать текстовый файл как таблицу (понимает разделители строк и колонок), то никаких проблем. На java даже есть embedded БД, которая позволяет штатно подключать в качестве таблиц структурированные текстовые файлы.
26 FlashPoint
 
14.05.20
11:23
(0) Через табличный документ читай.
27 такт
 
14.05.20
11:26
28 fisher
 
14.05.20
11:32
Вспомнил, в чем еще удобство чтения через ADO - в автоматической типизации.
29 fisher
 
14.05.20
11:45
(27) Одно время было популярным направлением. А сейчас какие преимущества в сравнении с Прочитать()?
30 Новиков
 
14.05.20
11:50
(22) Указываешь в качестве строки подключения Microsoft Text Driver, либо любой, аналогичный. Но это не все. В каталог с текстовым файлом кладешь файл схемы, который описывает формат разделителя и типы, к которым нужно приводить значения между ними. Дальше подключаешься как хочешь, и пишешь запросы. В 1С создаешь ВИД, описываешь таблицу, согласно структуре файла, подключаешь ВИД - все. Имеешь типизированную таблицу, доступную в контексте 1С - СКД, Консоль - все что хочешь. Это очень удобно, когда нужно быстро какую-то аналитику провести. Аналогично можно подключить и Excel.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший