|
Управляемый работа с excel на веб-клиенте | ☑ | ||
---|---|---|---|---|
0
Шахтер_с
24.04.20
✎
11:38
|
Есть такой вопрос. Необходимо создать многостраничный файл excel.
Ньюанс, что это необходимо на вебклиенте. Насколько это реализуемо? В толстом клиенте без вопросов все работает. Алгоритм таков: -делаю несколько файлов в excel; -потом их читаю и добавляю в один; На вебклиенте проблемы такие: -1.Всплывающие окна при первом проходе сохранения файлов. ПолучитьФайл(АдресХранилища, ИмяФайла, Истина); -2.Этап Как это можно сделать навебклиенте. Рабочий код толстого клиента Попытка ДокЭксель = Новый COMОбъект("Excel.Application"); ДокЭксель.DisplayAlerts=Ложь; ДокЭксель.visible = Ложь; ОбщаяКнига= ДокЭксель.WorkBooks.Add(); Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат ; КонецПопытки; УдалитьФайлы(Отчет.КаталогСохранения+"\statistics.xls"); Попытка ОбщаяКнига.SaveAs(КаталогВременныхФайлов()+"statistics.xls"); Исключение Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); КонецПопытки; ОбщаяКнига.close(); ОбщаяКнига2=ДокЭксель.WorkBooks.Open(КаталогВременныхФайлов()+"statistics.xls"); Первый = истина; ПрошлыйЛист = Неопределено; МассивПутейФайловXLS = НайтиФайлы(Отчет.РабочийКаталог,"*.xls",Ложь); Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл ИмяЛиста=""; Если ПутьКФайлуXLS.ИмяБезРасширения="Итоговая" Тогда ИмяЛиста = "Total"; Иначе Продолжить; КонецЕсли; Книга = ДокЭксель.WorkBooks.Open(ПутьКФайлуXLS.ПолноеИмя); Книга.Worksheets(1).Cells.Select(); ДокЭксель.Selection.Copy(); Если Первый Тогда НовыйЛист = ОбщаяКнига2.Worksheets(1); Первый = Ложь; Иначе НовыйЛист = ОбщаяКнига2.Worksheets.Add(,ПрошлыйЛист); КонецЕсли; НовыйЛист.Paste(); НовыйЛист.Activate(); НовыйЛист.Name=ИмяЛиста; ДокЭксель.Range("A1").Select(); ПрошлыйЛист = НовыйЛист; Книга.Close(); КонецЦикла; ОбщаяКнига2.close(); ДокЭксель.Quit(); ДокЭксель = Неопределено; |
|||
1
Garykom
гуру
24.04.20
✎
11:47
|
(0) 1. На веб-клиенте требуется чтобы стоял плагин в браузере "Расширение для работы с 1С:Предприятием"
2. Нафик это делать на клиенте? На сервере делай. |
|||
2
Шахтер_с
24.04.20
✎
12:16
|
(1) Я в курсе. На сервер все работает.
Плагин при первом запуске у клиента устанавлюваю автоматически. Наборка файлов по пункту 1 сохраняется. Немогу собрать все страницы воедино на вебе) Меня интересует этот гемор можно сделать навебклиенте, или сказать клиенту что это не решаемо? |
|||
3
Cyberhawk
24.04.20
✎
12:17
|
Если веб-клиент ИЕ, то там все еще есть СОМ-объекты )
|
|||
4
Шахтер_с
24.04.20
✎
12:27
|
(3) Та я пробую сейчас на разных браузерах (firefox, ie,chrom, opera).
Наверное переделаю сейчас по другому. Пошла мысль) Сделаю многостраничный таблдок на форме, а там пусть сохраняет и собирает. |
|||
5
Garykom
гуру
24.04.20
✎
12:34
|
(2) Так в чем проблема то сделать на сервере файлик экселя и отправить его на клиента и там сохранить куда нуна?
|
|||
6
Шахтер_с
24.04.20
✎
18:53
|
Сейчас вопрос про comобъект.
Почему наклиенте comобъект отрабатывает, а на вебклиенте выдает ошибку отказано в доступе? Какого ему доступа не хватает? В вебклиенте через сервер обращаюсь к com &НаСервере Функция ПоключитьсяКExcel(ИмяФайла) //ИмяФайла = Полный путь к файлу Excel Соотв = Новый Соответствие; Попытка Листы = Новый Массив; Excel = Новый COMОбъект("Excel.Application");//выбивает с ошибкой :ошибка при вызове конструктора() - отказано в доступе ... Исключение Сообщить("Ошибка создания обьекта Microsoft Excel" + ОписаниеОшибки()); лРезультат = Неопределено; КонецПопытки; Возврат лРезультат; КонецФункции на клиенте без веба все работает ... Попытка ДокЭксель = Новый COMОбъект("Excel.Application"); ДокЭксель.DisplayAlerts=Ложь; ДокЭксель.visible = Ложь; ОбщаяКнига= ДокЭксель.WorkBooks.Add(); Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат ; КонецПопытки; ... |
|||
7
Garykom
гуру
24.04.20
✎
19:10
|
(6) COMОбъект на веб-клиенте? Нюню https://forum.infostart.ru/forum9/topic138606/
|
|||
8
arsik
гуру
24.04.20
✎
19:41
|
(0) Все не читал, но нафига через COMОбъект("Excel.Application"), если штатно все это можно через 1с-ный табличный документ сделать?
|
|||
9
Сияющий в темноте
24.04.20
✎
23:06
|
на Web-клиенте с excel можно подружиться через внешнюю компоненту,ну или через запуск excel из командной строки,по другому никак.
так что делать или на сервере или делать службу,к которой будет сервер обращаться и просить сделать ему документ ecxel. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |