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

Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.

Особенности

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

Убедиться в причине ошибки возможно, если посмотреть логи системы.

Устранение:

  • на сервере убиваем excel (taskkill /im excel.exe /f)
  • открываем оснастку “Службы компонентов” (Пуск->Администрирование->Службы компонентов)
  • в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
  • справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.

Может оказаться, что  “Microsoft Excel Application” отсутствует в списке, в данном случае

  1. Запускаем REGEDIT
  2. Открываем ветку Computer\HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем
  3. Создаем в ней строковый параметр AppID  = {00020812-0000-0000-C000-000000000046}
  4. Выполняем команду “mmc comexp.msc /32”, которая делает то же что и DCOMCONFIG, но позволяет видеть  32 битные компоненты.
  5. После этого в Component Services должен появиться “Microsoft Excel Application”

Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.

Для правки использовалась оснастка Локальные пользователи и группы (lusrmgr.msc) — это инструмент, предназначенный для управления локальными пользователями и группами.

Локальный пользователь или группа — это учетная запись, которой могут быть предоставлены разрешения и права на вашем компьютере.

Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.

Так что нельзя однозначно сказать, что же решило проблему.

Заключение

В большинстве случаев уйти от дополнительной настройки операционной системы возможно,  если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.

В моем же случае клиентские компьютеры работали на Ubuntu, поэтому вся обработка перенесена на сервер.

Бывает такое: вы прописываете для компонента пользователя и пароль.

Затем через некоторое время меняете пароль и компонент перестает работать: выходит такая же ошибка “Интерфейс не поддерживается”. Следует просто вбить новый пароль.

 

Люди глупо доверчивы… Вся реклама мира основана на трех принципах: “Хорошо, много и даром”. Поэтому можно давать скверно, мало и дорого.

— Александр Грин
Ошибки 1С
Предыдущая запись
Тормоза windows 7 svchost.exe ноутбук
Следующая запись
Ошибка работы с Интернет: Transferred a partial file

3 комментария.

  • Автор ресурса
    05.04.2016 12:27

    Проверить наличие системных папок:
    Папка “C:\Windows\SysWOW64\config\systemprofile\Desktop\”
    Проверяем наличие папки , если нет -то создаем.
    Заходим в свойства этой папки.
    Закладка Security
    Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
    Добавляем право “Read” и “Write”
    Папка “C:\Windows\System32\config\systemprofile\Desktop\”
    Проверяем наличие папки , если нет -то создаем.
    Заходим в свойства этой папки.
    Закладка Security
    Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
    Добавляем право “Read” и “Write”

  • Автор ресурса
    05.04.2016 12:36

    Эти же настройки необходимо также использовать для пользователей, которые работают не под полными правами (например, на сервере терминалов)

  • Автор ресурса
    06.04.2016 06:28

    Даже при настроенном Dcom, при сохранении в директорию, на которую нет права доступа на запись, возможно зависание 1С с полной загрузкой ядра процессора, без сообщений ошибок.

Обсуждение закрыто.