|
Ошибка открытия Excel на сервере | ☑ | ||
---|---|---|---|---|
0
JIeoIIoJIbD
09.07.14
✎
09:47
|
Добрый день коллеги, столкнулся с неведомой до этого дня ошибкой вида :
"{Обработка.ЗагрузкаИзExcel.Форма.Форма.Форма(68)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Не удалось найти 'C:\Users\steplitskiy\Desktop\Таблица.xls'. Проверьте задание имени и местоположения файла. При попытке открытия файла с использованием списка недавно использованных файлов из меню ''Файл'' убедитесь, что файл не был переименован, перемещен или удален." при этом файл ни где не открыт . Может кто сталкивался с подобной проблемой ? , код : ПодключитьРасширениеРаботыСФайлами(); Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.ПолноеИмяФайла = ""; Фильтр = "Таблица(*.xls)|*.xls"; ДиалогОткрытияФайла.Фильтр = Фильтр; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; ДиалогОткрытияФайла.Заголовок = "Выберите файл c описью вложения"; Если ДиалогОткрытияФайла.Выбрать() Тогда ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла; Объект.ИмяФайла = ИмяФайла; Иначе Возврат; КонецЕсли; Если НЕ ЗначениеЗаполнено(Объект.ИмяФайла) Тогда Предупреждение("Необходимо выбрать файл", ,"Achtung!"); Возврат; КонецЕсли; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(Объект.ИмяФайла); //Состояние("Обработка файла Microsoft Excel..."); Исключение Сообщить(ОписаниеОшибки()); |
|||
1
JIeoIIoJIbD
09.07.14
✎
09:49
|
1С:Предприятие 8.3 (8.3.3.721)
Управление производственным предприятием, редакция 1.3 (1.3.48.2) |
|||
2
Maxus43
09.07.14
✎
09:49
|
файл то там точно есть?)
|
|||
3
Maxus43
09.07.14
✎
09:50
|
с раб стола - вобще не по феншую. Клади файлы на диск C(D) лучше, причем не в корень, а в папку
|
|||
4
JIeoIIoJIbD
09.07.14
✎
09:52
|
файл есть 100.1% трогал, открывал, проверял , переносил в C:\1С\Таблица.xls увы, но результат не изменился
|
|||
5
Никулин Леонид
09.07.14
✎
09:54
|
Попробуй файлик открыть интерактивно. Без использования 1Цэ. Твой сервер вообще умеет работать с xls?
|
|||
6
JIeoIIoJIbD
09.07.14
✎
09:55
|
на сервере права Администратора, для DCOM соответственно тоже, при всех этих страшных ругательных словобуквах на файловой версии все работает.
|
|||
7
Maxus43
09.07.14
✎
09:58
|
файл открывается в контексте сервера или клиента?
|
|||
8
JIeoIIoJIbD
09.07.14
✎
09:59
|
&НаСервере
|
|||
9
Maxus43
09.07.14
✎
10:01
|
(8) т.е. вопросы ещё остались?
|
|||
10
Maxus43
09.07.14
✎
10:02
|
Рабочий стол - он твой, а не сервера. Запихни гвоорю на диск в папку, на рабочие столы юзеров защита идёт
|
|||
11
JIeoIIoJIbD
09.07.14
✎
10:03
|
в контексте сервера пытаюсь открыть файл , ошибка все еще висит
|
|||
12
hhhh
09.07.14
✎
10:03
|
(8) открой под пользователем USR1C82
|
|||
13
PaulBC
09.07.14
✎
10:03
|
Обсуждалось не раз уже.
Создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы) |
|||
14
hhhh
09.07.14
✎
10:04
|
(11) файл точно на сервере или на локальном компе?
|
|||
15
JIeoIIoJIbD
09.07.14
✎
10:04
|
(4) "переносил в C:\1С\Таблица.xls увы, но результат не изменился"
такие дела |
|||
16
ДенисЧ
09.07.14
✎
10:04
|
||||
17
JIeoIIoJIbD
09.07.14
✎
10:04
|
файл точно на сервере, подключаюсь по RDP
|
|||
18
Maxus43
09.07.14
✎
10:05
|
(15) проверь права на эту папку юзера под которым сервер 1с работает. явно укажи ему разрешение
|
|||
19
f_vadim
09.07.14
✎
10:05
|
прав нету
|
|||
20
JIeoIIoJIbD
09.07.14
✎
10:06
|
(13) создать папку ....
|
|||
21
Никулин Леонид
09.07.14
✎
10:06
|
(16) это мой дедушка...
|
|||
22
hhhh
09.07.14
✎
10:07
|
(17) но точно точно есть все права на папку C:\Users\steplitskiy\Desktop\ пользователю USR1C82 ??
|
|||
23
Escander
09.07.14
✎
10:12
|
Из консоли сервера этот файл открывается?
|
|||
24
Escander
09.07.14
✎
10:13
|
(22) папка правильная указана в (13)
|
|||
25
JIeoIIoJIbD
09.07.14
✎
11:18
|
Спасибо всем за участи , решение проблемы в посте № (13)
Создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы) и через ADO // <Описание функции> // // Параметры // <Параметр1> - <Тип.Вид> - <описание параметра> // <продолжение описания параметра> // <Параметр2> - <Тип.Вид> - <описание параметра> // <продолжение описания параметра> // // Возвращаемое значение: // <Тип.Вид> - <описание возвращаемого значения> // Функция Подключить_ADO(ИмяФайла,HDR = Ложь) Экспорт Connection = Новый COMОбъект("ADODB.Connection"); HDR = ?(HDR, "YES","NO"); Попытка //Excel 2000 - 2003 Connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ИмяФайла + "; Extended Properties=""Excel 8.0; HDR="+HDR+"; IMEX=1"";"; Connection.Open(); Исключение Попытка //Excel 2007 Connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ИмяФайла + ";Extended Properties=""Excel 12.0; HDR="+HDR+";"";Persist Security Info=False;"; Connection.Open(); Исключение Сообщить(ОписаниеОшибки()); Connection = Неопределено; КонецПопытки; КонецПопытки; Возврат Connection; КонецФункции // Читает данные с листа Excel в таблицу значений // // ДиалогВыбораНомераЛиста - в случает нескольких листов предлагать пользователю интерактивно выбрать // номер листа, НомерЛиста не учитывается // Функция АК_ПолучитьДанныеExcel(ИмяФайла, НомерЛиста = 1, ДиалогВыбораНомераЛиста = Ложь, HDR=Ложь) Экспорт //НомерЛиста = 1; //ДиалогВыбораНомераЛиста = Ложь; //HDR=Ложь; //Connection = тзИсходныеДанные = Новый ТаблицаЗначений; Если Не ЗначениеЗаполнено(ИмяФайла) Тогда Возврат тзИсходныеДанные; КонецЕсли; Подключить_ADO(ИмяФайла,HDR); Попытка Если Connection = Неопределено Тогда Возврат тзИсходныеДанные; КонецЕсли; ИмяЛиста = УстановитьИмяЛиста(НомерЛиста,ДиалогВыбораНомераЛиста); Если ИмяЛиста = Ложь Тогда Возврат тзИсходныеДанные; КонецЕсли; Если Не ЗначениеЗаполнено(ИмяЛиста) Тогда Возврат тзИсходныеДанные; КонецЕсли; RecordSet = Новый COMОбъект("ADODB.Recordset"); ТекстЗапроса = "SELECT * FROM [" + ИмяЛиста + "]"; Попытка RecordSet.Open(ТекстЗапроса, Connection ); Исключение Connection = Неопределено; Возврат тзИсходныеДанные; КонецПопытки; КоличествоКолонок = RecordSet.Fields.Count; Для к =1 По КоличествоКолонок Цикл тзИсходныеДанные.Колонки.Добавить("Колонка" + Строка(к)); КонецЦикла; НумерацияКолонки = 0; ПризнакПервойСтроки = Истина; Пока RecordSet.EOF() = 0 Цикл НовСтрока = тзИсходныеДанные.Добавить(); НумерацияКолонки = 0; Для каждого Позиция Из RecordSet.Fields Цикл НовСтрока[НумерацияКолонки] = Позиция.Value; НумерацияКолонки = НумерацияКолонки + 1; Если ПризнакПервойСтроки Тогда тзИсходныеДанные.Колонки[НумерацияКолонки-1].Заголовок = Позиция.Name; КонецЕсли; КонецЦикла; RecordSet.MoveNext(); ПризнакПервойСтроки = Ложь; КонецЦикла; Исключение #Если Клиент Тогда Сообщить ("Проблемы с ADO: " + ОписаниеОшибки()); #КонецЕсли КонецПопытки; Попытка Connection.Close(); Исключение КонецПопытки; Connection = Неопределено; Возврат тзИсходныеДанные; КонецФункции //По заданному номеру листа возвращает его имя в книге Excel // // ДиалогВыбораНомераЛиста - в случает нескольких листов предлагать пользователю интерактивно выбрать // номер листа, НомерЛиста не учитывается // Функция УстановитьИмяЛиста(Знач НомерЛиста, ДиалогВыбораНомераЛиста = Ложь) Экспорт Если Connection = Неопределено Тогда Возврат ""; КонецЕсли; НовОб = Новый COMОбъект("ADOX.Catalog"); НовОб.ActiveConnection = Connection; КолЛистов = НовОб.Tables.Count; Если КолЛистов = 0 Тогда Возврат ""; ИначеЕсли НомерЛиста > КолЛистов Тогда Возврат ""; КонецЕсли; Если ДиалогВыбораНомераЛиста Тогда Если КолЛистов = 1 Тогда НомерЛиста = 1; Иначе Страницы = Новый СписокЗначений(); Для Каждого Таблица Из НовОб.Tables Цикл Страницы.Добавить(Таблица.Name,Таблица.Name); КонецЦикла; Страница = Страницы.ВыбратьЭлемент("Укажите нужную страницу"); Если Страница = Неопределено Тогда Возврат Ложь; КонецЕсли; Возврат Страница.Значение; КонецЕсли; ИначеЕсли НомерЛиста = 0 Тогда НомерЛиста = 1; Иначе КонецЕсли; Возврат НовОб.Tables(НомерЛиста - 1).Name; КонецФункции // ПолучитьИмяЛиста() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |