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

1. 344 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'. Это может быть вызвано одной из следующих причин.

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

Эксель не предназначен для работы на сервере, ищет папку "Desktop" при её отсутствии падает. У нас даже такая была, поскольку проблема давняя и известная, но по каким-то причинам, сейчас её не было - после создания, действительно, всё заработало.
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; +69 Ответить
39. asp-1c 15.11.21 10:49 Сейчас в теме
(14)Совет помог, спасибо! Но - выбор папки не в зависимости от разрядности операционной системы, а от разрядности приложения. ОС - 64 разрядная, но помогло создание папки C:\Windows\System32\config\systemprofile\Desktop
kyrasol; user1261664; KolBbl4; AloneWolf; Патриот; +5 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. Xershi 957 09.06.15 14:19 Сейчас в теме
(1) Патриот, у вас путь указан сетевой. Явно юзер запускающий агентсервера 1с не имеет туда доступа. Поменять юзера или переместить файл на сервер.
7. Патриот 344 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 17 29.08.18 16:56 Сейчас в теме
(1) Нужно либо не использовать Excel (платформа позволяет)

либо

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



У нас вообще нету Microsoft Excel App
Chernika33; +1 Ответить
2. Патриот 344 09.06.15 14:13 Сейчас в теме
Варианты, предлагаемые в тексте ошибки разобраны и не подходят. Т.е. файл существует, не занят другими процессами и другие файлы эксель на этот момент не открыты.
3. spezc 744 09.06.15 14:15 Сейчас в теме
пользователь, под которым работает сервер 1С - не имеет прав доступа
6. Патриот 344 09.06.15 14:20 Сейчас в теме
(3) spezc, было такое предположение, но непонятно каких прав. "ЧтениеТекста" и метод "Прочитать()", выполненные на сервере нормально прочитали файл, лежащий в той же папке на сервере.
4. Патриот 344 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. Патриот 344 09.06.15 14:37 Сейчас в теме
ЛЮДИ ДОБРЫЕ! МОЖЕТ КТО-НИБУДЬ ПОПРОБОВАТЬ ПРОВЕРИТЬ У СЕБЯ ОБРАБОТКУ ИЗ КОММЕНТА (4) (в клиент серверном варианте нажать на две кнопки)
8. spezc 744 09.06.15 14:22 Сейчас в теме
дайте пользователю на время полные права, чтобы исключить эту проблему. если дело в правах - копать дальше.
9. Патриот 344 09.06.15 14:34 Сейчас в теме
(8) spezc, пользователь от имени которого работает сервер находится в группе локальных админов и у него, соответственно полные права на каталог.
12. Xershi 957 09.06.15 14:54 Сейчас в теме
(9) Патриот, локальный админ имеет доступ в сеть домена?

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

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

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

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

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

Эксель не предназначен для работы на сервере, ищет папку "Desktop" при её отсутствии падает. У нас даже такая была, поскольку проблема давняя и известная, но по каким-то причинам, сейчас её не было - после создания, действительно, всё заработало.
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; +69 Ответить
15. Xershi 957 10.06.15 11:15 Сейчас в теме
(14) Патриот, у вас какой юзер запускает агентсервера 1с?
Если этот юзер не логинился ни разу, то естественно нужно рабочий стол создать.
Значит стандартной памяти "кучи" вам хватило. Эксель не такой прожорливый к окнам оказывается.
23. Boudybuilder 35 11.08.18 23:30 Сейчас в теме
(14) Да, это именно то решение!
24. Патриот 344 13.08.18 13:40 Сейчас в теме
(23) рад, что эта инструкция помогает людям и по сей день)
33. Boudybuilder 35 15.03.21 00:19 Сейчас в теме
(24) Даже по сегодняшний день! Нашел свой комментарий, проблема устранилась. Но не могу даже вспомнить что я эту проблему уже когда то решал, и что она у меня вообще уже была...
Патриот; +1 Ответить
27. Pavel_Vladivostok 26.03.20 03:16 Сейчас в теме
(14) Спасибо Патриот, реально выручил этим постом! От себя хочу добавить что папку необходимо создавать в соответствии с версией используемой платформы, например если у вас сервер 1С x64, а клиент x32, то и папка вам понадобится C:\Windows\System32\config\systemprofile\Desktop если же клиент x64 то создавайте C:\Windows\SysWOW64\config\systemprofile\Desktop
It-developer; Jenya78; EduardSpb; Night_Trap; rusmil; malets; +6 Ответить
28. malets 2 31.03.20 18:09 Сейчас в теме
(27)Спасибо за уточнение, добрый человек!
38. It-developer 20 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 разрядов
It-developer; +1 Ответить
39. asp-1c 15.11.21 10:49 Сейчас в теме
(14)Совет помог, спасибо! Но - выбор папки не в зависимости от разрядности операционной системы, а от разрядности приложения. ОС - 64 разрядная, но помогло создание папки C:\Windows\System32\config\systemprofile\Desktop
kyrasol; user1261664; KolBbl4; AloneWolf; Патриот; +5 Ответить
11. Alias 170 09.06.15 14:38 Сейчас в теме
От себя ещё добавлю, что открытых процессов Excel на сервере ни одного не запущено, ни под каким пользователем.
Файл, к которому идёт обращение, можно безболезненно переименовать или переместить, что как бы намекает что никакой процесс его не держит.
13. Alias 170 09.06.15 15:11 Сейчас в теме
бог с ней с сетью домена, неудачный пример. На самом деле при работе через локальный путь (каталог временных файлов) та же ошибка.
Недостатка памяти? рабочий процесс занимает 1.2Гб. Файлик -- крошечный на пять строк.
Про открытие файла на сервере -- я всегда был против, но клиента не переубедишь.
17. sumixam 05.02.16 12:14 Сейчас в теме
Создал папки выходит всё равно таже ошибка "Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Система Office обнаружила проблему с этим файлом. Чтобы обеспечить защиту компьютера, этот файл не будет открыт"
19. Xershi 957 05.02.16 14:42 Сейчас в теме
(17) sumixam, у вас что агент сервера запускает юзер без рабочего стола?
20. fullstack1c 27.06.16 14:16 Сейчас в теме
У меня такая ошибка возникала у пользователя у которого установлен был office 2013, но слетела активация. После активации все встало на свои места
messagess; +1 Ответить
25. kild 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 9 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
Оставьте свое сообщение
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

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

Начальник отдела архитектуры
Москва
зарплата от 300 000 руб.
Полный день

Эксперт по технологическим вопросам
Москва
зарплата от 250 000 руб.
Полный день

Ведущий разработчик 1С
Ростов-на-Дону
зарплата от 200 000 руб.
Полный день