Ошибка при вызове метода контекста получить com объект

   Солнце

01.08.13 — 09:44

Пишу так

Книга = ПолучитьCOMОбъект(Файл,»Excel.Application»);

Ошибка: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: No such interface supported

А если так

Книга = ПолучитьCOMОбъект(Файл);

Ошибка: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Moniker cannot open file

Код что первый что втрой в файловой базе выполняется на ура…

А в серверной не хочет…

На сервере установлен Excel.

Код выполняется на сервере….

Помогите справиться с проблемкой…

   Лефмихалыч

Модератор

1 — 01.08.13 — 09:46

(0) на сервере нет нужных COM-объектов. Установить MSOffice на сервер.

   Солнце

2 — 01.08.13 — 09:50

MSOffice Установлен…

   Солнце

3 — 01.08.13 — 09:54

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

Книга = Эксель.WorkBooks.Open(Файл);

К Excel подключается а к открытию файла говорит:

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

• Указан несуществующий файл или путь.

• Файл используется другой программой.

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

Хотя доступ есть к нему… Файл нигде не используется и он закрыт!

   Солнце

4 — 01.08.13 — 10:03

Никто не может помочь?…((

   Лефмихалыч

Модератор

5 — 01.08.13 — 10:05

(2) он установлен на клиенте, а не на сервере. Установите офис на сервер

   Лефмихалыч

Модератор

7 — 01.08.13 — 10:06

а, ну или файла нет на сервере.

В переменной «Файл» поди путь относительно твоей клиентской машины?

   Солнце

9 — 01.08.13 — 10:07

(7) сетевой путь такие же ошибки делает

   lEvGl

10 — 01.08.13 — 10:07

а что значит «выполняется на сервере» — регламентное задание?

   Солнце

11 — 01.08.13 — 10:08

Нет процедура выполняется &НаСервере

   Лефмихалыч

Модератор

12 — 01.08.13 — 10:09

(9) а у пользователя, под которым сервер 1С предприяти запущен, права-то на шару есть?

   Солнце

13 — 01.08.13 — 10:09

(12) Конечно

   Serginio1

14 — 01.08.13 — 10:09

   Лефмихалыч

Модератор

15 — 01.08.13 — 10:10

(13) не верю

   wowik

16 — 01.08.13 — 10:10

Лефмихалыч, +100. Сам недавно с этой ерундой занимался. Все по делу.

   Солнце

17 — 01.08.13 — 10:11

(15) Все права настроены. Права на все даны!

   Лефмихалыч

Модератор

18 — 01.08.13 — 10:13

(17) Ты имя пользователя, под которым служба сервера запущена-то хоть знаешь?

   Лефмихалыч

Модератор

19 — 01.08.13 — 10:14

да и не через шару надо на сервер файлы передавать, а через временное хранилище

   lEvGl

20 — 01.08.13 — 10:14

(15) если права точно есть, тогда попробуйте через ADODB

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

    Connection.Open («Provider=Microsoft.ACE.OLEDB.12.0;Data Source=» + Файл + «;Extended Properties=»»Excel 8.0;HDR=Yes;IMEX=1″»»);

    Catalog = Новый COMОбъект («ADOX.Catalog»);

    Catalog.ActiveConnection = Connection;

    ИмяЛиста = Catalog.Tables.Item(0).Name;

    
    String = «Select * from [» + ИмяЛиста + «]»;

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

    Recordset.Open (String, Connection, 2, 3);

Пока НЕ Recordset.EOF() Цикл

Строка = СокрЛП(Строка(Recordset.Fields(1).Value));

КонецЦикла;

   Солнце

21 — 01.08.13 — 10:15

USR1CV82

   lEvGl

22 — 01.08.13 — 10:16

(21) возможно админ менял пользователя, из под которого rphost запускается

   Лефмихалыч

Модератор

23 — 01.08.13 — 10:16

(21) тебе эксель русским языком все сказал в (3)

   Галахад

24 — 01.08.13 — 10:17

Права можно так проверить:

Файл = Новый Файл(ИмяФайла);

Файл.Удалить()

   Serginio1

25 — 01.08.13 — 10:18

(17) Посмотри права DCOM

   Солнце

26 — 01.08.13 — 10:18

(22)Не менял

   Солнце

27 — 01.08.13 — 10:18

(25) Дали

   Лефмихалыч

Модератор

28 — 01.08.13 — 10:20

как вариант — на клиентской тачке висит срежи процессов excel.exe, созданный при отладке ы файловом варианте и корректно не закрытый при завершении обработки. Этот процесс залочил файл.

   lEvGl

29 — 01.08.13 — 10:20

(26) может процесс экселя на сервере висит — занял файл. проверьте — (24)

   Солнце

30 — 01.08.13 — 10:21

(28)Это тоже проверяла

   Солнце

31 — 01.08.13 — 10:21

(29) НЕТУ

   Солнце

32 — 01.08.13 — 10:21

(24) есть права)

   Лефмихалыч

Модератор

33 — 01.08.13 — 10:21

(30) тогда я знаю ответ — не твой день

  

lEvGl

34 — 01.08.13 — 10:21

ПРОВЕРЬТЕ через удаление

wardamask

0 / 0 / 0

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

Сообщений: 13

1

1C 8.x

15.02.2016, 16:14. Показов 13942. Ответов 6

Метки нет (Все метки)


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

Help me!!!
Написал в процедуру заполнения реквизитов документа из шаблонного Word документа.
И возникла проблема что в файловом (тестовом) варианте все прекрасно работает, а в клиент-серверном ни в какую(((

Вот так ругается…
{Документ.ИсполнительныйЛист.Форма.ФормаДокумента.Форма(153)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
Об = ПолучитьCOMОбъект(ПутьКПрофилю);
по причине:
Ошибка получения объекта COM: -2147221014(0x800401EA): Не удается открыть файл при помощи специального имени

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
&НаКлиенте
Процедура ЗагрузитьПрофиль()
 
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        ПутьКПрофилю = ДиалогОткрытияФайла.ПолноеИмяФайла;
            Иначе
        Текст = "ru = ""Файл не выбран!""; en = ""File not selected!""";
        Предупреждение(НСтр(Текст));
        Возврат;
    КонецЕсли;
           
Загрузка(ПутьКПрофилю);
 
КонецПроцедуры

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
&НаСервере 
Процедура Загрузка (ПутьКПрофилю) Экспорт
 
 
        Об = ПолучитьCOMОбъект(ПутьКПрофилю);
        Об.Application.Visible = 0;
                Word = Об.Application;
        ThisDocument = Word.Documents(1);
                ThisDocument.Activate();
 
...
            
КонецПроцедуры;

Подскажите пожалуйста что мне делать?



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

15.02.2016, 17:30

2

wardamask, на сервере установлен офис?



0



0 / 0 / 0

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

Сообщений: 13

15.02.2016, 17:34

 [ТС]

3

Да установлен



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

15.02.2016, 17:38

4

wardamask, а с сервера доступен файл который ты открываешь (путь с клиента)?

Добавлено через 48 секунд
Т.е. на компьютере А пытамся открыть файл который на компьютере Б

Думаешь он откроется?

Добавлено через 35 секунд
wardamask, просто попробуй сделать это без 1С



0



wardamask

0 / 0 / 0

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

Сообщений: 13

15.02.2016, 18:11

 [ТС]

5

Решил проблему так…

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
62
63
64
65
66
67
68
69
70
 &НаКлиенте
Процедура Записать();
 
Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        ПутьКПрофилю = ДиалогОткрытияФайла.ПолноеИмяФайла;
            Иначе
        Текст = "ru = ""Файл не выбран!""; en = ""File not selected!""";
        Предупреждение(НСтр(Текст));
        Возврат;
    КонецЕсли;
    
 
    
        Об = ПолучитьCOMОбъект(ПутьКПрофилю);
        Об.Application.Visible = 0;
        Word = Об.Application;
        ThisDocument = Word.Documents(1);
        ThisDocument.Activate();
                
            НаимКонтр = ThisDocument.ContentControls.Item(2).Range.Text;
            ИНН = ThisDocument.ContentControls.Item(3).Range.Text;
            Взыскатель = ThisDocument.ContentControls.Item(4).Range.Text;          
            Куратор = ThisDocument.ContentControls.Item(5).Range.Text;       
            ДатаПолученияЛистаИзЮУ = ThisDocument.ContentControls.Item(6).Range.Text;
            НомерЛиста = ThisDocument.ContentControls.Item(7).Range.Text; 
            ДатаНаправленияВОСП = ThisDocument.ContentControls.Item(8).Range.Text;
            ФИОНаправившегоЛист = ThisDocument.ContentControls.Item(9).Range.Text;   
            НомерПочтовогоИдентификатора = ThisDocument.ContentControls.Item(10).Range.Text;
            НаименованиеОСП = ThisDocument.ContentControls.Item(11).Range.Text;      
            ДатаПолученияВОСП = ThisDocument.ContentControls.Item(12).Range.Text;
            ДатаВозбуждения = ThisDocument.ContentControls.Item(13).Range.Text;
            НомерПостановления = ThisDocument.ContentControls.Item(14).Range.Text;    
            ФИОСудебногоПристава = ThisDocument.ContentControls.Item(15).Range.Text;
            КонтактнаяИнфПристава = ThisDocument.ContentControls.Item(16).Range.Text;
            ОсновнойДолг = ThisDocument.ContentControls.Item(17).Range.Text;
            Пени = ThisDocument.ContentControls.Item(18).Range.Text;            
            ПроцентыЗаПользование = ThisDocument.ContentControls.Item(19).Range.Text;  
            ГосПошлина = ThisDocument.ContentControls.Item(20).Range.Text;
            //ОплатаУслугПредставителя = ThisDocument.ContentControls.Item(21).Range.Text;
            
                
        РеквВорд = Новый Массив(21);
        РеквВорд[1]= НаимКонтр;
        РеквВорд[2]=ИНН;
        РеквВорд[3]=Взыскатель; 
        РеквВорд[4]=Куратор;     
        РеквВорд[5]=ДатаПолученияЛистаИзЮУ; 
        РеквВорд[6]=НомерЛиста;
        РеквВорд[7]=ДатаНаправленияВОСП;
        РеквВорд[8]=ФИОНаправившегоЛист;
        РеквВорд[9]=НомерПочтовогоИдентификатора;
        РеквВорд[10]=НаименованиеОСП;
        РеквВорд[11]=ДатаПолученияВОСП;
        РеквВорд[12]=ДатаВозбуждения;
        РеквВорд[13]=НомерПостановления;
        РеквВорд[14]=ФИОСудебногоПристава;
        РеквВорд[15]=КонтактнаяИнфПристава;
        РеквВорд[16]=ОсновнойДолг;
        РеквВорд[17]=Пени;
        РеквВорд[18]=ПроцентыЗаПользование;
        РеквВорд[19]=ГосПошлина;
        //РеквВорд[20]=ОплатаУслугПредставителя; 
                
        Записать1(РеквВорд);
        
        ThisDocument.Close();
КонецПроцедуры

Теперь не важно есть ли на сервере офис, главное что бы он на клиенте был. На сервер только строковые значения передаются. И как не странно работает в три раза быстрее предыдущего варианта.

Спасибо)))



0



Злой самаритянин

182 / 182 / 94

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

Сообщений: 686

15.02.2016, 18:11

6

wardamask, тоже долго возился с этим, правда в экселе, в итоге сделал все, что с экселем связано, на клиенте, специально для серверной базы. Можешь посмотреть мой пример, только там запись, а не чтение.



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

16.02.2016, 00:55

7

да не за что, главное что ты мозг включил……..



0



  

Солнце

01.08.13 — 09:44

Пишу так

Книга = ПолучитьCOMОбъект(Файл,»Excel.Application»);

Ошибка: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: No such interface supported

А если так

Книга = ПолучитьCOMОбъект(Файл);

Ошибка: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Moniker cannot open file

Код что первый что втрой в файловой базе выполняется на ура…

А в серверной не хочет…

На сервере установлен Excel.

Код выполняется на сервере….

Помогите справиться с проблемкой…

  

Лефмихалыч

Модератор

1 — 01.08.13 — 09:46

(0) на сервере нет нужных COM-объектов. Установить MSOffice на сервер.

  

Солнце

2 — 01.08.13 — 09:50

MSOffice Установлен…

  

Солнце

3 — 01.08.13 — 09:54

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

Книга = Эксель.WorkBooks.Open(Файл);

К Excel подключается а к открытию файла говорит:

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

• Указан несуществующий файл или путь.

• Файл используется другой программой.

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

Хотя доступ есть к нему… Файл нигде не используется и он закрыт!

  

Солнце

4 — 01.08.13 — 10:03

Никто не может помочь?…((

  

Лефмихалыч

Модератор

5 — 01.08.13 — 10:05

(2) он установлен на клиенте, а не на сервере. Установите офис на сервер

  

Лефмихалыч

Модератор

7 — 01.08.13 — 10:06

а, ну или файла нет на сервере.

В переменной «Файл» поди путь относительно твоей клиентской машины?

  

Солнце

9 — 01.08.13 — 10:07

(7) сетевой путь такие же ошибки делает

  

lEvGl

10 — 01.08.13 — 10:07

а что значит «выполняется на сервере» — регламентное задание?

  

Солнце

11 — 01.08.13 — 10:08

Нет процедура выполняется &НаСервере

  

Лефмихалыч

Модератор

12 — 01.08.13 — 10:09

(9) а у пользователя, под которым сервер 1С предприяти запущен, права-то на шару есть?

  

Солнце

13 — 01.08.13 — 10:09

(12) Конечно

  

Serginio1

14 — 01.08.13 — 10:09

  

Лефмихалыч

Модератор

15 — 01.08.13 — 10:10

(13) не верю

  

wowik

16 — 01.08.13 — 10:10

Лефмихалыч, +100. Сам недавно с этой ерундой занимался. Все по делу.

  

Солнце

17 — 01.08.13 — 10:11

(15) Все права настроены. Права на все даны!

  

Лефмихалыч

Модератор

18 — 01.08.13 — 10:13

(17) Ты имя пользователя, под которым служба сервера запущена-то хоть знаешь?

  

Лефмихалыч

Модератор

19 — 01.08.13 — 10:14

да и не через шару надо на сервер файлы передавать, а через временное хранилище

  

lEvGl

20 — 01.08.13 — 10:14

(15) если права точно есть, тогда попробуйте через ADODB

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

    Connection.Open («Provider=Microsoft.ACE.OLEDB.12.0;Data Source=» + Файл + «;Extended Properties=»»Excel 8.0;HDR=Yes;IMEX=1″»»);

    Catalog = Новый COMОбъект («ADOX.Catalog»);

    Catalog.ActiveConnection = Connection;

    ИмяЛиста = Catalog.Tables.Item(0).Name;

    

    String = «Select * from [» + ИмяЛиста + «]»;

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

    Recordset.Open (String, Connection, 2, 3);

Пока НЕ Recordset.EOF() Цикл

Строка = СокрЛП(Строка(Recordset.Fields(1).Value));

КонецЦикла;

  

Солнце

21 — 01.08.13 — 10:15

USR1CV82

  

lEvGl

22 — 01.08.13 — 10:16

(21) возможно админ менял пользователя, из под которого rphost запускается

  

Лефмихалыч

Модератор

23 — 01.08.13 — 10:16

(21) тебе эксель русским языком все сказал в (3)

  

Галахад

24 — 01.08.13 — 10:17

Права можно так проверить:

Файл = Новый Файл(ИмяФайла);

Файл.Удалить()

  

Serginio1

25 — 01.08.13 — 10:18

(17) Посмотри права DCOM

  

Солнце

26 — 01.08.13 — 10:18

(22)Не менял

  

Солнце

27 — 01.08.13 — 10:18

(25) Дали

  

Лефмихалыч

Модератор

28 — 01.08.13 — 10:20

как вариант — на клиентской тачке висит срежи процессов excel.exe, созданный при отладке ы файловом варианте и корректно не закрытый при завершении обработки. Этот процесс залочил файл.

  

lEvGl

29 — 01.08.13 — 10:20

(26) может процесс экселя на сервере висит — занял файл. проверьте — (24)

  

Солнце

30 — 01.08.13 — 10:21

(28)Это тоже проверяла

  

Солнце

31 — 01.08.13 — 10:21

(29) НЕТУ

  

Солнце

32 — 01.08.13 — 10:21

(24) есть права)

  

Лефмихалыч

Модератор

33 — 01.08.13 — 10:21

(30) тогда я знаю ответ — не твой день

  

lEvGl

34 — 01.08.13 — 10:21

ПРОВЕРЬТЕ через удаление

Вопрос При работе с Excel из 1С возникает сообщение: «Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается». Что делать?
Ответ
Подробнее:

При использовании:

Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(ИмяФайла);

Выдает ошибку – Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается.

Или другой метод:

Объект = ПолучитьCOMОбъект(ИмяФайла);

— сообщение: «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Класс не зарегистрирован»
или

Объект = ПолучитьCOMОбъект(ИмяФайла, "Excel.Application");

— сообщение: «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Сервер RPC недоступен»

Причин всех этих ошибок может быть несколько. 

У службы «Запуск серверных процессов DCOM» тип запуска должен быть «Авто».

Кроме того, если  служба «Агент сервера 1С:Предприятия 8.2» запускается от имени специального пользователя, то у него должны быть права на запуск компоненты «Приложение Microsoft Excel»

Служба «Агент сервера 1С:Предприятия 8.2» не должна запускаться от имени пользователя с ограниченными правами, у него должны быть права на запуск компоненты «Приложение Microsoft Excel».

Другая возможная причина: 1С предприятие установлено в 64-битном варианте, а Excel — в 32-битном. Может помочь установка 1С в 32-битном варианте (это может быть проще, чем найти 64-битный Excel)

У службы «Запуск серверных процессов DCOM» тип запуска необходимо установить в «Авто». После чего желательно перезагрузить компьютер.

Ну и как вариант, быть может поврежден установленный пакет MS Office. Необходимо попробовать переустановить его.

Next Post

  • v8

  • Программисту 1C

Пт Май 14 , 2010

Вопрос Как в запросе использовать «СокрЛП», «Лев», «Прав», т.е. как отсечь нужное количество символов? Ответ Использовать конструкцию «ВЫРАЗИТЬ»: … ГДЕ (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) «Груз» |ГДЕ | (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) &Груз … Запрос.УстановитьПараметр(«Груз»,»Груз»);

Breaking News

10-150 Okolokompa Форум

(@dom)

Сообщения: 200

Honorable Member

По сути, такое сообщение:

  • Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается.

Как и другие подобные сообщения:

  • «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Класс не зарегистрирован»
  • «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Сервер RPC недоступен»

Возникает в следующих случаях:

У службы «Запуск серверных процессов DCOM» тип запуска должен быть «Авто». (После изменения этой настройки, перезагрузите компьютер).

Если служба «Агент сервера 1С:Предприятия 8.2 / 8.3» запускается от имени специального пользователя, то у него должны быть права на запуск компоненты «Приложение Microsoft Excel»

Служба «Агент сервера 1С:Предприятия 8.2» не должна запускаться от имени пользователя с ограниченными правами, у него должны быть права на запуск компоненты «Приложение Microsoft Excel».

1С предприятие установлено в 64-битном варианте, а Excel — в 32-битном. Может помочь установка 1С в 32-битном варианте или наоборот.

У службы «Запуск серверных процессов DCOM» тип запуска необходимо установить в «Авто».

Повреждён установленный пакет MS Office. Переустановите.

Размещено : 11/06/2020 11:03 дп

Имеем ALT Linux + WINE@Etersoft 1.0.6 = 1C8.1 вполне прилично работает. Также есть DLL для оптимизации расчета маршрута из одного города в другой (используется в транспортном отделе, стандартные средства 1С очень медленно считают). Эту DLL в конфигурации 1С подключают следующим образом:

Код: Выделить всё

Попытка
atl = ПолучитьCOMОбъект("","CTakePath.CTakePath.1");
Исключение
Сообщить(ОписаниеОшибки(),СтатусСообщения.Внимание);
Возврат Ложь;
КонецПопытки;

В WINE библиотека прописывается так:

Код: Выделить всё

[user@test-altlinux]$ regsvr32 "t:dllTakePath.dll"
Xlib:  extension "XFree86-DRI" missing on display "localhost:10.0".
Xlib:  extension "XFree86-DRI" missing on display "localhost:10.0".
Successfully registered DLL t:dllTakePath.dll

После чего в system.reg имеем:

Код: Выделить всё

[SoftwareClassesCLSID{6946EE1A-5979-4D7A-BE49-04C68A7DCE85}] 1210261335
@="CTakePath Object"
"AppID"=""
[SoftwareClassesCLSID{6946EE1A-5979-4D7A-BE49-04C68A7DCE85}LocalServer32] 1210261335
@="T:dllTakePath.dll"
"ThreadingModel"=""
[SoftwareClassesCLSID{6946EE1A-5979-4D7A-BE49-04C68A7DCE85}ProgID] 1210261335
@="CTakePath.CTakePath.1"
[SoftwareClassesCLSID{6946EE1A-5979-4D7A-BE49-04C68A7DCE85}Programmable] 1210261335
[SoftwareClassesCLSID{6946EE1A-5979-4D7A-BE49-04C68A7DCE85}TypeLib] 1210261335
@="{F4CFAD43-F334-4A71-89E9-0A08E93E9E79}"
[SoftwareClassesCLSID{6946EE1A-5979-4D7A-BE49-04C68A7DCE85}VersionIndependentProgID] 1210261335
@="CTakePath.CTakePath"

Сравнивал с реестром Windows – там тоже самое. Доступ к диску «Т» с нужными правами есть. Но в итоге, когда 1С пытается получить доступ к библиотеке, имеем ошибку:

Код: Выделить всё

Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Unknown error 0x80080005

В COM-объектах не силен — может WINE-ну нужно еще каких-то системных библиотек установить, кроме тех, что идут в комплекте?

Ошибка получения объекта COM

Модератор: Дмитрий Юхтимовский

Ошибка получения объекта COM

При запуске тестов TPC-1C и G1C появляется следующая ошибка.
{ОбщийМодуль.Глобальный(51)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
по причине:
Ошибка получения объекта COM: COM-объекты поддерживается только в операционных системах Windows

Сервер 1С — линукс, сервер баз аналогично, клиент запущен на сервере терминалов.
Подскажите, пожалуйста, в чем проблема.

selfin
 
Сообщений: 1
Зарегистрирован: 21 мар 2014, 08:11


Re: Ошибка получения объекта COM

Сообщение fwhr » 22 мар 2014, 15:20

с COM ушла ошибка, а с этой можно как-то побороться, или до следующей обновы ждать?

Код: выделить все
{Обработка.TCP_1C_GILV.Форма.Форма(458)}: Значение не является значением объектного типа (ПроцессорНаименование)
   ПроцессорНаименование      = ФизическиеПараметры.ПроцессорНаименование;
fwhr
 
Сообщений: 2
Зарегистрирован: 22 мар 2014, 13:33

Re: Ошибка получения объекта COM

Сообщение ssavel » 24 мар 2014, 17:21

fwhr писал(а):с COM ушла ошибка, а с этой можно как-то побороться, или до следующей обновы ждать?

Код: выделить все
{Обработка.TCP_1C_GILV.Форма.Форма(458)}: Значение не является значением объектного типа (ПроцессорНаименование)
   ПроцессорНаименование      = ФизическиеПараметры.ПроцессорНаименование;

Прошу загрузить кандидат на новую версию теста по ссылке

ftp://isinka.gilev.ru/GILV_TPC_G1C.dt

(пользователь g1c, пароль g1c)
и сообщить, сохраняется ли ошибка.

ssavel
 
Сообщений: 7
Зарегистрирован: 21 мар 2014, 15:30

Re: Ошибка получения объекта COM

Сообщение fwhr » 24 мар 2014, 17:54

Загрузил, версия в Справка — О программе отображается как 2.0.2.7
Стартует без ошибок. Оба теста выполняются. Спасибо.

ЗЫ: По тесту рекомендуемое кол-во пользователей: 231. «Мои» 30-50 юзеров могут быть спокойны? ;)

fwhr
 
Сообщений: 2
Зарегистрирован: 22 мар 2014, 13:33



Вернуться в Нагрузочное тестирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

  1. Приветствую.

    Столкнулся с проблемой:
    Создал обработку, которая запускает Excel, читает файл, заполняет его и записывает.
    На клиенте все великолепно выполняется.
    Создал регламентное задание, которое запускает в определенное время это на сервере.
    При выполнении на сервере вылезает ошибка про то, что типа MS Excel не удалось получить доступ к файлу. При этом доподлинно известно, что ком. объект Excel даже не создался (нет его в процессах диспетчера задач).
    Примечательно, что если запустить обработку клиентом с машины, где установлен сервер 1С, то все выполняется.

    Excel = Новый COMОбъект("Excel.Application");
    Книга = Excel.WorkBooks.Open("D:DstOrder.xls");
    

    Чувствую, что дело тут в том, что при работе с клиента Excel запускается из-под пользователя в реальном сеансе, а в случае сервера — под пользователем хоть и с полными правами, но без запущенного сеанса.

    Сервер Windows Server 2008 R2 Standart. Service Pack 1
    Как это обойти?


  2. shurikvz

    Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    1) Файл D:DstOrder.xls действительно существует на сервере?
    2) У пользователя под которым запущен сервер есть право доступа к каталогу D:Dst?

  3. 1. Да, файл существует. Обработка при запуске на этом же сервере из-под клиента выполняется без проблем.
    2. Доступ есть. Пользователь — администратор. Пробовал файл в разные папки класть.

    — Объединение сообщений, 15 авг 2014

    Полный текст ошибки. Ошибка от имени Microsoft Excel, однако процесса EXCEL в диспетчере задач нет!

    Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «D:DstOrder.xls». Это может быть вызвано одной из следующих причин.

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

    — Объединение сообщений, 15 авг 2014

    8.3.4.496

    Последнее редактирование: 15 авг 2014

  4. shurikvz

    Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    Т.е. сервер (ragent.exe и т.д.) стартует от имени Администратора? Или все же от USR1CV82 (не знаю как там по умолчанию под 8.3 пользователь называется).

  5. У меня пользователь USR1CV81 со старых времен. Он входит в группу Администраторы.

    Сейчас провел эксперимент. Зашел на сервер от имени этого пользователя и в клиенте запустил обработку — без проблем.

  6. Попробовал вместо COMОбъект использовать ПолучитьCOMОбъект. Вот результат

    Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221021(0x800401E3): Операция недоступна


  7. shurikvz

    Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104


  8. shurikvz

    Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104


  9. shurikvz

    Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104


    likalim и Mark768 нравится это.
  10. Спасибо тебе, добрый человек. Сам бы не допер…


  11. shurikvz

    Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    Да не за что.
    Не совсем я это, разум это коллективный.. :)

  12. Небольшое уточнение:
    При выборе «Текущий пользователь», обработка на сервере запускает Excel только в том случае, если на сервер выполнил вход кто-нибудь из пользователей.
    Если это условие не выполняется, то получаем ошибку:

    Ошибка при вызове конструктора (COMОбъект): -2147467262(0x80004002): Интерфейс не поддерживается

    На вкладке «Удостоверения» есть 3-й вариант запуска — указать конкретного пользователя и пароль.
    Я указал пользователя, от имени которого работает сервер 1С (USR1CV81).
    В таком варианте обработка запускает Excel при отсутствии работающих пользователей на сервере.
    Это меня устраивает.

    В моем случае не бывает работающих пользователей на сервере и тем более, запускающих Excel
    Могу предположить, что при запуске Excel любым пользователем (не USR1CV81) могут возникнуть проблемы.
    Например, Excel запускается и работает, однако при старте выдает «Невозможно использовать связывание и внедрение объектов».

  13. Приветствую.

    Когда в этой теме мне очень помогли. Восстановили сервер после аварии. Теперь восстанавливаю возможность работы пользователя USR1CV81 с Excel.
    Столкнулся с тем, что в Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM теперь нет ветки Microsoft Excel Application, хотя сам Excel установлен.
    Что я сделал не так?


  14. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Переустанавливать эксель пробовали ?

  15. Да, уже несколько раз и разные версии.
    Вычитал в сети, что если нет ветки явно, то нужно в реестре найти его наименование в виде кода. В реестре нашел, но его кода в Настройка DCOM тоже нет.


  16. Ardak

    Offline

    Ardak

    Регистрация:
    21 дек 2015
    Сообщения:
    1
    Симпатии:
    1
    Баллы:
    1

    Вдруг кому понадобится
    Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.


  17. limus80

    Offline

    limus80

    Регистрация:
    30 май 2013
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1

    важное как мне кажется дополнение
    ко всему вышесказанному надо добавить учетке права входа в качестве сервиса на компьютер
    без этого у меня не работало на W2K12R2


  18. Gucci76

    Offline

    Gucci76
    Опытный в 1С

    Регистрация:
    9 мар 2008
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26

    Здравствуйте.
    У меня похожая проблема, но только с ВОРДом
    В файловом варианте я могу Новый COMОбъект(«Word.Application»), а в клиент-серверном нет.
    Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM тут НЕ нашел ворда (открывал через команду «mmc comexp.msc /32»).


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

  • Ошибка при вызове метода контекста показать метод недоступен на сервере
  • Ошибка при вызове метода контекста подписать ошибка интерфейса модуля криптографии ошибка доступа
  • Ошибка при вызове метода контекста подключиться неизвестная ошибка smtp error code 3
  • Ошибка при вызове метода контекста подключиться время ожидания операции чтения истекло
  • Ошибка при вызове метода контекста подключиться аутентификация не прошла