Microsoft office excel невозможно получить свойство open класса workbooks

Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить свойство Open класса Workbooks

При разработке в 1С, при попытке выполнить открытие COM-объекта Microsoft Excel на серверной базе данных 1С появляется ошибка «Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить свойство Open класса Workbooks».

Запуск обработки, вызвавшей данную ошибку, производится на серверной операционной системе Microsoft Windows 2012. Также возможна при запуске на ОС Windows 2008 Server. Права пользователя полные. Причем, запуск на операционной системе не относящейся к семейству серверных происходит без возникновения исключительной ситуации.

Сообщить(«Выгрузка в файл Microsoft Excel…»);

Путь= КаталогВременныхФайлов() + «FILENAME.xls»;

Файл= Новый Файл(Путь);

Если Файл.Существует() = 0 Тогда

ТабДокумент = Новый ТабличныйДокумент;

ТабДокумент.Записать(Путь, ТипФайлаТабличногоДокумента.XLS);

КонецЕсли;

Попытка

ExcelПриложение = Новый COMОбъект(«Excel.Application»);

Исключение

Сообщить(«Ошибка при загрузке Microsoft Excel.» + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);

Возврат;

КонецПопытки;

ExcelФайл = ExcelПриложение.WorkBooks.Open(Путь);

ExcelЛист = ExcelФайл.Worksheets(1);

Возникновение ошибки происходит на предпоследней строке кода.

Решение для устранения исключительной ситуации:

Для нормальной работы MS Office, папка «Desktop» должна находиться в каталоге «systemprofile» системного каталога ОС. Причем, Windows 2003 имеет в своем составе такие папки.

Поэтому необходимо их создать в каталоге «Windows» операционной системы.

— для Windows 2008 Server x64:

C:WindowsSysWOW64configsystemprofileDesktop

— для Windows 2008 Server x86:

C:WindowsSystem32configsystemprofileDesktop

Оцените статью:

Загрузка…

Если Вы заметили ошибку, то выделите ее мышью и нажмите Ctrl+Enter

Победили предыдущую проблему — приложение Excel запускается.
Получили новую ошибку: -2146827284 Невозможно получить свойство Open класса Workbooks.
Возникала на вызове:

EXEC @iRetCode = sp_OAMethod @iXLApp, 'Workbooks.Open', @iDoc OUTPUT, @FileName

Всяческие изменения в вызове процедуры, выделение отдельно Workbooks никак не помогали.
Дело опять же оказалось в правах и в том, что операционка 64-битная:
— нужно проверить, что существует папка C:WindowsSysWOW64configsystemprofileDesktop — если нет, то нужно создать
— и учетной записи, под которой работает служба SQL Server нужно дать полные права на папку C:WindowsSysWOW64configsystemprofile и все ее подпапки.

После этих нехитрых действий всё должно заработать. :-)

Ссылки, посвященные этой теме:
http://forum.foxclub.ru/read.php?29,488069

   PitNN

04.04.14 — 16:59

Добрый день, коллеги.

Решил автоматизировать загрузку данных от клиентов. Многие высылают в экселе, соответственно нужно читать и анализировать её. Чтобы менеджеры не заморачивались с этим, чтение экселя решил вынести в регламентное задание. Но тут возникла проблема с созданием ком-объекта Excel.Application. Почитал статьи, рекомендуют вынести вызов ком-объекта на клиент, но при выполнении регламентного задания нет никакого клиента, все выполняется сервером. Как быть? Посоветуйте

   SUA

1 — 04.04.14 — 17:23

в регламентном без вариантов только сервер

или прайсы в csv перекидывать сначала и затем скармливать как текст если эксель тупить будет

   ДенисЧ

2 — 04.04.14 — 17:32

«Почитал статьи, рекомендуют вынести вызов ком-объекта на клиент»

Выкинь эти статьи.

   х86

3 — 04.04.14 — 17:39

(0)ексель на сервере установлен? )

   PitNN

4 — 04.04.14 — 17:46

(2) Хороший совет, но а делать-то чего? ))

   ДенисЧ

5 — 04.04.14 — 17:47

(4) а в чём конкретно проблема?

   PitNN

6 — 04.04.14 — 17:47

(3) Да, установлен

   lex-kex

7 — 04.04.14 — 17:47

(4) На серваке EXCEL установи

   lex-kex

8 — 04.04.14 — 17:48

(6) Тогда должно все работать

   PitNN

9 — 04.04.14 — 17:49

