Меню

Ошибка при вызове метода контекста получить 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

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

Вопрос При работе с 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 имеем:

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

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

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

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

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

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при выполнении запроса get к ресурсу e1cib usersettings
  • Ошибка при вызове метода подписи на сайте пфр