Excel не открывает файлы на сервере

Всем привет! Как-то столкнулся с интересной штукой. Свежеустановленный пакет Microsoft Office ни в какую не хотел открывать файлы, расположенные на сетевых дисках. Программы Word и Excel просто сворачивались без признаков ошибок. Локальные файлы открывались без проблем. Настройки программ были по умолчанию и у других пользователей все работало. Пришлось за разгадкой лезть в Интернет. Решение найдено, но оно достаточно нетривиальное.

Решение

Откройте проводник Windows, затем перейдите в папку C: Users % username% AppData Local Microsoft и переименуйте папку Office во что-нибудь другое (например, OfficeOld).

Вот оно! решение столь сложной проблемы оказалось весьма простым. Просто переименовал папку и все заработало, какие только махинации не перепробовал до этого…

Спасибо за помощь: https://www.cyberforum.ru/ms-word/thread1865215.html

Спасибо всем за участи , решение проблемы в посте № (13)

Создать папку C:WindowsSysWOW64configsystemprofileDesktop или C:WindowsSystem32configsystemprofileDesktop (в зависимости от разрядности вашей системы)

и через 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;

        
КонецФункции // ПолучитьИмяЛиста()

Не открывает Word Excel в сетевой папке window

Сообщение

lazarsr » 26 апр 2022, 16:28

Нашел решение, может кому пригодится.
sudo sed -i ‘s/%U/%F/’ /usr/share/applications/libreoffice-*
Эта команда в свойствах ярлыков (Exec=*** %U) изменяет U на F, после этого файлы по сети будут открываться нормально. Это старый косяк Libre Office, но его упорно не хотят фиксить. Есть еще один, иногда при открытии файлов по сети с последующим редактированием, если нажать кнопку закрыть, то Libre Office может не выдать приглашения сохранить данные и все ваши изменения будут безвозратно потеряны. Кто-то еще мне говорил, что иногда даже при сохранении File->Save может не сохраниться, но сам такого пока не наблюдал. А вообще юзайте хот-кей для сохранения документов: Ctrl+S, это тоже самое что и File->Save.

Возникает проблема при открытии файлов в программах из состава MS Offce при условии, что они открываются с сетевого ресурса. При открытии появляется сообщение «Нельзя открыть <путь и имя файла>» с кнопкой OK.
Интересно ещё и то, что если скопировать файл на локальный диск, то он прекрасно открывается.
Антивирусник был исключён из кандидатов проблемы удалением. Переустановка Office’а не помогает.
Настройки безопасности в Office я проверял. Сеть работает исправно (скопировать же файл можно да и другие приложения открывают файлы по сети без вопросов). Сами файлы не повреждены (они же открываются с HDD).

Хочется понять от чего такая проблема и как её исправить.

P.S.: Переустановку Windows не предлагать


  • Вопрос задан

    более трёх лет назад

  • 10224 просмотра

Пригласить эксперта

Откройте проводник Windows, затем перейдите в папку C: Users % username% AppData Local Microsoft и переименуйте папку Office во что-нибудь другое (например, OfficeOld). Должно помочь

Может, длинное имя пути? Вы из проводника открываете или из файлового менеджера? Попробуйте подмоннтировать диск через net use. Если откроется, значит проблема скорее всего в имени пути, если нет, значит, какие-то настройки безопасности: типо по сети не открывать файлы..


  • Показать ещё
    Загружается…

14 апр. 2023, в 04:52

5000 руб./за проект

14 апр. 2023, в 01:55

1000 руб./в час

13 апр. 2023, в 23:50

3000 руб./за проект

Минуточку внимания

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

1

1C 8.x

Открыть эксель на сервере

17.05.2018, 09:09. Показов 16622. Ответов 40


Студворк — интернет-сервис помощи студентам

Управляемые формы. MS SQL. И база и эксель физически лежат на одной машине. Но эксель упорно не открывается, мол 1с не видит его. COMОбъект на клиенте вроде как нельзя создавать. Как боритесь с этой ситуевиной?

Добавлено через 38 минут
Нашел на инфостарте способ, как сделать через каталог временных файлов, но оказывается на папку пользователя USR1CV82 нужны права админа, и я в растерянности.



0



1824 / 1243 / 444

Регистрация: 16.01.2015

Сообщений: 5,449

17.05.2018, 09:20

2

_ЕГОР_, открываешь готовый файл или эксель для создания файла? Код покажите как делаете



0



_ЕГОР_

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 09:22

 [ТС]

3

Готовый файл

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
&НаКлиенте
Процедура ЭксельНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Фильтр    ="Лист Excel (*.xlsx)|*.xlsx|Лист Excel (*.xls)|*.xls";
    Если Диалог.Выбрать() Тогда
        ИмяФайла = Диалог.ПолноеИмяФайла;
    КонецЕсли;
    
    
    Двоичное = Новый ДвоичныеДанные(ИмяФайла);
    Адрес = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);
 
    ЗагрузкаНаСервере(Адрес)
    
КонецПроцедуры
 
&НаСервере
Процедура ЗагрузкаНаСервере(Адрес)
 
    темп_Путь = КаталогВременныхФайлов()+ "prncss_Megan_"+Формат(ТекущаяДата()-Дата(2012,01,01), "ЧГ=0")+".xls";
    
    темп_файл = ПолучитьИзВременногоХранилища(Адрес);
    темп_файл.Записать(темп_Путь);
        
    //ТабЛицСчетов = ЗагрузитьЭксель(темп_Путь);
    ОбработатьДанные(темп_Путь);
    
    Попытка
        УдалитьФайлы(темп_Путь); 
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
КонецПроцедуры
 
Процедура ОбработатьДанные(ИмяФайла)
 
    //подключаемся к эксел
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(ИмяФайла);
        //Состояние("Обработка файла Microsoft Excel...");
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    Попытка
        //Открываем необходимый лист
        Excel.Sheets(1).Select(); // лист 1, по умолчанию
    Исключение
        //Закрываем Excel
        Excel.ActiveWorkbook.Close();
        Excel = 0;
        Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!");
        ОтменитьТранзакцию();
        Возврат;
    КонецПопытки;
КонецПроцедуры

Код то работает в файловом варианте. а в серверном не дает открыть эксель. Встречались с такой ошибкой?



0



1824 / 1243 / 444

Регистрация: 16.01.2015

Сообщений: 5,449

17.05.2018, 09:30

4

_ЕГОР_, Предположение. Полный путь к файлу как определяется в отладчике? Если что-то типа С: то это локальный путь. Должно быть сетевое имя компа



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 09:34

 [ТС]

5

polax, а это значит папка расшарена должна быть ведь?



0



1824 / 1243 / 444

Регистрация: 16.01.2015

Сообщений: 5,449

17.05.2018, 09:39

6

_ЕГОР_, Конечно доступ должен быть открыт

Добавлено через 3 минуты
Попрбуй вру ную прописать сетевой путь к файлу в процедуре с сом объектом. Увидит?



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 09:48

 [ТС]

7

polax, ох в этом то и будет загвоздка…

Добавлено через 8 минут
polax, если прописываю путь типа \192.168.0.1 то такая же ошибка



0



1824 / 1243 / 444

Регистрация: 16.01.2015

Сообщений: 5,449

17.05.2018, 10:03

8

_ЕГОР_, а если путь указать по имени компа? Типа \Server1 Делал когда-то. БП выкладывает файл на сервер, ЗУП использует этот файл. Брал файл по пути с именем компа



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 10:08

 [ТС]

9

polax, так же…
Может на клиенте как то можно это сделать?



0



82 / 69 / 19

Регистрация: 12.11.2015

Сообщений: 625

17.05.2018, 10:12

10

а почему ЗагрузкаНаСервере(Адрес) не использовать на клиенте? Формировать на сервер временный файл, а на клиенте его записать



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 10:19

 [ТС]

11

slypower, на клиенте тоже пробовал



0



206 / 180 / 31

Регистрация: 24.10.2011

Сообщений: 738

17.05.2018, 11:00

12

Процедура ОбработатьДанные(ИмяФайла) поставь директиву &НаСервере



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 11:07

 [ТС]

13

Volexovich, так же



0



206 / 180 / 31

Регистрация: 24.10.2011

Сообщений: 738

17.05.2018, 11:09

14

Дай текст сообщения



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 11:10

 [ТС]

15

{ВнешняяОбработка.ЗагрузкаЭксель.Форма.Форма.Форма (81)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «\server2obmenplatonovСписок готовый к загрузке Белашов ПОДУШКИ, ОДЕЯЛА (15.05.2018) — в работе.xlsx». Это может быть вызвано одной из следующих причин.

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



0



Volexovich

206 / 180 / 31

Регистрация: 24.10.2011

Сообщений: 738

17.05.2018, 11:25

16

Пошлость какая то:

1C
1
темп_Путь = КаталогВременныхФайлов()+ "prncss_Megan_"+Формат(ТекущаяДата()-Дата(2012,01,01), "ЧГ=0")+".xls";

дает типа C:Users%UserName%AppDataLocalTempprncss_Mega n_дата.xls
А у тебя пытается открыть из \server2obmenplatonovСписок готовый к загрузке Белашов ПОДУШКИ, ОДЕЯЛА (15.05.2018) — в работе.xlsx
Мониторь в какой момент темп_Путь забивается этим тупым путем.



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 11:28

 [ТС]

17

Volexovich, ну это я менял уже вот ошибка с временным каталогам

{ВнешняяОбработка.ЗагрузкаЭксель.Форма.Форма.Форма (81)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «C:Userse.platonovAppDataLocalTemp14prncss_ Megan_201188086.xls». Это может быть вызвано одной из следующих причин.

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



0



206 / 180 / 31

Регистрация: 24.10.2011

Сообщений: 738

17.05.2018, 11:34

18

Так, а у тебя на сервере эксель не повесился? Глянь процессы Экселя

Добавлено через 1 минуту
Возможно он сам себя блокирует, так как ты время у файла убрал (плохая практика).



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.05.2018, 11:37

 [ТС]

19

Volexovich, неа, нет висячих процессов.
Про время немного не понял…



0



206 / 180 / 31

Регистрация: 24.10.2011

Сообщений: 738

17.05.2018, 11:38

20

Цитата
Сообщение от _ЕГОР_
Посмотреть сообщение

Про время немного не понял…

Если Эксель не виснет, значит проблема в другом.
Ставил точку останова перед открытием файла, файл существует?



0



  • Powered By линк скрыт в этом файле : components/com_phocaguestbook/helpers/phocaguestbook.php 176 строчка   function getInfo() {    …

  • Login: admin Password: 1111 Применимо к принтерам: WorkCentre Pro 32 40 Color 35 …

  • Ключи в  реестре для удаления программ:  x64 HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall x32 HK…

  • Все лежит тут: https://yadi.sk/d/AOVDZTXM3YFjDA https://drive.google.com/open?id=1AD2fVr-AdKAv6bUHOyXn2hSVfkwg5pD8 FS-1020-1120-1025-…

  • Win+R > gpedit.msc> «Конфигурация компьютера» > «Административные шаблоны» >»Компоненты  Windows»…

  • c:windowssystem32cacls c:windowsinf*.* /e /c /p administrators:f /d system /r users «creator owner» «power users»…

  • Включаем удаленный доступ на виртуальной машине. Win+R>Sysdm.cpl>Удаленный доступ Ставим чекбокс «Разрешить подключаться то…

  •   Аппарат   пароль для  WEB интерфейса               (логин/пароль)              пароль для входа      в сервисное…

  • Открываем «Устройства и принтеры» под учетной записью администратора и удаляем ненавистный принтер. win+R>services.msc>…

  • 1 способ  Office Customization Tool (OCT): OCT — можно только исползовать для развертывания  Microsoft Office 2016. Шаг1 Запускаем …

  • Remove From My Forums
  • Общие обсуждения

  • Всем доброго дня!

    Есть такая проблема пользователь открывает файл на сетевом ресурсе (SMB Windows 2008 SP2), который судя по всему до этого открывал другой пользователь (или он у другого пользователя открыт сейчас) — а ему пишет сообщение Редактирование filename.xlsx
    запрещено. Пользователь «Имя доменного пользователя который являеться администратором на Windows 2008 SP2» далее предлагает открыть его в режиме только чтения.

    Вопрос почему не указываеться имя пользователя который реально сейчас открыл этот файл — а подставляет имя администратора файл сервера. И как добиться того что файл не остовался занятым после того как его при после того как пользователь принудительно
    убивает процесс Excel или в том случае когда временно отключаеться сеть

    • Изменен тип

      30 июня 2010 г. 10:18

Понравилась статья? Поделить с друзьями:
  • Excel не открывает файлы если уже открыты
  • Excel не открывает файлы если уже открыт
  • Excel не открывает файлы виснет
  • Excel не открывает файлы xlsx файл поврежден
  • Excel не открывает файлы openoffice