(5) создание ком объекта вызывает исключение

   PitNN

10 — 04.04.14 — 17:49

Сервер работает как служба. Может в этом проблема?

   lex-kex

11 — 04.04.14 — 17:51

(10) Скинь код как ты его вызываешь?

   mdocs

12 — 04.04.14 — 17:52

может как xml читать.

   PitNN

13 — 04.04.14 — 18:07

(11) Вот код:

    Попытка

        Эксель = Новый COMОбъект(«Excel.Application»);

    Исключение

        СообщениеОбОшибке = НСтр(«ru = ‘Не удалось прочитать Excel. Убедитесь, что на компьютере установлена программа Microsoft Excel. Подробности: ‘»)

                          + КраткоеПредставлениеОшибки(ИнформацияОбОшибке());

        ВызватьИсключение СообщениеОбОшибке;

    КонецПопытки;

    
    //Следующая команда откроет книгу:

    Книга = Эксель.WorkBooks.Open(ИмяФайла); // <— Здесь вылетает исключение

   PitNN

14 — 04.04.14 — 18:07

(12) Покажи пример, пожалуйста

   SUA

15 — 04.04.14 — 18:34

и какое исключение?

может файла нет?

доступа к папке откуда его тянуть?

или дальше гадать?

   beholder

16 — 04.04.14 — 18:39

(13) права на папку? Что за ошибка?

Не рекомендуют на сервере наверное из-за того что по сети файл взад-назад тягать не комильфо.

   Heckfy

17 — 04.04.14 — 18:39

Сдается мне, что нет прав у пользователя, под которым сервер 1С работает….

   beholder

18 — 04.04.14 — 18:40

(14) на инфостарте есть примеры как парсить XSLX но могут возникнуть проблемы если сторонняя прога сохраняет в этот формат.

   PitNN

19 — 05.04.14 — 12:52

(15) Вот такое исключение:

Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить свойство Open класса Workbooks

Файл есть. Он лежит локально на сервере. Доступ к папке есть для всех.

   PitNN

20 — 05.04.14 — 12:59

Тот же самый код, запущенный на клиенте выполняется без проблем.

   Tateossian

21 — 05.04.14 — 12:59

(19) Значение имени файла в студию.

   PitNN

22 — 05.04.14 — 13:03

(21) D:1CInomarka_ElDocNaklInae@autoeuro.ruСФ №00021194 от 21-03-14.XLS

   alexei366

23 — 05.04.14 — 13:07

(22) попробуй путь с именем только из латиницы пока что

   alexei366

24 — 05.04.14 — 13:08

(23) Если не получиться то мож чо ещё расскажу

   alexei366

25 — 05.04.14 — 13:11

(19) И Для интереса, попробуй заместо Open использовать Add

   PitNN

26 — 05.04.14 — 13:21

(23) (25) Ни то, ни другое не помогло

   alexei366

27 — 05.04.14 — 13:28

(26) а просто Add без имени файла, пустой новый док добавить, и если получитьсязаписать его

   PitNN

28 — 05.04.14 — 13:39

(27) Метод Add прошел, но при попытке сохранить документ опять исключение:

Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно Файл не сохранен!

   PitNN

29 — 05.04.14 — 13:40

Не помог и привелигированый режим

   alexei366

30 — 05.04.14 — 13:40

(28) А есть папка C:UsersDefaultDesktop ?

   alexei366

31 — 05.04.14 — 13:41

(30) когда оффис исполняется на сервере от службы, то он вроде использует эту папку для вр файлов

   PitNN

32 — 05.04.14 — 13:41

Скорее всего тут суть в том, что на сервере, на уровне платформы, запрещены файловые операции

   alexei366

33 — 05.04.14 — 13:42

(32) чувак у меня так везде работает, и с вордом и с экселем, попробуй (30)

   Denyk

34 — 05.04.14 — 13:42

(0) ADO не рассматривали?

   alexei366

35 — 05.04.14 — 13:44

(34) Ну если ток для чтения то покатит наверно, я просто для чтения, изменения и записи юзаю, так что мне COM нужен был

   PitNN

36 — 05.04.14 — 13:46

(30) Да, папка такая есть на сервере

   alexei366

37 — 05.04.14 — 13:47

(36) а сервер 1С скольки битный

   PitNN

38 — 05.04.14 — 13:52

