Имя: Пароль:
1C
1С v8
excel.application.workbooks.Open() на сервере
0 my_espe
 
23.12.14
13:09
Добрый день!
Прошу помощи. 1С в серверном исполнении не может прочитать excel.
Запускаю под клиентом (на сервере 1С) код работает, на сервере нет.

Что делал:
1. Права на DCOM (раньше при создании ком-объекта ругался)
2. Создал папки Desctop (права выдал)

Есть ещё идеи?
1 Asmody
 
23.12.14
13:12
офис на сервере стоит?
2 dk
 
23.12.14
13:12
путь тоже сетевой указываешь? ))
3 Euguln
 
23.12.14
13:12
(0) Excel то сам на сервере есть?
4 my_espe
 
23.12.14
13:12
Excel - стоит
5 my_espe
 
23.12.14
13:13
Клиент на серверной машине запускаю, всё работает...
6 dk
 
23.12.14
13:17
путь до открываемого файла какой?
7 my_espe
 
23.12.14
13:22
C:\exchange1C\zp\Temp
8 Vladal
 
23.12.14
13:23
(7) Этот диск Цэ наверно на сервере должен быть? И в нем папка обмена. Так?

И еще - сервер 1С в кластере из одной машины или нескольких? Если несколько то на каждой машине создать папку с таким же именем.
9 Vladal
 
23.12.14
13:24
Может ли быть такое, то сервер 1Сна линуксовой машине?
10 dk
 
23.12.14
13:24
у сервера свой диск C:
11 Vladal
 
23.12.14
13:25
(10) Не факт. Он может быть и D: и вообще любой другой буквой в винде.
12 dk
 
23.12.14
13:27
(9) на линухе "C:\" ? )
(11) мимо
13 my_espe
 
23.12.14
13:28
Клиента прямо на сервере открываю, он отрабатывает.
С путями все верно.
Сервер не находится в кластере, работает по Win64.
14 my_espe
 
23.12.14
13:29
Другие файлы читаются (не exсel)
15 my_espe
 
23.12.14
13:29
Более того, происходит копирование файлов (excel) тоже работает.
16 Vladal
 
23.12.14
13:30
(13) То ты открываешь клиента, а "серверная" часть работает на машине, на которой стоит "сервер 1С". Вот на этой машине и надо проверить, существует ли папка c:\exchange...
17 Vladal
 
23.12.14
13:31
18 my_espe
 
23.12.14
13:32
Я клиента открываю на той машине, где стоит сервер 1С.
19 RomaH
 
naïve
23.12.14
13:33
(16) блин, вот почему вы не читаете - автор же пишет - КЛИЕНТ запущен на той же машине что и СЕРВЕР
20 Vladal
 
23.12.14
13:35
(19) Сервер 1С, сервер SQL, сервер терминальный? Какой?
21 dk
 
23.12.14
13:35
значит права на файл
22 my_espe
 
23.12.14
13:37
(17) Спасибо, но читал. До того как создать тему. Продвинулся на одну строчку. С создания Com объекта до открытия.
(21) Права на файл есть, программа сначала копирует файл, потом читает.
23 RomaH
 
naïve
23.12.14
13:38
(20) все в одном - все на одной машине, чего не понятного
и сервер SQL как в таком случае может влиять?
и при чем тут терминальный сервер?
24 RomaH
 
naïve
23.12.14
13:39
(22) код покажи - что значит копирует, а потом читает?
25 my_espe
 
23.12.14
13:41
КопироватьФайл(Файл.ПолноеИмя, Файл.Путь + "temp\" + мИмяКопииФайла);

Период = Дата(Параметры.Год, Параметры.Месяц, 1);
мАС = мзИмпорт.ПолучитьАС();

КОМ = Новый COMОбъект("excel.application");

РК=КОМ.Workbooks.Open(Файл.Путь + "temp\" + ИмяКопииФайла);
26 my_espe
 
23.12.14
13:42
Сейчас падает на 5 строке, раньше на 4.
Стоит Excel 2010 x64 - может другой Excel нужно?
27 zva
 
23.12.14
13:42
(0) Так папку Desctop или Desktop создал?
28 zulu_mix
 
23.12.14
13:43
КопироватьФайл(Файл.ПолноеИмя, Файл.Путь + "temp\" + мИмяКопииФайла);

Период = Дата(Параметры.Год, Параметры.Месяц, 1);
мАС = мзИмпорт.ПолучитьАС();

РК=ПолучитьCOMОбъект(Файл.Путь + "temp\" + ИмяКопииФайла);
29 vicof
 
23.12.14
13:43
мИмяКопииФайла и ИмяКопииФайла чем отличаются?
30 my_espe
 
23.12.14
13:43
C:\Windows\SysWOW64\config\systemprofile\Desktop
31 my_espe
 
23.12.14
13:43
Такую
32 User_Agronom
 
23.12.14
13:44
(0) Какую пишет ошибку?
33 RomaH
 
naïve
23.12.14
13:44
http://bytes.com/topic/c-sharp/answers/819740-c-service-excel-application-workbooks-open-fails-when-called-service

To resolve this issue follow these steps
1. Login to the server as a administrator.
2. Go to "Start" -> "Run" and enter "taskmgr"
3. Go to the process tab in task manager and check "Show Processes from all users"
4. If there are any "Excel.exe" entries on the list, right click on the entry and select "End Process"
5. Close task manager.
6. Go to "Start" -> "Run" and enter "services.msc"
7. Stop the service automating Excel if it is running.
8. Go to "Start" -> "Run" and enter "dcomcnfg"
9. This will bring up the component services window, expand out "Console Root" -> "Computers" -> "DCOM Config"
10. Find "Microsoft Excel Application" in the list of components.
11. Right click on the entry and select "Properties"
12. Go to the "Identity" tab on the properties dialog.
13. Select "The interactive user."
14. Click the "OK" button.
15. Switch to the services console
16. Start the service automating Excel
17. Test you application again.

точно сделал?
34 my_espe
 
23.12.14
13:45
Там:     РК=КОМ.Workbooks.Open(Файл.Путь + "temp\" + мИмяКопииФайла); - когда код копировал букву в сообщении удалил
35 sapphire
 
23.12.14
13:48
(30) почти диагноз
36 my_espe
 
23.12.14
13:50
(33) - Служба automating Excel - не вижу такой...
37 my_espe
 
23.12.14
13:51
(33) COM+ есть - оно?
38 my_espe
 
23.12.14
14:27
По ходу вопрос снят. Установил Excel 2010 x32 - и работает...
39 Vladal
 
23.12.14
15:32
(23) О трехзвенной структуре слышал?
А у меня трехзвенка - сервер SQL, сервер кластеров 1С и сервер терминалов разные машины.
40 Garykom
 
гуру
23.12.14
15:39
(38) сервер 1С x32 ?
41 Vladal
 
23.12.14
15:44
(38) Значит при переустановке заново прописался ком-объект эксель.
42 vde69
 
23.12.14
15:45
нужен файловый доступ к файлам шаблонов и темпов екселя
43 my_espe
 
24.12.14
06:08
(39) - конечно, но у нас 1С и SQL на одном
44 my_espe
 
24.12.14
06:09
(42) Не подскажешь где эти каталоги?
45 my_espe
 
24.12.14
06:19
(23) даже если так, то выполнение происходит на сервере 1С
46 my_espe
 
24.12.14
06:28
И всё-таки 32 excel помог...
47 my_espe
 
24.12.14
06:45
(42) - этап создания com объекта был пройден до этого. После установки прав на excel.application
48 my_espe
 
24.12.14
06:45
* (41)