Имя: Пароль:
1C
1С v8
v8: Не работает COM-объект Excel на стороне 64х сервера 1С
0 RomaH
 
naïve
12.03.12
12:20
v8: Куда копать - не открывает файл Excel

может кто сталкивался и решил?
в кратце:

   

&НаСервереБезКонтекста
Процедура ЗагрузитьИзФайлаНаСервере(АдресХранилища)
   
   ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
   
   ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
   
   ДвоичныеДанные.Записать(ИмяФайла);
   
   ЗагрузитьФайл(ИмяФайла);
   
   
   УдалитьФайлы(ИмяФайла);
   
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗагрузитьФайл(ИмяФайла)
   
   Ексель = Новый COMОбъект("Excel.Application");
   
   Ексель.Workbooks.Open(ИмяФайла);



говорит что либо файла не существует, либо занят другим приложением, либо имя книги совпадает с открытым в данный момент

уникалльный временный файл, сушествует (я его на точке останова могу открыть интерактивно)
создается сервером и удалается без проблем
1 vmv
 
12.03.12
12:21
перед опен через Файл проверить валидность имени не судьба?
2 vmv
 
12.03.12
12:23
зачем его открывать на точке останова, а потом спрашивать почему блокировка
3 vmv
 
12.03.12
12:25
ну и последний вариант, имя книги созданного в во временных уже существует - убираем за собой да.

больше вариантов нет, только от лукавого
4 RomaH
 
naïve
12.03.12
14:21
(1) перед открытием файл создается - он реально создается в темпах, я его могу открыть
(2) он хоть на точке хоть без точки - результат одиин
(3)  ИмяФайла = ПолучитьИмяВременногоФайла("xlsx"); - знаешь как работает?
5 RomaH
 
naïve
12.03.12
14:24
про валидность имени - делаем по другому - создаю файл сам - интерактивно, сохраняю его в каталог с полным доступом
пытаюсь открыть - результат тот же

аналогично не может сохранить пустой файл

при работе через скрипт - создание книги и сохранение - все ок

да - сервер 64х
6 RomaH
 
naïve
12.03.12
14:31
хм, решили, обращайтесь если что
7 sprog
 
12.03.12
15:15
А решается это так:
на сервере убиваем excel (taskkill /im excel.exe /f)
открываем оснастку "Службы компонентов" (Пуск->Администрирование->Службы компонентов)
в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем "Текущий пользователь", ОК.
Готово