(34) Да, пробовал.

    db = Новый COMОбъект(«ADODB.Connection»);

    Rs = Новый COMОбъект(«ADODB.RecordSet»);

    
    Попытка

        db.ConnectionString = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:1CInomarka_ElDocNaklInae@autoeuro.ru0021194.XLS;Extended Properties=»Excel 8.0;HDR=NO; IMEX=1;»;

        db.Open();  <— Исключение

    Исключение

        Сообщить(ОписаниеОшибки());

        Возврат;

    КонецПопытки;

Текст исключения:

Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

   PitNN

39 — 05.04.14 — 13:53

(37) Сервер x64

   alexei366

40 — 05.04.14 — 13:55

(39) ОООООООО, а попробу C:UsersDefaultDesktop64 создать

   alexei366

41 — 05.04.14 — 13:58

   PitNN

42 — 05.04.14 — 14:00

(40) Не помогло

(41) Там и брал строку соединения

   alexei366

43 — 05.04.14 — 14:01

(42) А может C:UsersDefault64Desktop

   alexei366

44 — 05.04.14 — 14:02

(43) Или тогда от кого служба 1С запущена?

   PitNN

45 — 05.04.14 — 14:06

(44) От пользователя домена

   alexei366

46 — 05.04.14 — 14:08

(45) И если зайти от него то все в интерактиве получается?

   alexei366

47 — 05.04.14 — 14:09

(46) я имею ввиду на серваке

   PitNN

48 — 05.04.14 — 14:11

Нет возможности сейчас проверить.

   PitNN

49 — 05.04.14 — 14:12

Если код открытия вызывать на стороне клиента, то все работает.

   etc

50 — 05.04.14 — 14:12

(42) а если так?:

    dbCon = Новый COMОбъект("ADODB.Connection");
    
    Если НРег(Файл.Расширение) = ".xls" Тогда
        dbCon.Provider = "Microsoft.Jet.OLEDB.4.0";
        dbCon.Properties("Data Source").Value = Файл.ПолноеИмя;
        dbCon.Properties("Extended Properties").Value = "Excel 4.0;HDR="+?(ИменаКолонокВПервойСтроке,"Yes","No")+";IMEX=1";
    ИначеЕсли НРег(Файл.Расширение) = ".xlsx" Тогда
        dbCon.Provider = "Microsoft.ACE.OLEDB.12.0";
        dbCon.Properties("Data Source").Value = Файл.ПолноеИмя;
        dbCon.Properties("Extended Properties").Value = "Excel 12.0;HDR="+?(ИменаКолонокВПервойСтроке,"Yes","No")+";IMEX=1";
    ИначеЕсли НРег(Файл.Расширение) = ".csv" Тогда
        dbCon.Provider = "Microsoft.Jet.OLEDB.4.0";
        dbCon.Properties("Data Source").Value = Файл.Путь;
        dbCon.Properties("Extended Properties").Value = "text;HDR="+?(ИменаКолонокВПервойСтроке,"Yes","No")+";FMT=Delimited";
    КонецЕсли;
        
    Попытка 
        dbCon.Open();
    Исключение
        ТекстОшибки = ИнформацияОбОшибке().Описание;
        dbCon = Неопределено;
        ВызватьИсключение("Не удалось открыть файл "+Файл.Имя+" : "+ТекстОшибки);
    КонецПопытки;
   alexei366

51 — 05.04.14 — 14:13

(48) Как так, ты же смотрел наличие папки, создавал новую на серваке, почему проверить не можешь?

   alexei366

52 — 05.04.14 — 14:13

(49) На стороне клиента на сервере?

   alexei366

53 — 05.04.14 — 14:14

(52) Всмсле запущеного экземпляра предпрития на сервере?

   PitNN

54 — 05.04.14 — 14:17

(51) Чтобы проверить, нужно авторизоваться под пользователем от которого запущен сервер 1С. Я не могу под ним авторизоваться в силу отсутствия пароля

(53) Запускаю экземпляр приложения, вызываю внешнюю обработку и там прописываю процедуру открытия с ключом &НаКлиенте

   alexei366

55 — 05.04.14 — 14:23

(54) ООООООООО, я походу тебя обманывал и сам забыл

   alexei366

56 — 05.04.14 — 14:24

(55) Попробуй эти создать))))

C:WindowsSystem32ConfigSystemprofile

C:WindowsSysWOW64ConfigSystemprofile

   alexei366

57 — 05.04.14 — 14:25

(56) Всмысле в этих папках папку Desktop

   alexei366

58 — 05.04.14 — 14:26

(56) И вроде нужно только там какой битности оффис, пофиг на 1С

   PitNN

59 — 05.04.14 — 14:47

(56) Вот ты добрый человек! Гений, по другому и не сказать )))

   alexei366

60 — 05.04.14 — 14:49

(59) Да блин ты меня заставил на сервак зайти и вспомнить чо да как))))

   PitNN

61 — 05.04.14 — 14:54

Единственное что осталось, это команда

    Эксель.Application.Quit();

не завершает процесс. Экселька продолжает висеть в диспетчере задач на сервере. В чем может быть дело, подскажи пожалуйста

   PitNN

62 — 05.04.14 — 14:58

За твои заслуги готов поддержать тебя материально. Переводом либо на телефон

   alexei366

63 — 05.04.14 — 16:00

(61) У тя исключение не выскакиевает при закрытии?

   Torquader

64 — 06.04.14 — 00:30

(61) Так сначала нужно закрыть все документы, так как иначе мы видим вопрос о необходимости что-то сохранить, только, на самом деле, мы его не видим, так как рабочий стол записи SYSTEM невидим, но, если очень хочется, там окно можно найти и даже нажать кнопку «Нет».

   PitNN

65 — 07.04.14 — 09:17

(63) Нет, код исполняется без исключений

   alexei366

66 — 07.04.14 — 09:51

(65) Ну в теории не должно ругаться если ты в доке ничо не менял (типа букву в ячейке добавил).

Ну чтобы на точняк, погугли на msdn там или используешь метод Close(0) у WorkSheet или Эксель.Application.Quit(0) (или просто Эксель.Quit(0)).

Нули как разтаки определяют закрытие документа или приложения без лишних проверок.

Я конеш хз у себя сразу писал с нулями, а вот помню когда один из первых разов таким образом с Word работал, то он у меня с исключением вылетал (я имею ввиду на сервере)

   ProProg

67 — 07.04.14 — 09:54

УУУ. В сказку попал человек.

Обратись ко мне. Есть решение.

Я уже все грабли протоптал с этим делом.

Есть у нас решение. Можешь даже не парится.

У нас компонента чтения эксель, нативная.

Работает во всех режимах серверных на любых осях.

   ProProg

68 — 07.04.14 — 09:55

Гарантируем поддержку.

Да и собственно задачу импорта решена целой подсистемой.

   PitNN

69 — 07.04.14 — 09:57

(66) спасибо, попробую, сейчас пока некогда

   PitNN

70 — 07.04.14 — 09:58

(67) Есть где почитать о решении?

   ProProg

71 — 07.04.14 — 10:02

Лови http://subsystems.ru/catalog/43/595/

Будут вопросы — там есть мой скайп

   PitNN

72 — 07.04.14 — 10:08

(71) хорошо, спасибо

   PitNN

73 — 07.04.14 — 11:04

Сделал вот так и все нормально стало:

    Эксель.DisplayAlerts = 0;

    Эксель.Workbooks.Close();

    Эксель.DisplayAlerts = 1;    

    
    Эксель.Application.Quit();

   Lama12

74 — 07.04.14 — 11:36

(56) Объясните про эти папки. Не понял :)

   alexei366

75 — 07.04.14 — 15:49

(74) Когда приложение оффиса (Word, Exel) запускается от сервиса винды, коем в частности является служба 1С сервера, то для временных файлов используются данные каталоги взавизимости от разрядности оффиса.

   alexei366

76 — 07.04.14 — 15:55

(73) а зачем Эксель.DisplayAlerts = 1?

это свойство вообще задавай после создания кома

  

Torquader

77 — 08.04.14 — 00:44

(76) Если его не поставить, то в следующий раз, когда Excel откроется, сообщения не будут появляться.

I have some PowerShell scripts that invoke SQL commands, take the results and put them into a CSV file, then the CSV file is put into an excel workbook and it’s emailed out to a distribution list. I had no issues running these reports through Windows Scheduled tasks on my older Windows 2008 server running SQL 2008. But I have migrated over to Windows 2016 running SQL 2016. Now when I run this process through Scheduled tasks I get the following error:

Unable to get the Open property of the Workbooks class
At C:PowerShellscrpitsArtiReport3.ps1:607 char:1
+ $workbook = $excel.Workbooks.Open($csvFilePath)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OperationStopped: (:) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

If I run the PowerShell script manually I have no issues and everything runs fine. I’m using the same login to run the scripts manually as I do through scheduled tasks. Here is the script.

$query = "*SQL Query runs here*"

#Edit these peramters for the server this will be running on#
$smtpServer = "*server*";
$smtpFrom = "I3Reports@server.com";
$smtpTo = "*email list here*”
$messageSubject = "I3 Report";

#create anonymus loging for sending e-mail#
$User = "anonymous";
$PWord = ConvertTo-SecureString -String "anonymous" -AsPlainText -Force
$Creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $pword


$date = (Get-Date).AddDays(-1).ToString('yyyy-MM-dd')
$date = $date+"_I3Report.xls";

$csvFilePath = "c:Scriptsqueryresults.csv"
$excelFilePath = "c:scripts$date"


$instanceName = "*server*"
Import-Module "sqlps"
$results = Invoke-Sqlcmd -QueryTimeout 7200 -Query $query -ServerInstance $instanceName

# Output to CSV
$results | export-csv  $csvFilePath -Delimiter "    " -NoTypeInformation
#this line will remove all the quotation marks from the csv file
(Get-Content $csvFilePath) | % {$_ -replace '"', ""} | out-file -FilePath $csvFilePath -Force 

# Convert CSV file to Excel


$excel = New-Object -ComObject excel.application 
$excel.visible = $False 
$excel.displayalerts=$False 
$workbook = $excel.Workbooks.Open($csvFilePath) #<-- Program fails here
$workSheet = $workbook.worksheets.Item(1) 
#$workSheet.cells.item(3,3) = "HOPLA"

#for freezing pane#
$workSheet.application.activewindow.splitcolumn = 0
$workSheet.application.activewindow.splitrow = 1
$workSheet.Range("A2").application.activewindow.freezepanes = $true
$resize = $workSheet.UsedRange 
$resize.EntireColumn.AutoFit() | Out-Null 
$xlExcel8 = 43
$workbook.SaveAs($excelFilePath, $xlExcel8)
$workbook.Close()
$excel.quit() 
$excel = $null

send-mailmessage -from $smtpFrom -to $smtpTo -subject "$messageSubject" -body "Attachment" -Attachments $excelFilePath -smtpServer $smtpServer -Credential $creds;

As mentioned this works when I run it in PowerShell manually, but through scheduled tasks it gets that error and it references the section I noted in the code. I’ve been working on this for days and I can’t seem to figure out what is causing the issue. Any help or suggestions is welcomed. Thanks for taking the time.

Добрый день, коллеги. Решил автоматизировать загрузку данных от клиентов. Многие высылают в экселе, соответственно нужно читать и анализировать её. Чтобы менеджеры не заморачивались с этим, чтение экселя решил вынести в регламентное задание. Но тут возникла проблема с созданием ком-объекта Excel.Application. Почитал статьи, рекомендуют вынести вызов ком-объекта на клиент, но при выполнении регламентного задания нет никакого клиента, все выполняется сервером. Как быть? Посоветуйте

в регламентном без вариантов только сервер или прайсы в csv перекидывать сначала и затем скармливать как текст если эксель тупить будет

«Почитал статьи, рекомендуют вынести вызов ком-объекта на клиент» Выкинь эти статьи.

ексель на сервере установлен? )

Хороший совет, но а делать-то чего? ))

а в чём конкретно проблема?

На серваке EXCEL установи

Тогда должно все работать

создание ком объекта вызывает исключение

Сервер работает как служба. Может в этом проблема?

Скинь код как ты его вызываешь?

Вот код:     Исключение         СообщениеОбОшибке = НСтр(«ru = ‘Не удалось прочитать Excel. Убедитесь, что на компьютере установлена программа Microsoft Excel. Подробности: ‘»)

Покажи пример, пожалуйста

и какое исключение? может файла нет? доступа к папке откуда его тянуть? или дальше гадать?

права на папку? Что за ошибка? Не рекомендуют на сервере наверное из-за того что по сети файл взад-назад тягать не комильфо.

Сдается мне, что нет прав у пользователя, под которым сервер 1С работает….

на инфостарте есть примеры как парсить XSLX но могут возникнуть проблемы если сторонняя прога сохраняет в этот формат.

Вот такое исключение: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить свойство Open класса Workbooks Файл есть. Он лежит локально на сервере. Доступ к папке есть для всех.

Тот же самый код, запущенный на клиенте выполняется без проблем.

Значение имени файла в студию.

D:1CInomarka_ElDocNaklInae@autoeuro.ruСФ №00021194 от 21-03-14.XLS

