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

1. Патриот 457 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. Патриот 457 10.06.15 11:11 Сейчас в теме
(12) Xershi, (8) spezc, ПРОБЛЕМА РЕШЕНА.
Сначала сделал через ADO, потом нашёл ответ на первоначальный вопрос здесь
Обсуждалось не раз уже.
Создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы)

Эксель не предназначен для работы на сервере, ищет папку "Desktop" при её отсутствии падает. У нас даже такая была, поскольку проблема давняя и известная, но по каким-то причинам, сейчас её не было - после создания, действительно, всё заработало.
nuno21; redtram; gglvov; yanus99@mail.ru; 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; +89 Ответить
39. asp-1c 15.11.21 10:49 Сейчас в теме
(14)Совет помог, спасибо! Но - выбор папки не в зависимости от разрядности операционной системы, а от разрядности приложения. ОС - 64 разрядная, но помогло создание папки C:\Windows\System32\config\systemprofile\Desktop
yanus99@mail.ru; user882105; ligan; ilias007; DemonMax45; user1763847; reg200900; dyomenkoalexandr; vitaminich; yurazyuraz; vinni_pooh; user1882613; NikoWarhol; kyrasol; user1261664; KolBbl4; AloneWolf; Патриот; +18 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Xershi 1547 09.06.15 14:19 Сейчас в теме
(1) Патриот, у вас путь указан сетевой. Явно юзер запускающий агентсервера 1с не имеет туда доступа. Поменять юзера или переместить файл на сервер.
7. Патриот 457 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С и его пароль.
Прикрепленные файлы:
laeg; grig_nv; korppinen; unknown181538; isiter_1; Kons_Kur; John_d; user1464234; Tym1980; pashamak; zaa2381; AllexSoft; torr1983; Патриот; +14 Ответить
29. pashamak 331 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. Патриот 457 09.06.15 14:13 Сейчас в теме
Варианты, предлагаемые в тексте ошибки разобраны и не подходят. Т.е. файл существует, не занят другими процессами и другие файлы эксель на этот момент не открыты.
3. spezc 792 09.06.15 14:15 Сейчас в теме
пользователь, под которым работает сервер 1С - не имеет прав доступа
6. Патриот 457 09.06.15 14:20 Сейчас в теме
(3) spezc, было такое предположение, но непонятно каких прав. "ЧтениеТекста" и метод "Прочитать()", выполненные на сервере нормально прочитали файл, лежащий в той же папке на сервере.
4. Патриот 457 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. Патриот 457 09.06.15 14:37 Сейчас в теме
ЛЮДИ ДОБРЫЕ! МОЖЕТ КТО-НИБУДЬ ПОПРОБОВАТЬ ПРОВЕРИТЬ У СЕБЯ ОБРАБОТКУ ИЗ КОММЕНТА (4) (в клиент серверном варианте нажать на две кнопки)
8. spezc 792 09.06.15 14:22 Сейчас в теме
дайте пользователю на время полные права, чтобы исключить эту проблему. если дело в правах - копать дальше.
9. Патриот 457 09.06.15 14:34 Сейчас в теме
(8) spezc, пользователь от имени которого работает сервер находится в группе локальных админов и у него, соответственно полные права на каталог.
12. Xershi 1547 09.06.15 14:54 Сейчас в теме
(9) Патриот, локальный админ имеет доступ в сеть домена?

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

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

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

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

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

Эксель не предназначен для работы на сервере, ищет папку "Desktop" при её отсутствии падает. У нас даже такая была, поскольку проблема давняя и известная, но по каким-то причинам, сейчас её не было - после создания, действительно, всё заработало.
nuno21; redtram; gglvov; yanus99@mail.ru; 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; +89 Ответить
15. Xershi 1547 10.06.15 11:15 Сейчас в теме
(14) Патриот, у вас какой юзер запускает агентсервера 1с?
Если этот юзер не логинился ни разу, то естественно нужно рабочий стол создать.
Значит стандартной памяти "кучи" вам хватило. Эксель не такой прожорливый к окнам оказывается.
23. Boudybuilder 35 11.08.18 23:30 Сейчас в теме
(14) Да, это именно то решение!
24. Патриот 457 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 26 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
yanus99@mail.ru; user882105; ligan; ilias007; DemonMax45; user1763847; reg200900; dyomenkoalexandr; vitaminich; yurazyuraz; vinni_pooh; user1882613; NikoWarhol; kyrasol; user1261664; KolBbl4; AloneWolf; Патриот; +18 Ответить
42. user970589 11 28.01.23 12:16 Сейчас в теме
(14) а если вы в облаке или веб сервер, то не поможет..
43. independ 1544 28.01.23 14:02 Сейчас в теме
(42) можнопроверить наличие этой папки в серверной процедуре и если ее нет, попробовать создать, но вероятно прав на создание не будет у контекста 1С
44. user1863362 28.01.23 14:46 Сейчас в теме
(42)
если вы в облаке или веб сервер
То вам еще придется потребовать, чтобы туда вообще Excel поставили, перед тем, как он работать не будет.
Патриот; +1 Ответить
46. baldorc 4 15.08.24 08:28 Сейчас в теме
(42) моя ситуация. дал на папку десктоп на веб сервере доступ на запись пользователю IUSR, сработало
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 1547 05.02.16 14:42 Сейчас в теме
(17) sumixam, у вас что агент сервера запускает юзер без рабочего стола?
20. fullstack1c 36 27.06.16 14:16 Сейчас в теме
У меня такая ошибка возникала у пользователя у которого установлен был office 2013, но слетела активация. После активации все встало на свои места
messagess; +1 Ответить
25. kild 91 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 11 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
Заработало.
nuno21; Патриот; +2 Ответить
47. redtram 53 29.08.24 23:12 Сейчас в теме
Еще одна рекомендация:

Если возникает ошибка Ошибка при вызове конструктора (COMОбъект): -2147467262(0x80004002): Интерфейс не поддерживается , то нужно сходить в dcomcnfg принудительно вставить туда пользователя сервера 1с с его паролем, при этом если оснастка не дает этого сделать т.к. "Администратор ограничил вход в систему" или что-то в этом роде - нужно идти в gpedit.msc - Конфигурация Компьютера - Конфигурация Windows - Параметры безопасности - Локальные политики - Назначение прав пользователей - Отказать в доступе к этому компьютеру из сети - удалить USR1CV8, прописать его в DCOM и добавить в его в запретную политику обратно. gpupdate /force при этом можно не делать.

Эта ошибка у меня упорно возникает на Новый COMОбъект("Word.Application") при идентичных настройках с Excel на котором указано Удостоверение - Запускающий пользователь, и при этом работает.
48. redtram 53 29.08.24 23:54 Сейчас в теме
(47) Галя, отмена, все опять сломалось.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот