0. Смешной 1С 237 22.03.19 15:58 Сейчас в теме

Загрузка из Excel (без использования com-объектов, без установленного Excel)

Обработка не использует com-объект для чтения из файла, не нужен установленный Excel.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. DJDUH 17 22.03.19 17:26 Сейчас в теме
Ну крутяк конечно же, а теперь попробуй открыть книгу с тремя листами и на каждом скопируй свою таблицу.
rpgshnik; Смешной 1С; +2 Ответить
2. Смешной 1С 237 22.03.19 18:43 Сейчас в теме
(1) Спасибо за замечание. Действительно, работало некорректно, выводило все в одну Таблицу.
Поправил, теперь можно работать как с несколькими листами, так и с одним, обработку и скриншоты обновил.
user1179850; +1 Ответить
3. neuro88 22.03.19 18:46 Сейчас в теме
(1) на каждый лист будет создана новая область. так что использовать можно.
4. ifal 279 22.03.19 19:32 Сейчас в теме
Так это уже как пару лет, если не ошибаюсь.
check2; Serj1C; SerVer1C; akor77; +4 Ответить
5. Смешной 1С 237 22.03.19 19:38 Сейчас в теме
(4) Да, это появилось в платформе 8.3.12.
7. Смешной 1С 237 22.03.19 19:47 Сейчас в теме
(6) Да, с платформы 8.3.10 можно считывать отдельные листы файла EXCEL.
Но многие до сих почему-то через COM читают.
8. ifal 279 22.03.19 19:48 Сейчас в теме
(7) не всегда корректно 1с считывает, особенно если с openoffice сохраняли.
21. starik-2005 1838 25.03.19 09:38 Сейчас в теме
(5) с 8.3.12 можно записывать экс5ль в несколько листов - я об этом писал как-то: https://infostart.ru/public/979007/
9. El_Loco 317 23.03.19 21:17 Сейчас в теме
Существенное неудобство такого метода в том, что он доступен только в толстом клиенте.
10. Смешной 1С 237 24.03.19 07:15 Сейчас в теме
(9) В тонком и веб-клиенте также отлично работает
Прикрепленные файлы:
11. Смешной 1С 237 24.03.19 07:26 Сейчас в теме
(10) Веб клиент
Прикрепленные файлы:
12. El_Loco 317 24.03.19 10:18 Сейчас в теме
(11) Ничего не понимаю.
Может мы о разных вещах говорим?

Открываю СП по методу ТабличныйДокумент.Прочитать() и вижу
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).


Я скачаю Вашу обработку и проверю.
13. El_Loco 317 24.03.19 10:21 Сейчас в теме
(12) Все, увидел. Вы файл на сервере читаете.
14. Смешной 1С 237 24.03.19 12:05 Сейчас в теме
(13) да, это и логично. Такие задачи как раз и должны на сервере выполняться.
15. El_Loco 317 24.03.19 12:21 Сейчас в теме
(14) Чтение файла с клиентской машины? Наоборот, там где можно сделать на клиенте, так и надо делать. А Вам приходится гонять файл с клиента на сервер. На одном компе разницы юзер не ощутит, но концепция работы с УФ подразумевает другой подход как мне кажется.
16. Смешной 1С 237 24.03.19 14:40 Сейчас в теме
(15) Возможно зависит от конкретной задачи. У меня при загрузке из файла чаще встречается задача, когда эти данные нужно обработать и сохранить в базе. И в таком случае данные так или иначе придется нести на сервер. Поэтому я и написал, что логично сразу файл на сервер забрать и там с ним работать и с данными.
18. El_Loco 317 24.03.19 14:48 Сейчас в теме
(16) передача файла на сервер в Вашем случае вынужденная, а не необходимая.
постобработка данных конечно будет на сервере - ежу понятно.
в любом случае, этот вариант имеет место быть. не у всех, к примеру, есть Excel.
17. acanta 48 24.03.19 14:44 Сейчас в теме
А если файл екселе открыт, редактируется одновременно несколькими пользователями запаролен и защищен от редактирования в нескольких местах, тогда как?
19. Смешной 1С 237 24.03.19 14:56 Сейчас в теме
(17) Не приходилось иметь дело с такими условиями, нужно эксперементировать
petrgrebenyk; acanta; +2 Ответить
20. TreeDogNight 15 25.03.19 07:44 Сейчас в теме
В случае открытия файлов размеров более 30мб с использованием этого метода велика вероятность вылета клиента. Я делал одну обработку, основанную на этом методе, и там заметил такое поведение платформы.
22. logarifm 1038 25.03.19 10:26 Сейчас в теме
(20)64 -битными клиентами для больших фалов надо пользоваться!
24. starik-2005 1838 25.03.19 18:31 Сейчас в теме
(22) не надо пользоваться 1С для больших файлов вообще - он для этого не предназначен )))
23. nikita0832 173 25.03.19 16:24 Сейчас в теме
Также в обработке написан разбор считываемых данных и преобразование их в таблицу значений для дальнейшей обработки.

- это же через построитель запроса делается? Там хорошо что таблица сразу типизированная, можно её в запрос. Но сложные 2 и более этажные шапки не читаются. я обходил такой косяк дописывая заголовки на основании заголовков выше и урезая область чтения сверху (реализовано тут). Ну и редактор запроса и кода с сохранением этого в файлы .q1c тоже в наличии. Еще у экселя часто косяк с типами бывает, не всегда точно можно сказать какой тип в колонке прочитается, к счастью в консоли типы колонок на лету меняются. И есть неисправимый косяк с типами дата - когда указано время без даты меньше чем 01:36, при этом тип - дата, даты определяются косячно, поэтому время без даты лучше читать как строку.
25. v25i85 29.03.19 23:31 Сейчас в теме
чёт все забыли, что кроме эксель есть и txt - более компактное решение для переноса данных.
26. starik-2005 1838 30.03.19 23:19 Сейчас в теме
(25)
чёт все забыли, что кроме эксель есть и txt - более компактное решение для переноса данных.
С учетом того, что последний Эксель - это запакованный XML, то что-то как-то утверждение мне, лично, кажется слабоватым. А для компактности вообще есть HTTP-сервисы - там хоть в protobuf можно данные передавать - уж куда компактнее (хотя тоже не молодое решение - еще в паскале были типизированные файлы, куда можно было гнать поток типа RECORD - как раз бинарник с описанными в типе данными).
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Самара
зарплата от 50 000 руб. до 100 000 руб.
По совместительству


Программист 1С
Санкт-Петербург
зарплата от 115 000 руб. до 160 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день