![]() |
![]() |
|
Поможите! Произошла исключительная ситуация (Microsoft Office Excel) | ☑ | ||
---|---|---|---|---|
0
Алгоритм
11.12.10
✎
23:15
|
Вот код:
&НаСервере Процедура ОткрытьФайлЭксель() ИмяФайла = "D:\backup\Обмен\1.xls"; Эксель= Новый COMОбъект("Excel.Application"); Книга= Эксель.Workbooks.Open(ИмяФайла); КонецПроцедуры Вот ошибка: {Форма.Форма.Форма(6)}: Ошибка при вызове метода контекста (Open) Книга= Эксель.Workbooks.Open(ИмяФайла); по причине: Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу 'D:\backup\Обмен\1.xls'. Это может быть вызвано одной из следующих причин. • Имени файла или пути не существует. • Файл используется другой программой. • Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги. Если выполниять &НаКлиенте то все хорошо, если &НаСервере то ошибка. Клиент и служба сервера запущены под одним пользователем. |
|||
1
Topol-M
11.12.10
✎
23:16
|
А вы файлик на сервер на D:\backup\Обмен\ перенесите
|
|||
2
Алгоритм
11.12.10
✎
23:18
|
(1) Не все так просто, я на серваке выполняю код
|
|||
3
Topol-M
11.12.10
✎
23:19
|
Ну тогда вчитайтесь в сообщение об ошибке
|
|||
4
Алгоритм
11.12.10
✎
23:19
|
Клиент и сервер - это один и тот же компьютер
|
|||
5
Алгоритм
11.12.10
✎
23:20
|
(3) Права проверил, все в порядке, сеанс и служба запущена под одним юзером
|
|||
6
Алгоритм
11.12.10
✎
23:21
|
Возможно 8.2 не позволяет вообще такой код выполнять на стороне сервера?
|
|||
7
Алгоритм
11.12.10
✎
23:23
|
Кому не влом, запустите у себя этот код, попробуйте открыть любой экселевский файл, только не на клиент-серверной базе
|
|||
8
smaharbA
11.12.10
✎
23:26
|
на шары забей
|
|||
9
Topol-M
11.12.10
✎
23:26
|
Код рабочий сейчас проверил.
|
|||
10
Алгоритм
11.12.10
✎
23:31
|
(8) На шару положил файл, пофигу та же ошибка
Блин мозг сломал уже. |
|||
11
smaharbA
11.12.10
✎
23:32
|
(10) о том, что если д: это шара, работать не будет
(а так я в восьмерке как кот в помидорах) |
|||
12
Алгоритм
11.12.10
✎
23:50
|
Сделал вот так:
&НаСервере Процедура ОткрытьФайлЭксель() ИмяФайла = "\\SERVER-1C\Public\Documents\1.xls"; Эксель= Новый COMОбъект("Excel.Application"); Книга= Эксель.Workbooks.Open(ИмяФайла); КонецПроцедуры Один черт, та же ошибка |
|||
13
Fragster
гуру
12.12.10
✎
00:01
|
у пользователя usrv1srv (или как там его) нет прав на доступ к папке
|
|||
14
Topol-M
12.12.10
✎
00:02
|
Может он у тебя уже открыт тока окна не видно? в процессах эксель не висит?
|
|||
15
Fragster
гуру
12.12.10
✎
00:02
|
короче у того, под которым сервант 1с крутится
|
|||
16
smaharbA
12.12.10
✎
00:11
|
(12) еще раз, если это шара, под любым соусом работать не будет
|
|||
17
Алгоритм
12.12.10
✎
00:32
|
(16) Та хоть шара хоть не шара не работает
|
|||
18
Алгоритм
12.12.10
✎
00:40
|
Думаю не в правах на файл дело, так как отрабатывает вот этот код, который копирует файл в другое место:
&НаСервере Процедура ОткрытьФайлЭксель() ИмяФайлаИзХранилища= "\\SERVER-1C\Public\Documents\1.xls"; ИмяФайла = "D:\1.xls"; КопироватьФайл(ИмяФайлаИзХранилища,ИмяФайла); //а потом делаю вот так и получаю ошибку ту же: Эксель= Новый COMОбъект("Excel.Application"); Книга= Эксель.Workbooks.Open(ИмяФайла); КонецПроцедуры |
|||
19
Алгоритм
12.12.10
✎
00:50
|
Файлик копируется нормально в D:\1.xls, значит права есть на файл
|
|||
20
Torquader
12.12.10
✎
00:59
|
А кто сказал, что пользователь "сервер1С" может вообще открывать приложение Excel ?
Он вообще в какой группе пользователей живёт ? (У меня такая же проблема была, когда я 1С7.7 из сервиса запускал - она работала, а вот OLE у неё не работало - есть подозрение, что под "органиченным" рабочим столом сервисного процесса не создаётся полноправная подсистема запуска OLE) На другой машине - была фигня в том, что DCOM-сервис не мог создать приложение, тогда перед строчкой создания COM-объекта пришлось вставлять строку запуска OLE-сервера в вашем случае надо ЗапуститьПриложение("Excel.exe -embedded") и потом создавать объект. |
|||
21
Алгоритм
12.12.10
✎
01:11
|
В 8.2 на сервере не запускается код:
ЗапуститьПриложение("Excel.exe -embedded") Да, вот засада, пользователь под которым запущена служба 1С это User, я вот сейчас под этим User и сеанс запустил, та же хня |
|||
22
Topol-M
12.12.10
✎
01:16
|
ЗапуститьПриложение()
на сервере не доступно |
|||
23
IKSparrow
12.12.10
✎
01:53
|
А на сервере стоит Excel? :)
|
|||
24
Алгоритм
12.12.10
✎
02:00
|
(23) Обязательно, на сервере и 1С запускаю
|
|||
25
Алгоритм
12.12.10
✎
10:31
|
проблема не решилась
|
|||
26
Torquader
12.12.10
✎
12:23
|
(21) А попробуй под этим "пользователем" запустить Excel, а потом написать на VBS запуск Excel через создание объекта и добиться, чтобы это работало и открывало Excel - только после успеха на таком этапе можно переходить к "насилию" над 1С.
|
|||
27
Алгоритм
12.12.10
✎
13:34
|
Еле отрыл решение, ларчик оказывается просто открывался!
Создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы) |
|||
28
Torquader
12.12.10
✎
13:53
|
(27) Если так, то проще было правильно директорию TEMP выбрать.
Таки у вас сервер 1С под системной учётной записью работает - по идее там должен быть свой пользователь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |