Ошибка открытия файла Эксель на сервере.

1. Патриот 450 09.06.15 14:10 Сейчас в теме
Следующий код работает на клиенте, но не работает на сервере.
	ExcelПриложение = Новый COMОбъект("Excel.Application");
	ExcelПриложение.WorkBooks.Open(ИмяФайла);

Ошибка проявляется только в клиент-серверном варианте базы (в файловом всё норм).
Тестировал на платформах - "8.3.5.1517" и "8.2.19.121".
Заходил на сервер, там запускал базу - ситуация аналогичная - код отрабатывает на клиенте, на сервере падает. Из этого следует, что Эксель на серваке стоит и из 1С нормально создаётся и запускает файл (который в свою очередь существует и никакими процессами не занят).
Текст ошибки:
{Форма.Форма.Форма(30)}: Ошибка при вызове метода контекста (Open)
ExcelПриложение.WorkBooks.Open(ИмяФайла);
по причине:
Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу '\\Sd\test\KPI.xls'. Это может быть вызвано одной из следующих причин.

• Имени файла или пути не существует.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.
elijah.k; user1767032; vakham; dyomenkoalexandr; torr1983; +5 Ответить
По теме из базы знаний
Найденные решения
14. Патриот 450 10.06.15 11:11 Сейчас в теме
(12) Xershi, (8) spezc, ПРОБЛЕМА РЕШЕНА.
Сначала сделал через ADO, потом нашёл ответ на первоначальный вопрос здесь
Обсуждалось не раз уже.
Создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы)

Эксель не предназначен для работы на сервере, ищет папку "Desktop" при её отсутствии падает. У нас даже такая была, поскольку проблема давняя и известная, но по каким-то причинам, сейчас её не было - после создания, действительно, всё заработало.
user882105; skilster; ligan; ilias007; DemonMax45; user1763847; reg200900; dyomenkoalexandr; djan; vitaminich; vinni_pooh; Somebody1; Luniona; user1882613; NikoWarhol; drygina; insurgut; Yan_Malyakov; Barmi; RushanGT; user1619761; kyrasol; user1173221; asp-1c; dage; romanagatiy; Slypower; Jenya78; zba; XGRAF; boba13; alisakish; zeek; max_vorzhev; alenakrr; Nasty_d; EduardSpb; zonov; Roman_Go; shalimski; user1464234; jeff; hair; кариман; Sersh2010; malets; Pavel_Vladivostok; leonidol; torr1983; Scorpion1_77; Antonov.AV; Skin123; Ганс; ivangus; samoylov093; pashamak; sss999; mikl79; max_zhilin; user620387_niols; SkyOl; bendarik; Sиlьver; burstmashine; chuckk; PavelR; lushka; maxil; Borometr; smahuseev; Boudybuilder; pivo_san; корум; Milan-1c; Lazio; MartinE; erina_valentina; fortorgpro; odamcha; Evgl2004; Sangre1999; Leits; Yacutkoa; korzhishe; freeek; +85 Ответить
39. asp-1c 15.11.21 10:49 Сейчас в теме
(14)Совет помог, спасибо! Но - выбор папки не в зависимости от разрядности операционной системы, а от разрядности приложения. ОС - 64 разрядная, но помогло создание папки C:\Windows\System32\config\systemprofile\Desktop
user882105; ligan; ilias007; DemonMax45; user1763847; reg200900; dyomenkoalexandr; vitaminich; yurazyuraz; vinni_pooh; user1882613; NikoWarhol; kyrasol; user1261664; KolBbl4; AloneWolf; Патриот; +17 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. Xershi 1474 09.06.15 14:19 Сейчас в теме
(1) Патриот, у вас путь указан сетевой. Явно юзер запускающий агентсервера 1с не имеет туда доступа. Поменять юзера или переместить файл на сервер.
7. Патриот 450 09.06.15 14:22 Сейчас в теме
(5) Xershi, доступ к пути у 1С-ного юзера есть, а путь я просто не тот выложил, под которым тестил (просто много всяких тестов делал).
21. Boudybuilder 35 11.07.18 09:39 Сейчас в теме
А у меня даже не понятно какая причина:

Excel.Workbooks.Open(Файл) {(1)}: Ошибка при вызове метода контекста (Open)
22. Boudybuilder 35 11.07.18 10:44 Сейчас в теме
А у меня даже не понятно какая причина:

Excel.Workbooks.Open(Файл) {(1)}: Ошибка при вызове метода контекста (Open).

У меня сейчас Агент сервера запускается с Системной учетной записью. Может изменить на свою, как администратора с полными правами?
Прикрепленные файлы:
26. GKG 22 29.08.18 16:56 Сейчас в теме
(1) Нужно либо не использовать Excel (платформа позволяет)

либо

Помогло следующее. В службах компонентов DCOMCNFG: найти Excel Application
1. На вкладке Безопасность добавить права для пользователя от которого запускается Excel
в Разрешения на запуск и активацию и в Разрешения на доступ.
2. На вкладке Удостоверение поставить Текущий пользователь. Или конкретного пользователя под кем запущен сервер 1С и его пароль.
Прикрепленные файлы:
grig_nv; korppinen; unknown181538; isiter_1; Kons_Kur; John_d; user1464234; Tym1980; pashamak; zaa2381; AllexSoft; torr1983; Патриот; +13 Ответить
29. pashamak 268 04.08.20 10:57 Сейчас в теме
30. iCortezik 8 04.08.20 11:43 Сейчас в теме
(26)
Помогло следующее. В службах компонентов DCOMCNFG: найти Excel Application
1. На вкладке Безопасность добавить права для пользователя от которого запускается Excel
в Разрешения на запуск и активацию и в Разрешения на доступ.
2. На вкладке Удостоверение поставить Текущий пользователь. Или конкретного пользователя под кем запущен сервер 1С и его пароль.



У нас вообще нету Microsoft Excel App
Chernika33; +1 Ответить
2. Патриот 450 09.06.15 14:13 Сейчас в теме
Варианты, предлагаемые в тексте ошибки разобраны и не подходят. Т.е. файл существует, не занят другими процессами и другие файлы эксель на этот момент не открыты.
3. spezc 782 09.06.15 14:15 Сейчас в теме
пользователь, под которым работает сервер 1С - не имеет прав доступа
6. Патриот 450 09.06.15 14:20 Сейчас в теме
(3) spezc, было такое предположение, но непонятно каких прав. "ЧтениеТекста" и метод "Прочитать()", выполненные на сервере нормально прочитали файл, лежащий в той же папке на сервере.
4. Патриот 450 09.06.15 14:16 Сейчас в теме
Здесь обработка с формой, на которой выведены две кнопки "ОткрытьНаКлиенте", "ОткрытьНаСервере" и реквизит "ИмяФайла". Код модуля формы ниже:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ИмяФайла = "\\Sd\test\KPI.xls";
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьНаКлиенте(Команда)
	ОткрытьФайлЭксель(ИмяФайла);
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьНаСервере(Команда)
	ОткрытьНаСервере_Сервер();
КонецПроцедуры

&НаСервере
Процедура ОткрытьНаСервере_Сервер()
	////Чтение текста, например, работает
	//ИмяФайла = "\\Sd\test\АПолтава\KPI.txt";
	//ЧтениеТекста = Новый ЧтениеТекста(ИмяФайла);
	//й = ЧтениеТекста.Прочитать();	
	
	ОткрытьФайлЭксель(ИмяФайла);// при попытке выполнения метода "Open" выдаёт ошибку
	//{Форма.Форма.Форма(30)}: Ошибка при вызове метода контекста (Open)
	//	ExcelПриложение.WorkBooks.Open(ИмяФайла);
	//по причине:
	//Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу '\\Sd\test\KPI.xls'. Это может быть вызвано одной из следующих причин.

	//• Имени файла или пути не существует.
	//• Файл используется другой программой.
	//• Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОткрытьФайлЭксель(ИмяФайла)
	ExcelПриложение = Новый COMОбъект("Excel.Application");
	ExcelПриложение.WorkBooks.Open(ИмяФайла);
КонецПроцедуры
 
Показать
10. Патриот 450 09.06.15 14:37 Сейчас в теме
ЛЮДИ ДОБРЫЕ! МОЖЕТ КТО-НИБУДЬ ПОПРОБОВАТЬ ПРОВЕРИТЬ У СЕБЯ ОБРАБОТКУ ИЗ КОММЕНТА (4) (в клиент серверном варианте нажать на две кнопки)
8. spezc 782 09.06.15 14:22 Сейчас в теме
дайте пользователю на время полные права, чтобы исключить эту проблему. если дело в правах - копать дальше.
9. Патриот 450 09.06.15 14:34 Сейчас в теме
(8) spezc, пользователь от имени которого работает сервер находится в группе локальных админов и у него, соответственно полные права на каталог.
12. Xershi 1474 09.06.15 14:54 Сейчас в теме
(9) Патриот, локальный админ имеет доступ в сеть домена?

Положи файл на сервер и напиши результат.

Я когда через ком запускал 1с7, то пришлось увеличить память "кучи", она по умолчанию 768 стояло из 48 мегабайт.

Почитай про "кучу", может это твоя проблема. Ты получается в неинтерактивном режиме запускаешь эксель и он тупо накрывается из-за недостатка памяти.

А зачем эксель на сервере открывать?

Это операция нужна только в интерактивном режиме работы юзеров, но не сервера!
pavlov_a; +1 Ответить
14. Патриот 450 10.06.15 11:11 Сейчас в теме
(12) Xershi, (8) spezc, ПРОБЛЕМА РЕШЕНА.
Сначала сделал через ADO, потом нашёл ответ на первоначальный вопрос здесь
Обсуждалось не раз уже.
Создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы)

Эксель не предназначен для работы на сервере, ищет папку "Desktop" при её отсутствии падает. У нас даже такая была, поскольку проблема давняя и известная, но по каким-то причинам, сейчас её не было - после создания, действительно, всё заработало.
user882105; skilster; ligan; ilias007; DemonMax45; user1763847; reg200900; dyomenkoalexandr; djan; vitaminich; vinni_pooh; Somebody1; Luniona; user1882613; NikoWarhol; drygina; insurgut; Yan_Malyakov; Barmi; RushanGT; user1619761; kyrasol; user1173221; asp-1c; dage; romanagatiy; Slypower; Jenya78; zba; XGRAF; boba13; alisakish; zeek; max_vorzhev; alenakrr; Nasty_d; EduardSpb; zonov; Roman_Go; shalimski; user1464234; jeff; hair; кариман; Sersh2010; malets; Pavel_Vladivostok; leonidol; torr1983; Scorpion1_77; Antonov.AV; Skin123; Ганс; ivangus; samoylov093; pashamak; sss999; mikl79; max_zhilin; user620387_niols; SkyOl; bendarik; Sиlьver; burstmashine; chuckk; PavelR; lushka; maxil; Borometr; smahuseev; Boudybuilder; pivo_san; корум; Milan-1c; Lazio; MartinE; erina_valentina; fortorgpro; odamcha; Evgl2004; Sangre1999; Leits; Yacutkoa; korzhishe; freeek; +85 Ответить
15. Xershi 1474 10.06.15 11:15 Сейчас в теме
(14) Патриот, у вас какой юзер запускает агентсервера 1с?
Если этот юзер не логинился ни разу, то естественно нужно рабочий стол создать.
Значит стандартной памяти "кучи" вам хватило. Эксель не такой прожорливый к окнам оказывается.
23. Boudybuilder 35 11.08.18 23:30 Сейчас в теме
(14) Да, это именно то решение!
24. Патриот 450 13.08.18 13:40 Сейчас в теме
(23) рад, что эта инструкция помогает людям и по сей день)
33. Boudybuilder 35 15.03.21 00:19 Сейчас в теме
(24) Даже по сегодняшний день! Нашел свой комментарий, проблема устранилась. Но не могу даже вспомнить что я эту проблему уже когда то решал, и что она у меня вообще уже была...
Патриот; +1 Ответить
27. Pavel_Vladivostok 58 26.03.20 03:16 Сейчас в теме
(14) Спасибо Патриот, реально выручил этим постом! От себя хочу добавить что папку необходимо создавать в соответствии с версией используемой платформы, например если у вас сервер 1С x64, а клиент x32, то и папка вам понадобится C:\Windows\System32\config\systemprofile\Desktop если же клиент x64 то создавайте C:\Windows\SysWOW64\config\systemprofile\Desktop
DemonMax45; It-developer; Jenya78; EduardSpb; Night_Trap; rusmil; malets; +7 Ответить
28. malets 2 31.03.20 18:09 Сейчас в теме
(27)Спасибо за уточнение, добрый человек!
38. It-developer 24 20.10.21 17:40 Сейчас в теме
(27)
C:\Windows\System32\config\systemprofile\Desktop

Я бы так сказал - создайте Desktop везде, где можно и в C:\Windows\System32\config\systemprofile\Desktop и в C:\Windows\SysWOW64\config\systemprofile\Desktop. У нас все на 64, но пока не создали Desktop в 32 битном - ничего не работало
34. max_vorzhev 16 28.04.21 00:10 Сейчас в теме
(14)
Работает метод!
Советую прислушаться
36. XGRAF 15.07.21 13:26 Сейчас в теме
(14)Спасибо, решение помогло, единственное пришлось создать обе папки да 32 и 64 разрядов
yurazyuraz; It-developer; +2 Ответить
39. asp-1c 15.11.21 10:49 Сейчас в теме
(14)Совет помог, спасибо! Но - выбор папки не в зависимости от разрядности операционной системы, а от разрядности приложения. ОС - 64 разрядная, но помогло создание папки C:\Windows\System32\config\systemprofile\Desktop
user882105; ligan; ilias007; DemonMax45; user1763847; reg200900; dyomenkoalexandr; vitaminich; yurazyuraz; vinni_pooh; user1882613; NikoWarhol; kyrasol; user1261664; KolBbl4; AloneWolf; Патриот; +17 Ответить
42. user970589 10 28.01.23 12:16 Сейчас в теме
(14) а если вы в облаке или веб сервер, то не поможет..
43. independ 1518 28.01.23 14:02 Сейчас в теме
(42) можнопроверить наличие этой папки в серверной процедуре и если ее нет, попробовать создать, но вероятно прав на создание не будет у контекста 1С
44. user1863362 28.01.23 14:46 Сейчас в теме
(42)
если вы в облаке или веб сервер
То вам еще придется потребовать, чтобы туда вообще Excel поставили, перед тем, как он работать не будет.
Патриот; +1 Ответить
45. user1763847 04.09.23 15:32 Сейчас в теме
(14) Мне помогло, спасибо.
11. Alias 176 09.06.15 14:38 Сейчас в теме
От себя ещё добавлю, что открытых процессов Excel на сервере ни одного не запущено, ни под каким пользователем.
Файл, к которому идёт обращение, можно безболезненно переименовать или переместить, что как бы намекает что никакой процесс его не держит.
13. Alias 176 09.06.15 15:11 Сейчас в теме
бог с ней с сетью домена, неудачный пример. На самом деле при работе через локальный путь (каталог временных файлов) та же ошибка.
Недостатка памяти? рабочий процесс занимает 1.2Гб. Файлик -- крошечный на пять строк.
Про открытие файла на сервере -- я всегда был против, но клиента не переубедишь.
17. sumixam 05.02.16 12:14 Сейчас в теме
Создал папки выходит всё равно таже ошибка "Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Система Office обнаружила проблему с этим файлом. Чтобы обеспечить защиту компьютера, этот файл не будет открыт"
19. Xershi 1474 05.02.16 14:42 Сейчас в теме
(17) sumixam, у вас что агент сервера запускает юзер без рабочего стола?
20. fullstack1c 35 27.06.16 14:16 Сейчас в теме
У меня такая ошибка возникала у пользователя у которого установлен был office 2013, но слетела активация. После активации все встало на свои места
messagess; +1 Ответить
25. kild 89 13.08.18 17:36 Сейчас в теме
Обновите платформу и откажитесь от COM для работы с Эксель. Зачем выдумывать себе проблемы и героически их решать?
31. Roman_Go 2 07.12.20 08:11 Сейчас в теме
Вы бы отметили ответ с решением, проблема то до сих пор есть такая. За решение спасибо.

:\Windows\System32\config\systemprofile\Desktop если же клиент x64 то создавайте C:\Windows\SysWOW64\config\systemprofile\Desktop
32. ra9000 8 05.02.21 15:49 Сейчас в теме
Помогло
COMОбъект = Новый COMОбъект("Excel.Application");

COMОбъект.FileValidation = 1;

Workbook = COMОбъект.Workbooks.Open(Объект.ПутьКФайлу, , 1);
35. Михрутка 13.06.21 10:16 Сейчас в теме
Проблема возникла когда слетела активация Office2013. Повторная активация все исправила.
37. nestorpetrovi4 20.09.21 13:46 Сейчас в теме
Спасибо помогло Server 2016 x64
40. tonger 15.09.22 12:13 Сейчас в теме
(26) Помогло, спасибо!!!

Была ошибка: Ошибка открытия листа Microsoft Excel.
{Обработка.ЗагрузкаИзExcel.Форма.Форма.Форма(1962)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Unable to get the Open property of the Workbooks class
41. serge-ce1 26.12.22 12:00 Сейчас в теме
(14)
Спасибо, помогло, создал
C:\Windows\SysWOW64\config\systemprofile\Desktop и C:\Windows\System32\config\systemprofile\Desktop
Заработало.
Патриот; +1 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)