Имя: Пароль:
1C
 
8.2 - как работать с Екселем в тонком клиенте?
0 RomaH
 
naïve
01.07.10
12:17
Как схема должна строится
где COM объект создаваться должен? на клиенте или на сервере?
1 RomaH
 
naïve
01.07.10
12:21
Глобальный контекст (Global context)
ПолучитьCOMОбъект (GetCOMObject)
Синтаксис:

ПолучитьCOMОбъект(<ИмяФайла>, <ИмяКлассаCOM>)

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

т.е. можно работать как на клиенте (на клиентской машине)
так и на сервере (на машине где работает сервер? - я правильно понимаю)

т.е. либо загружаем обработкой файла клиента, либо передаем файл на сервер (через временное хранилище?)
там его пишем на диск во временный файл - и работаем

так?
2 RomaH
 
naïve
01.07.10
13:42
ВыбранныйФайл = Новый Файл(Объект.ИмяФайла);
   ВыбранныйФайл.Расширение;
   
   АдресФайла = "";
   
   ПоместитьФайл(АдресФайла,Объект.ИмяФайла,,Ложь,);
   
   ЗагрузитьФайлНаСервере(АдресФайла,ВыбранныйФайл.Расширение);



&НаСервереБезКонтекста
Процедура ЗагрузитьФайлНаСервере(АдресФайла, РасширениеФайла)
   
   ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);//ВыбранныйФайл = ПолучитьФайл(АдресФайла);
   //Двоичные данные
   //Надо их теперь сохранить во временный каталог, и далее работать как раньше
   
   ПутьКФайлу = ПолучитьИмяВременногоФайла(РасширениеФайла);
   ДвоичныеДанные.Записать(ПутьКФайлу);
   
   Попытка
       Док = ПолучитьCOMОбъект(ПутьКФайлу);//,"Excel.Application");
   

и на последней строке завис

что не так?

сейчас клиент и сервер на одной машине
права какие нужны пользователю под которым сервер работает что бы файл открыть?
3 RomaH
 
naïve
01.07.10
13:47
при этом процесс под пользователем USR82 висит
4 RomaH
 
naïve
01.07.10
13:53
зашел под пользователем usr82 - запустил ексель -
спросили меня имя/фамилию

записал - закрыл, вышел

код опять подвис на ПолучитьСОМОбъект()
5 RomaH
 
naïve
01.07.10
13:56
файл созданный во временном каталоге - интерактивно открывается


что не так?
6 RomaH
 
naïve
01.07.10
14:03
Ексель = Новый COMОбъект("Excel.Application");

ком объект - нормально создает
7 RomaH
 
naïve
01.07.10
14:10
Док = Ексель.Application.Workbooks.Open(ПутьКФайлу);
он же:

Ексель.Application.Workbooks.Open("C:\Users\USR1CV82.DKB\AppData\Local\Temp\v8_DA72_285.xlsx")    {(1)}: Ошибка при вызове метода контекста (Open)    

почему?

интерактивно этот файл открывается под этим юзером
8 RomaH
 
naïve
01.07.10
14:19
да, ОС - Win server 2008
9 lxs
 
01.07.10
14:20
1С научилась работать с седьмым офисом?
10 RomaH
 
naïve
01.07.10
14:20
(9) - на клиенте все работает
пытаюсь вот теперь все это на сервер перенести
11 RomaH
 
naïve
01.07.10
15:32
up
12 zladenuw
 
01.07.10
16:24
то все работает ?
13 RomaH
 
naïve
02.07.10
11:12
(12) что "то"?