попробуй путь с именем только из латиницы пока что

Если не получиться то мож чо ещё расскажу

И Для интереса, попробуй заместо Open использовать Add

Ни то, ни другое не помогло

а просто Add без имени файла, пустой новый док добавить, и если получитьсязаписать его

Метод Add прошел, но при попытке сохранить документ опять исключение: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно Файл не сохранен!

Не помог и привелигированый режим

А есть папка C:UsersDefaultDesktop ?

когда оффис исполняется на сервере от службы, то он вроде использует эту папку для вр файлов

Скорее всего тут суть в том, что на сервере, на уровне платформы, запрещены файловые операции

чувак у меня так везде работает, и с вордом и с экселем, попробуй

Ну если ток для чтения то покатит наверно, я просто для чтения, изменения и записи юзаю, так что мне COM нужен был

Да, папка такая есть на сервере

а сервер 1С скольки битный

Да, пробовал. Текст исключения: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

ОООООООО, а попробу C:UsersDefaultDesktop64 создать

Не помогло Там и брал строку соединения

А может C:UsersDefault64Desktop

Или тогда от кого служба 1С запущена?

И если зайти от него то все в интерактиве получается?

Нет возможности сейчас проверить.

Если код открытия вызывать на стороне клиента, то все работает.

Как так, ты же смотрел наличие папки, создавал новую на серваке, почему проверить не можешь?

На стороне клиента на сервере?

Всмсле запущеного экземпляра предпрития на сервере?

Чтобы проверить, нужно авторизоваться под пользователем от которого запущен сервер 1С. Я не могу под ним авторизоваться в силу отсутствия пароля Запускаю экземпляр приложения, вызываю внешнюю обработку и там прописываю процедуру открытия с ключом &НаКлиенте

ООООООООО, я походу тебя обманывал и сам забыл

Попробуй эти создать)))) C:WindowsSystem32ConfigSystemprofile C:WindowsSysWOW64ConfigSystemprofile

Всмысле в этих папках папку Desktop

И вроде нужно только там какой битности оффис, пофиг на 1С

Вот ты добрый человек! Гений, по другому и не сказать )))

Да блин ты меня заставил на сервак зайти и вспомнить чо да как))))

Единственное что осталось, это команда не завершает процесс. Экселька продолжает висеть в диспетчере задач на сервере. В чем может быть дело, подскажи пожалуйста

За твои заслуги готов поддержать тебя материально. Переводом либо на телефон

У тя исключение не выскакиевает при закрытии?

Так сначала нужно закрыть все документы, так как иначе мы видим вопрос о необходимости что-то сохранить, только, на самом деле, мы его не видим, так как рабочий стол записи SYSTEM невидим, но, если очень хочется, там окно можно найти и даже нажать кнопку «Нет».

Нет, код исполняется без исключений

Ну в теории не должно ругаться если ты в доке ничо не менял (типа букву в ячейке добавил). Ну чтобы на точняк, погугли на msdn там или используешь метод Close у WorkSheet или Эксель.Application.Quit (или просто Эксель.Quit). Нули как разтаки определяют закрытие документа или приложения без лишних проверок. Я конеш хз у себя сразу писал с нулями, а вот помню когда один из первых разов таким образом с Word работал, то он у меня с исключением вылетал (я имею ввиду на сервере)

УУУ. В сказку попал человек. Обратись ко мне. Есть решение. Я уже все грабли протоптал с этим делом. Есть у нас решение. Можешь даже не парится. У нас компонента чтения эксель, нативная. Работает во всех режимах серверных на любых осях.

Гарантируем поддержку. Да и собственно задачу импорта решена целой подсистемой.

спасибо, попробую, сейчас пока некогда

Есть где почитать о решении?

Лови Будут вопросы — там есть мой скайп

Сделал вот так и все нормально стало:

Объясните про эти папки. Не понял :)

Когда приложение оффиса (Word, Exel) запускается от сервиса винды, коем в частности является служба 1С сервера, то для временных файлов используются данные каталоги взавизимости от разрядности оффиса.

а зачем Эксель.DisplayAlerts = 1? это свойство вообще задавай после создания кома

Если его не поставить, то в следующий раз, когда Excel откроется, сообщения не будут появляться.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Microsoft office excel навыки
  • Microsoft office excel купить
  • Microsoft office excel код активации
  • Microsoft office excel как с ним работать
  • Microsoft office excel история