Ошибка при вызове конструктора comобъект 2147467262 0x80004002 интерфейс не поддерживается

Ошибка при чтении файла Excel
   val245

03.04.18 — 20:24

Здравствуйте

Стоит УТ 11. Клиент-серверный вариант. Загружаю данные из Excel. При попытке открыть файл конструктором

Ex=Новый ComОбъект(«Excel.Application»);

Work = Ex.workbooks.Open(СокрЛП(ПутьКФайлу));

Входит ошибка

{Обработка.ЗагрузкаНоменклатурыИзЭкзель.Форма.Форма.Форма(25)}: Ошибка при вызове конструктора (ComОбъект): -2147467262(0x80004002): No such interface supported

Обработку разрабатывал в фаловом варианте. В файловом варианте обработка проходит нормально. Excel на сервере установлен.

Кто знает, почему файл не хочет читаться в клиент-серверном варианте?

   shuhard

1 — 03.04.18 — 20:27

(0)[Кто знает, почему] Все знают

100500 раз писалось про пути и учетные записи

   Darych

2 — 03.04.18 — 20:28

права

   val245

3 — 03.04.18 — 20:32

права в 1с или права учетных записей Windows?

   Darych

4 — 03.04.18 — 20:32

вин

   MaxS

5 — 03.04.18 — 20:33

Открывайте 1С-ом через Файл-Открыть

   val245

6 — 03.04.18 — 20:34

(1) Ну я пока с такой проблемой не сталкивался

   shuhard

7 — 03.04.18 — 20:34

(3) права учетной записи, от которой крутиться rphost

+ ну и конечно для загрузки из xls ставить на сервер эксель плохое решение, пару раз зависнет и сожрёт всю память

   Cool_Profi

8 — 03.04.18 — 20:35

(7) Твой вариант решения?

   tesseract

9 — 03.04.18 — 20:35

Почему просто в ТД не читать? Зачем Excel дергать?

   val245

10 — 03.04.18 — 20:37

(5) Открывать 1С-ом что? обработку или Excel? Экзель открывается, правда, конечно, не читабельно..

   Darych

11 — 03.04.18 — 20:37

(9) не всегда в ТД получается

   val245

12 — 03.04.18 — 20:38

(9) ТД — это что?

   piter3

13 — 03.04.18 — 20:38

Взять типовую загрузку из йокселя,загрузить,закрыть,забыть.

   val245

14 — 03.04.18 — 20:38

табличный документ?

   val245

15 — 03.04.18 — 20:39

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

   tesseract

16 — 03.04.18 — 20:39

(14) Да он давно и Excel и ods нормально грузит.

   piter3

17 — 03.04.18 — 20:39

   shuhard

18 — 03.04.18 — 20:39

(8) adodb однозначно

   shuhard

19 — 03.04.18 — 20:40

(16) многостраничные стал грузить совсем не давно

   Darych

20 — 03.04.18 — 20:41

(18) а у него думаешь не адо?

   Cool_Profi

21 — 03.04.18 — 20:41

(18) И тут мы вам покажем, как вы думаете, что?

Правильно… Вот эту ссылку

https://www.forum.mista.ru/topic.php?id=815766

   shuhard

22 — 03.04.18 — 20:42

(20) ты это о  чем ?

ComОбъект(«Excel.Application»);

   shuhard

23 — 03.04.18 — 20:43

(21) ты неудачник и что ?

   Cool_Profi

24 — 03.04.18 — 20:44

(23) А с какого перепою я неудачник? Можешь обосновать внятно?

Или у тебя перепой?

   shuhard

25 — 03.04.18 — 20:47

(24) хвостик отрасти для объяснений

   val245

26 — 03.04.18 — 20:48

а с чем эта ошибка связана? почему в файловом варианте читает, а в клиент-серверном читать не хочет?

   shuhard

27 — 03.04.18 — 20:49

(26) пипец

ты чё, ответы не читаешь ?

   ДенисЧ

28 — 03.04.18 — 20:49

(25) Так лучше видно?

   tesseract

29 — 03.04.18 — 20:52

(26) Сервер и клиент находятся в разных местах. Если на одном — у них разные пользователи. См НачатьПомещениеФайла для начала.

   shuhard

30 — 03.04.18 — 20:53

(28) =)

   Darych

31 — 03.04.18 — 20:54

все ж написано: «No such interface supported

«

   val245

32 — 03.04.18 — 20:55

сейчас пользователи подключаются через rdp. Все действия происходят на сервере..

   shuhard

33 — 03.04.18 — 20:57

  

val245

34 — 03.04.18 — 21:01

ок. спасибо. Будем разбираться…

Содержание

  1. Ошибка «-2147467262(0х80004002) Интерфейс не поддерживается» при выводе печатных шаблонов WORD в тонком и веб-клиенте
  2. Ошибка при вызове конструктора (COMObject) по причине: Интерфейс не поддерживается
  3. Ошибка при вызове конструктора (COMObject) по причине: Интерфейс не поддерживается
  4. Особенности
  5. Устранение:
  6. Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае
  7. Заключение
  8. Ошибка при вызове конструктора (COMОбъект) ; по причине: Интерфейс не поддерживается
  9. Ошибка — 2147467262: Интерфейс не поддерживается — как исправить?
  10. Причины возникновения ошибки в Windows
  11. Ошибка 2147467262 в Windows — что делать
  12. Восстановление системных файлов
  13. Утилита Windows Fix
  14. Другие способы решения ошибки

Ошибка «-2147467262(0х80004002) Интерфейс не поддерживается» при выводе печатных шаблонов WORD в тонком и веб-клиенте

Сложности в процессе решения:

Согласно инструкции разработчиков, по словам ошибки «интерфейс не поддерживается» проделали следующее:

1. Пользователю USR1CV82, от имени которого запускается сервер 1С, дать права на запуск DCOM MicrosoftWord и DCOM Microsoft Excel (при необходимости).

Для этого нужно:

1.1. Запустить службу компонентов. Из командной строки набрать

mmccomexp.msc

и найти компоненту Word или Excel. Пример для Word представлен на рисунке ниже:

При запуске службы компонентов на 64-х разрядной машине, 32-х разрядные компоненты могут не отображаться, тогда запуск нужно осуществить через команду:

C:WINDOWSSysWOW64>mmc comexp.msc /32

1.2. Открыть свойства компоненты и перейти на закладку Безопасность.

1.3. В разделе Разрешения на запуск выбрать пункт Настроить и нажать кнопку Изменить. Добавить пользователя USR1CV82.

Не помогло, база выдавала ошибку: Данная команда недоступна, так как не открыт ни один документ.

В ходе работ закончилась лицензия на MS Office, и в конфигурации после создания COM-объекта «Word.Application» на каждом шаге в отладке ОС запускает процесс завершения установки и активации MS Office. Клиент купил лицензию для сервера на MS Office.

После установки лицензий вернулась ошибка -2147467262(0х80004002) Интерфейс не поддерживается.

По словам разработчиков, перевод обработки Word на клиента не решит проблему. Судя по предоставленным нами логам — ошибка возникает в режиме веб-клиента. В этом режиме программная обработка Word на клиенте не возможна, только серверная обработка.

Но для работы базы необходимо было решить данную проблему. Мы вернули все изменения, которые сделали по инструкции разработчика. Долго прорабатывали доступы к папкам временного хранилища для пользователей извне. Создали еще одного администратора без пользовательских настроек, для него заново настраивали IIS.

Настроили работу сервера через Apache. Создали папку, в которой находятся редактируемые шаблоны Word, дали общий доступ к этой папке, для пользователя IUSR и группы пользователей IIS_users.

На Windows Server 2012 (64 разрядности) установлен Word 2013 (32 разрядности), а у пользователей установлен Adobe Reader. Шаблон договора заполняется в 1С на сервере и конвертируется в PDF, сохраняется во временную папку на сервере.

Мы переписали обработку, чтобы документ сохранился в формат PDF (по требованию клиента для запрета редактирования, изменения документа) и сохранялся во временное хранилище 1С. Из хранилища документ/файл передается на указанный нами путь (во временные папки у клиента), как для тонкого клиента, так и для веб-клиента. Открывается файл именно из этой временной папки. Ниже пример кода, который мы дописали для передачи файла с сервера на клиент.

&НаКлиенте
Попытка
ЗапуститьПриложение(ПолноеИмяФайлаНаКлиенте);
Исключение
Адрес = УПН_ОбщиеПроцедуры.ПолучитьФайл(ПолноеИмяФайлаНаКлиенте);
Описание = Новый ОписаниеПередаваемогоФайла(«C:doc» + ДанныеФайла.ИмяФайла,Адрес);
МассивОписаний=Новый Массив;
МассивОписаний.Добавить(Описание);
ПолучитьФайлы(МассивОписаний. Ложь);
ЗапуститьПриложение(«C:doc» + ДанныеФайла.ИмяФайла);
КонецПопытки;

В настроках Панель управления, далее путь: Администрирование->Управление групповой политикой->Домены – выбираем наш сервер и во вкладке «Делегирование» добавляем группу IIS_users и пользователя IUSR (через которого подключаются внешние пользователи).

В веб-клиенте после отправки документа на печать браузе попросит установить расширение. Нужно установить, и все заработает:

Предпочтительнее использовать Internet Explorer (IE) не ниже 8 версии. При использовании Google Chrome (гугл хром) возникает ошибка: Использование модальных окон в данном режиме запрещено.

Если Internet Explorer не запускает документ на печать, можно принудительно запустить браузер от имени администратора:

В тонком клиенте сразу открывается заполненный шаблон (на примере ниже стерты данные клиента). Форма открывается в формате PDF по требованию клиента, чтобы пользователь не мог редактировать документ перед печатью.

Источник

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

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

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

Особенности

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

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

Устранение:

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

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

  1. Запускаем REGEDIT
  2. Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
  3. Создаем в ней строковый параметр AppID =
  4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
  5. После этого в Component Services должен появиться «Microsoft Excel Application»

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

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

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

Заключение

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

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

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

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

Реклама — виновница того, что народ выбрал себе в вожди Гитлера. Реклама призвана убеждать граждан, что ситуация нормальна, когда она катастрофически ненормальна.

Источник

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

Необходимо сравнить данные в трех базах: УТ 10.3, БП 2.0 и Бух 7.7
Хочу использовать для этого COM-подключение к базам 7.7 и 2.0 из УТ.
Если базы поставить на Win XP, то COM-подключение работает.

Начинается лето и некоторое время я хотел поработать на даче. Перенес базы на ноутбук с Win 8.1. Отдельно все базы доступны и с ними можно делать что угодно. Но COM-подключение не работает

Выдается ошибка:
Ошибка при вызове конструктора (COMОбъект)
БазаОлеТек= Новый COMОбъект(«V77.Application»);
по причине:
-2147467262(0x80004002): Интерфейс не поддерживается

Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ?

Платформа 7.7 устанавливалась копированием.
Для УТ и БП использовалась платформа 8.2 и 8.3

Цитата
Платформа 7.7 устанавливалась копированием

Геннадий Новосибрск пишет:

Цитата
Платформа 7.7 устанавливалась копированием

Я впервые слышу об установке копированием.
Почему бы не установить штатно ?

Геннадий Новосибрск , На Win 8 (а также и на Win 7) штатно не устанавливается
Почитайте об этом в интернете

Рисовод , Про «бесплатно» не понятно. Из установочного комплекта 7.7 в Win 8 не устанавливается
Рекомендуют установить платформу на XP, а потом скопировать каталог, в который установлена 7.7, скопировать на компьютер с Win 8.
Так и было сделано. Отдельно все базы доступны работают, а COM-подключение не работает.
И причем здесь «бесплатно» ?

Цитата
Геннадий Новосибирск , На Win 8 (а также и на Win 7) штатно не устанавливается
Почитайте об этом в интернете

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

Там же в интернете и пишут — что делать. надо было очень постараться, чтобы понять это так, чтобы не работало и не устанавливалось.
Первые 2 самых очевидных способа, среди множества других без установок копированием, которые находятся сразу поиском в интернете:

  • поднять виртуальную машину с Windows XP из под Windows 8.1 и там всё устанавливать без копирования
  • в свойствах файла запуска в разделе Совместимость отметить:
    — запустить программу в режиме совместимости c:
    Windows XP (Пакет Обновления 3)
    — Выполнять эту программу от имени администратора

Источник

Ошибка — 2147467262: Интерфейс не поддерживается — как исправить?

При установке программ, запуск которых доступен из контекстного меню Windows, происходит ошибка — 2147467262 Интерфейс не поддерживается. Как исправить её, вы сможете узнать в этой статье. Такая проблема может появляться на всех версиях ОС Windows. Но чаще она возникает на Windows 7. Будут использованы разные методы устранения. Если не подойдет один — используйте другой.

Причины возникновения ошибки в Windows

Причиной ошибки могут быть сбои системных файлов при установке программного обеспечения. При этом нарушения могли быть уже в системе до установки программ. Появляется сообщение, когда пользователь пытается воспользоваться контекстным меню (нажимая правую кнопку мыши (ПКМ)). Эти симптомы ОС могут говорить о наличии вирусов в компьютере, которые часто нарушают системные файлы.

Ошибка 2147467262 в Windows — что делать

Для начала попробуйте простые действия, которые могут решить большинство временных сбоев в системе. Прежде всего перезагрузите компьютер и попробуйте вызвать ошибку отсутствия поддержки интерфейса. Следующий шаг может помочь определить, с какой программой связано появление ошибки. Нам нужно попытаться загрузиться в «чистую» Windows. Для этого выполните следующие рекомендации:

  1. Нажмите внизу на значок «Пуск» и найдите строку поиска;
  2. В ней нужно ввести словосочетание «Конфигурация системы». Она нам необходима для настройки чистой загрузки ОС;
  3. В результатах найдите пункт «msconfig» и выберите его;
  4. В окне вверху расположены вкладки. Выберите «Общие»;
  5. Затем уберите галочку с пункта «Обычная загрузка» и переместите её на «Выборочная загрузка»;

  • В этом разделе уберите галочку с пункта «Загружать элементы автозагрузки»;
  • Затем выберите вверху другую вкладку «Службы» и внизу на чек-боксе поставьте галку «Не отображать службы»;

  • Затем нажмите внизу кнопку «Применить» и подтвердите свои действия, нажав «Ок».
  • Перезагрузите компьютер и снова попытайтесь вызвать ошибку. Если она появляется, значит системные службы не имеют к ней отношения. Но если системное сообщение больше не появляется, можно определить какая из служб вызывает её. Для этого необходимо по очереди ставить одну галочку на службе и перезагружать свой ПК. Для ускорения процесса поиска причинной службы вы можете выбирать не одну, а сразу несколько служб. Главное — запоминать группу, чтобы потом определить нерабочую из этой группы.

    Во вкладке «Автозагрузки» выберите каждое приложение, которое запускается вместе с Windows и нажмите внизу кнопку «Выключить». При входе в систему способом чистой загрузки, их также нужно поочередно включить, чтобы определить причину ошибки. Когда вы определите службу, её можно временно отключить. После этого выясните, как можно устранить проблемы с этой службой. Также попробуйте переустановить или удалить программу, которую вы устанавливали на рабочую операционную систему.

    1. Откройте «Пуск» и нажмите справа на пункт «Панель управления»;
    2. Выберите здесь «Удаление программ» и найдите нужную в списке установленных;

  • Нажмите на название ПО и вверху выберите мышью кнопку «Удалить»;
  • Перезагрузите компьютер.
  • Восстановление системных файлов

    Если предыдущий метод не помог устранить ошибку, попробуем восстановить все возможные сбои в системных файлах. Для этого в Windows есть собственные утилиты. Вам понадобится стабильное подключение к интернету, так как утилитам нужен будет доступ к серверу Майкрософт для скачивания поврежденных файлов. Выполните следующую инструкцию:

    1. Необходимо запустить командную строку. Делать это нужно так: откройте «Пуск» и напишите в поиске «Командная строка». В результатах выберите её ПКМ. В контекстном меню появится пункт «От имени администратора». Нажмите его;
    2. В окне нужно записать «sfc /scannow» и нажать кнопку ввода. Дождитесь её завершения и проверьте, появляется ли ошибка 2147467262 «Интерфейс не поддерживается». Если вам удалось её исправить, можно закрыть все ненужные окна и продолжить работу;
    3. Если сбой снова появляется, в этом же окне введите другую команду: «dism /online /cleanup-image /checkhealth» без кавычек и нажмите кнопку ввода;
    4. Дождитесь завершения процесса проверки файлов, перезагрузите компьютер и снова попробуйте выполнить действия, которые вызывали ошибку.

    Если этот метод также не помог, как и предыдущий, попробуйте восстановить систему при помощи загрузочного диска Windows. DVD, с которого вы устанавливали систему. Чтобы загрузиться с диска, вам снова нужно будет установить параметры загрузки с дискового привода в BIOS. Следующие действия схожи с установкой. Только при выборе действий нужно указать «Восстановление системы», вместо установки. Далее следуйте подсказкам мастера.

    Утилита Windows Fix

    Раньше на официальном сайте Microsoft была доступна утилита от создателей Windows. Она позволяла устранять множество проблем на компьютере и называлась Windows Fix It. Разработчики утилиты реализовали её функции иначе. Уже долгое время она не доступна по адресу загрузки. В последних версиях Windows разработчики присвоили возможности когда-то существовавшей утилиты во встроенной в ОС «Устранение проблем». В ранних версиях этот пункт никогда не рассматривался пользователями как действенный. Но сегодня, запустив «Устранение неполадок» в Windows 8.1, 10, мастер действительно становится полезным.

    Группой программистов была разработана другая неофициальная версия этой утилиты. Загрузить её можно по адресу https://windowsfix.ru/. Так как разработчик неизвестен, перед запуском и установкой проверьте утилиту на вирусы. Для ОС Windows 10 есть другая утилита, которая также решает множество ошибок и сбоев. Скачать её можно на странице . Её не нужно устанавливать, это портативная программа. Требуется только запуск исполняемого файла. В целях безопасности компьютера, утилиту также нужно проверить на вирусы.

    Если уж речь пошла о неофициальных методах решения, попробуйте скачать и запустить утилиту с данного форума — http://delphidevelop.ru/forum/29-312-1/. Ссылка находится в первом посте. Каждый, кто испробовал её утверждают, что ошибку удалось устранить.

    Другие способы решения ошибки

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

    1. Если пользователю не доступно стандартное окно «Пуск» или «Панель управления», нажмите вместе WIN+R и введите «netplwiz». Нажмите ENTER;
    2. Нажмите кнопку «Добавить» и создайте нового пользователя, присвоив нужные параметры;
    3. Перезагрузите компьютер и выберите новую учетную запись.

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

    Есть еще один способ, который может решить ошибку 2147467262 — интерфейс не поддерживается. Он заключается в перерегистрации файлов динамической библиотеки (dll). Для его применения вам нужно вводить последовательно большое количество команд. По сложности он сопоставим с переустановкой Windows.

    Источник

    Платформа: 1С:Предприятие 8.3 (8.3.6.2100)
    Конфигурация:Риэлтор. Управление продажами недвижимости для «1С:Управление торговлей 8», редакция 11.1 (11.1.10.145/2.7.3.42)
    Проблема:Файловая база размещена на сервере, опубликована на веб-сервере. Пользователи подключаются через тонкого клиента к веб-серверу. При печати шаблона WORD база выдает ошибку -2147467262(0х80004002) Интерфейс не поддерживается.

    Сложности в процессе решения:

    Согласно инструкции разработчиков, по словам ошибки «интерфейс не поддерживается» проделали следующее:

    1. Пользователю USR1CV82, от имени которого запускается сервер 1С, дать права на запуск DCOM MicrosoftWord и DCOM Microsoft Excel (при необходимости).

    Для этого нужно:

    1.1. Запустить службу компонентов. Из командной строки набрать

    mmccomexp.msc

    и найти компоненту Word или Excel. Пример для Word представлен на рисунке ниже:

    При запуске службы компонентов на 64-х разрядной машине, 32-х разрядные компоненты могут не отображаться, тогда запуск нужно осуществить через команду:

    C:WINDOWSSysWOW64>mmc comexp.msc /32

    1.2. Открыть свойства компоненты и перейти на закладку Безопасность.

    1.3. В разделе Разрешения на запуск выбрать пункт Настроить и нажать кнопку Изменить. Добавить пользователя USR1CV82.

    Не помогло, база выдавала ошибку: Данная команда недоступна, так как не открыт ни один документ.

    В ходе работ закончилась лицензия на MS Office, и в конфигурации после создания COM-объекта «Word.Application» на каждом шаге в отладке ОС запускает процесс завершения установки и активации MS Office. Клиент купил лицензию для сервера на MS Office.

    После установки лицензий вернулась ошибка -2147467262(0х80004002) Интерфейс не поддерживается.

    По словам разработчиков, перевод обработки Word на клиента не решит проблему. Судя по предоставленным нами логам — ошибка возникает в режиме веб-клиента. В этом режиме программная обработка Word на клиенте не возможна, только серверная обработка.

    Но для работы базы необходимо было решить данную проблему. Мы вернули все изменения, которые сделали по инструкции разработчика. Долго прорабатывали доступы к папкам временного хранилища для пользователей извне. Создали еще одного администратора без пользовательских настроек, для него заново настраивали IIS.

    Решение:

    Настроили работу сервера через Apache. Создали папку, в которой находятся редактируемые шаблоны Word, дали общий доступ к этой папке, для пользователя IUSR и группы пользователей IIS_users.

    На Windows Server 2012 (64 разрядности) установлен Word 2013 (32 разрядности), а у пользователей установлен Adobe Reader. Шаблон договора заполняется в 1С на сервере и конвертируется в PDF, сохраняется во временную папку на сервере.

    Мы переписали обработку, чтобы документ сохранился в формат PDF (по требованию клиента для запрета редактирования, изменения документа) и сохранялся во временное хранилище 1С. Из хранилища документ/файл передается на указанный нами путь (во временные папки у клиента), как для тонкого клиента, так и для веб-клиента. Открывается файл именно из этой временной папки. Ниже пример кода, который мы дописали для передачи файла с сервера на клиент.

    &НаКлиенте
    Попытка
    ЗапуститьПриложение(ПолноеИмяФайлаНаКлиенте);
    Исключение
    Адрес = УПН_ОбщиеПроцедуры.ПолучитьФайл(ПолноеИмяФайлаНаКлиенте);
    Описание = Новый ОписаниеПередаваемогоФайла(«C:doc» + ДанныеФайла.ИмяФайла,Адрес);
    МассивОписаний=Новый Массив;
    МассивОписаний.Добавить(Описание);
    ПолучитьФайлы(МассивОписаний,,,Ложь);
    ЗапуститьПриложение(«C:doc» + ДанныеФайла.ИмяФайла);
    КонецПопытки;

    &НаСервере
    Функция ПолучитьФайл(ПолноеИмяФайлаНаКлиенте) Экспорт
    Двоичное = Новый ДвоичныеДанные(ПолноеИмяФайлаНаКлиенте);
    Адрес = ПоместитьВоВременноеХранилище(Двоичное);
    Возврат Адрес
    КонецФункции

    В настроках Панель управления, далее путь: Администрирование->Управление групповой политикой->Домены – выбираем наш сервер и во вкладке «Делегирование» добавляем группу IIS_users и пользователя IUSR (через которого подключаются внешние пользователи).

    В веб-клиенте после отправки документа на печать браузе попросит установить расширение. Нужно установить, и все заработает:

    Предпочтительнее использовать Internet Explorer (IE) не ниже 8 версии. При использовании Google Chrome (гугл хром) возникает ошибка: Использование модальных окон в данном режиме запрещено.

    Если Internet Explorer не запускает документ на печать, можно принудительно запустить браузер от имени администратора:

    В тонком клиенте сразу открывается заполненный шаблон (на примере ниже стерты данные клиента). Форма открывается в формате PDF по требованию клиента, чтобы пользователь не мог редактировать документ перед печатью.

    Автор Истребитель, 22 июл 2015, 17:48

    0 Пользователей и 1 гость просматривают эту тему.

    При попытке создать COM объект Excel.Application вылезает стандартная ошибка:
    Ошибка получения объекта COM: -2147467262(0x80004002): No such interface support

    Однако, если открыть диспетчер задач, то приложение excel.exe запускается!
    Приложение excel x32, 1Cка тоже x32.
    В списках классов (HKLMSoftwareClasses) класс Excel.Application присутствует.
    Права на Distributed COM дал своему юзеру, перелогинился, не помогло, дал всем (Everyone), не помогло.
    База файловая.


    Попробуйте так


    Попытка
    ОбъектЭксель = ПолучитьCOMОбъект(СокрЛП(ФайлЗагрузки));//ФайлЗагрузки - путь к файлу. строка
    Исключение
    Сообщить("Неудачная попытка открытия файла:"+СокрЛП(ФайлЗагрузки));
    Возврат;
    КонецПопытки;


    КомОбъектЗагрузки = ОбъектЭксель.WorkSheets(1);


    Очень забавно. Если перед вызовом функции с параметрами (Путь,Excel.Application) вызвать её без указания Excel.Application то повторный вызов уже с указанием Excel.Application работает!

    Т.е. так работает:

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

    Так не работает:

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

    В любом случае, в дальнейшем вылезает вообще непонятная ошибка:

    {Форма.Форма.Форма(47)}: Ошибка при вызове метода контекста (ПрочитатьЛистExcel)
    ПрочитатьЛистExcel(,ПолучитьCOMОбъект(ИмяФайла));
    по причине:
    Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
    по причине:
    Ошибка преобразования данных XDTO:
    Запись значения свойства 'param':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}param
    по причине:
    Ошибка отображения типов:
    Отсутствует отображение для типа 'COMОбъект'


    Поздравляю, походу вы открыли для себя впервые особенности управляемого приложения.


    Ок, где мне почитать про эти «особенности» чтобы разобраться как выполнить такое простое задание, как чтение excel файла?


    Путем проб и ошибок
    Пробуйте «&НаСервере» всё это делать

    Помогли — Скажи спасибо! Решил сам — поделись решением!
    :)


    Не сочтите за издевательство: http://v8.1c.ru/metod/faq2/
    &НаКлиенте — это только форма, видимость,доступность, условное офомление и т.д.
    &НаСервере — это работа с объектами. Добавить строки, заполнить объект и т.д.

    С клиента можно вызывать сервер, наоборот — нельзя.

    Все прочие особенности = интернет большой, уверен справитесь


    Дааа. Простейшие вещи теперь хрен сделаешь. Почитал я это. Замечательно! Погуглил даже. Простейшая задача, неясно как решать.

    Я хочу создать программно документ, заполнить его на основании данных из экселя, и открыть.

    На клиенте я это сделать не могу, на клиенте «Документы» неопределена (нельзя создать документ). На сервере тоже не могу, нельзя открыть форму. На клиент нельзя передать ссылку на документ (когда пытаюсь сделать «Возврат Док», где Док это новый документ, вылезает ошибка передачи данных). Гугл «1с 8.3 передача документа с сервера на клиент» ничего не дал.

    Что делать?


    Остается сесть в углу и плакать.
    На клиенте формируете структуры с простыми данными (строки, даты и т.д.) передаете на сервер. Создаете/ищите  документ на сервере и возвращаете ссылку на документ.


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

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

    Быстрый переход

    • Особенности
    • Устранение:
      • Может оказаться, что  «Microsoft Excel Application» отсутствует в списке, в данном случае
    • Заключение

    Особенности

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

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

    Устранение:

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

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

    1. Запускаем REGEDIT
    2. Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.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

    2

    Показывать по
    10
    20
    40
    сообщений

    Новая тема

    Ответить

    pentanom

    Дата регистрации: 09.04.2014
    Сообщений: 40

    Необходимо сравнить данные в трех базах: УТ 10.3, БП 2.0 и Бух 7.7
    Хочу использовать для этого COM-подключение к базам 7.7 и 2.0 из УТ.
    Если базы поставить на Win XP, то COM-подключение работает.

    Начинается лето и некоторое время я хотел поработать на даче. Перенес базы на ноутбук с Win 8.1. Отдельно все базы доступны и с ними можно делать что угодно. Но COM-подключение не работает :(

    Выдается ошибка:
    Ошибка при вызове конструктора (COMОбъект)
    БазаОлеТек= Новый COMОбъект(«V77.Application»);
    по причине:
    -2147467262(0x80004002): Интерфейс не поддерживается

    Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ?

    Платформа 7.7 устанавливалась копированием.
    Для УТ и БП использовалась платформа 8.2 и 8.3

    Консультант 1С

    Дата регистрации: 06.09.2008
    Сообщений: 300

    pentanom пишет:

    Цитата
    Платформа 7.7 устанавливалась копированием

    Я впервые слышу об установке копированием.
    Почему бы не установить штатно?

    Рисовод

    Дата регистрации: 26.12.2007
    Сообщений: 25776

    Геннадий Новосибрск пишет:

    Цитата

                  pentanom пишет:

    Цитата
    Платформа 7.7 устанавливалась копированием

    Я впервые слышу об установке копированием.
    Почему бы не установить штатно?

    но бесплатно … :-)

    pentanom

    Дата регистрации: 09.04.2014
    Сообщений: 40

    Геннадий Новосибрск, На Win 8 (а также и на Win 7) штатно не устанавливается :(
    Почитайте об этом в интернете

    pentanom

    Дата регистрации: 09.04.2014
    Сообщений: 40

    Рисовод, Про «бесплатно» не понятно. Из установочного комплекта 7.7 в Win 8 не устанавливается :(
    Рекомендуют установить платформу на XP, а потом скопировать каталог, в который установлена 7.7, скопировать на компьютер с Win 8.
    Так и было сделано. Отдельно все базы доступны работают, а COM-подключение не работает.
    И причем здесь «бесплатно» ?

    Консультант 1С

    Дата регистрации: 06.09.2008
    Сообщений: 300

    pentanom пишет:

    Цитата
    Геннадий Новосибирск , На Win 8 (а также и на Win 7) штатно не устанавливается
    Почитайте об этом в интернете

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

    Там же в интернете и пишут — что делать… надо было очень постараться, чтобы понять это так, чтобы не работало и не устанавливалось…
    Первые 2 самых очевидных способа, среди множества других без установок копированием, которые находятся сразу поиском в интернете:

    • поднять виртуальную машину с Windows XP из под Windows 8.1 и там всё устанавливать без копирования
    • в свойствах файла запуска в разделе Совместимость отметить:
      — запустить программу в режиме совместимости c:
      Windows XP (Пакет Обновления 3)
      — Выполнять эту программу от имени администратора

    pentanom

    Дата регистрации: 09.04.2014
    Сообщений: 40

    Геннадий Новосибирск, Вопрос был: «Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ? «
    И хотелось бы получить ответ на этот вопрос.
    А если вы что-то советуете по поводу установки 7.7 на Вин 8, то сначала попробуйте сделать это.
    А если нечего ответить на мой вопрос, то и не надо отвечать вообще.

    pentanom

    Дата регистрации: 09.04.2014
    Сообщений: 40

    Копировать нужно в каталог Program Files (x86). Тогда COM-подключение работает. В XP можно копировать в любое место (хотя можно и установить из установочного комплекта).

    Денис (САМАРА)

    Дата регистрации: 09.04.2008
    Сообщений: 8351

    Цитата
    В XP можно копировать в любое место

    Это от того, что теперь есть разница между х86 и х64 приложениями. К какой категории относится 7.7 думаю сами догадаетесь… :)

    pentanom

    Дата регистрации: 09.04.2014
    Сообщений: 40

    Денис (САМАРА), теперь -то все умные. А что бы вначале об этом не сказать ?
    Лучше подскажите как эту тему закрыть.

    Настройка COM Объекта «Excel.Application» на сервере 1С, настройка поможет обработать большие файлы Excel на сервере 1C, в том числе через фоновые задания.
    Та же данная настройка может решить проблему с ошибкой 1С:

    ошибка -2147467262(0x80004002): Интерфейс не поддерживается
    1. Заходим на сервер приложений 1С под локальным админом или администратором домена
    2. Запускаем DCOMCNFG (Консоль настроек «Службы компонентов»)
      1. Открываем ветку Корень консоли -> Службы компонентов -> Компьютеры -> Мой компьютер -> Настройка DCOM
      2. Ищем «Microsoft Excel Application»
      3. Если запись существует, то переходим к пункту 4
      4. Закрываем «Службы компонентов»
    3. Настройка реестра
      1. Запускаем REGEDIT
      2. Открываем ветку КомпьютерHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
      3. Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
      4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты
      5. После этого в Component Services должен появиться «Microsoft Excel Application»
    4. Настраиваем свойства DCOM компонента «Microsoft Excel Application»
      1. Заходим в «Свойства», закладка «Безопасность»
        1. «Разрешения на запуск и активацию» — Настроить — Изменить
          1. Добавляем пользователя, под которым запускается агент сервера 1С
          2. Назначаем ему только следующие права (Разрешить):
            1. Локальный запуск
            2. Локальная активация
        2. «Разрешения на доступ» -Настроить — Изменить
          1. Добавляем пользователя, под которым запускается агент сервера 1С
          2. Назначаем ему только следующие права (Разрешить):
            1. Локальный доступ
      2. Переходим на вкладку «Удостоверение»
        1. Выбираем «Запускающий пользователь»
    5. Настройка системных папок
      1. Папка «C:WindowsSysWOW64configsystemprofileDesktop»
        1. Проверяем наличие папки , если нет -то создаем
        2. Заходим в «Свойства» этой папки, закладка «Безопасность»
        3. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
        4. Добавляем права «Чтение» и «Запись»
      2. Папка «C:WindowsSystem32configsystemprofileDesktop»
        1. Проверяем наличие папки , если нет -то создаем.
        2. Заходим в «Свойства» этой папки, закладка «Безопасность»
        3. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
        4. Добавляем права «Чтение» и «Запись»
    1. 13.11.2018, 09:23


      #31

      Akbar11 вне форума


      Пришел за помощью


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от avm3110
      Посмотреть сообщение

      А сколько есть попыток угадать какую именно библиотеку ставил «2 раза»? Где ставил (на клиенте или на сервере)? под какими правами (пользователя или админа)?

      Да и по синтаксису… У тебя в диагностике:

      Что явно указывает на ошибку — «лишняя запятая». Параметр «Excel.Application» должен быть

      первым :mad:
      правильно:
      ExcelApplication = Новый COMObject(«Excel.Application»);

      Теперь ошибка немного другая

      {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
      ExcelApplication = Новый COMObject(«Excel.Application»);
      по причине:
      -2147024891(0x80070005): Отказано в доступе.


    2. 13.11.2018, 12:13


      #32

      avm3110 вне форума


      Гордость форума PRO


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от Akbar11
      Посмотреть сообщение

      Регистрировал библиотеку на клиенте, под администратором. Той платформы которую запускаю

      Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
      Опишите поподробнее — как именно регистрируете «под администратором».


    3. 14.11.2018, 06:04


      #33

      Akbar11 вне форума


      Пришел за помощью


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от avm3110
      Посмотреть сообщение

      Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
      Опишите поподробнее — как именно регистрируете «под администратором».

      Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
      Клиент — сервер
      Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку


    4. 14.11.2018, 07:05


      #34

      avm3110 вне форума


      Гордость форума PRO


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от Akbar11
      Посмотреть сообщение

      Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
      Клиент — сервер
      Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку

      Мдя-я-я… все как в анекдоте…
      «Пьяный ходит вокруг фонаря ночью и о чем-то материться. Прохожий хочет помочь и участливо спрашивает в чем дело.
      Да я ключи потерял и уже полчаса не могу найти — следует ответ.
      прохожий оглядывает место под фонарем и удивляется. Да тут же ровный асфальт, сухо и отлично видно что ключей тут нет. Ты уверен что именно тут потерял?
      Да нет.. потерял я в грязной луже, вон там в подворотне. Но там же очень темно искать и очень грязно и очень мокро — поэтому я ищу именно тут».

      Уважаемый… У Вас диагностика «не зарегистрирован класс Excel.Application». Ну и что же вы хотите добиться «упорством достойного лучшего применения» регистрируя библиотеку 1с предприятия???? :mad:


    5. Пользователь сказал cпасибо:


    6. 14.11.2018, 07:10


      #35

      avm3110 вне форума


      Гордость форума PRO


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от Akbar11
      Посмотреть сообщение

      Теперь ошибка немного другая
      {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
      ExcelApplication = Новый COMObject(«Excel.Application»);
      по причине:
      -2147024891(0x80070005): Отказано в доступе.

      А эта ошибка показывает, что пользователю под которым выполняется строка
      ExcelApplication = Новый COMObject(«Excel.Application»);
      нет прав на создание ком-объекта.

      У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.


    7. 14.11.2018, 08:14


      #36

      Akbar11 вне форума


      Пришел за помощью


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от avm3110
      Посмотреть сообщение

      А эта ошибка показывает, что пользователю под которым выполняется строка
      ExcelApplication = Новый COMObject(«Excel.Application»);
      нет прав на создание ком-объекта.

      У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.

      В файловой все работает, даже не под админимон


    8. 14.11.2018, 13:33


      #37

      avm3110 вне форума


      Гордость форума PRO


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от Akbar11
      Посмотреть сообщение

      В файловой все работает, даже не под админимон

      Поднимите файловую на сервере и там попробуйте.

      Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.

      Пришлите вначале результаты этого тестирования


    9. 27.11.2018, 03:06


      #38

      Akbar11 вне форума


      Пришел за помощью


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от avm3110
      Посмотреть сообщение

      Поднимите файловую на сервере и там попробуйте.

      Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.

      Пришлите вначале результаты этого тестирования

      Здравствуйте. В файловой на сервере все работает

      Последний раз редактировалось Akbar11; 27.11.2018 в 03:23.


    10. 27.11.2018, 03:26


      #39

      Akbar11 вне форума


      Пришел за помощью


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      На сервере ошибка

      {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
      ExcelApplication = Новый COMObject(«Excel.Application»);
      по причине:
      -2147467262(0x80004002): Интерфейс не поддерживается


    11. 27.11.2018, 07:59


      #40

      avm3110 вне форума


      Гордость форума PRO


      По умолчанию Re: Ошибка при вызове конструктора (COMObject)

      Цитата Сообщение от Akbar11
      Посмотреть сообщение

      В файловой на сервере все работает
      На сервере ошибка

      ну е-е-е-е… еще раз.. выше уже писал… Если на одном и том же компе одна и та же база поднята в файловом режиме, а затем в клиент-серверном (когда и сервер и клиент это один и тот же ком). И при этом на файловом «все работает», а на клиент-сервере подобная ошибка — следовательно проблема в правах под которым работает база.

      При файл серверном — это права пользователя под которым идет запуск базы, а на клиент сервере это права пользователя под которым крутиться сервер 1С предприятия.

      Решение — смотреть и фиксить эти права. Например как описано тут: — http://buh.ruboard.ru/public/196323/


    Похожие темы

    1. Ответов: 1

      Последнее сообщение: 08.06.2017, 00:12

    2. Ответов: 9

      Последнее сообщение: 16.04.2014, 12:50

    3. Ответов: 0

      Последнее сообщение: 27.02.2014, 22:04

    4. Ответов: 2

      Последнее сообщение: 12.08.2013, 13:34

    5. Ответов: 1

      Последнее сообщение: 27.06.2013, 19:33

    Социальные закладки

    Социальные закладки


    Ваши права

    • Вы не можете создавать новые темы
    • Вы не можете отвечать в темах
    • Вы не можете прикреплять вложения
    • Вы не можете редактировать свои сообщения
    •  
    • BB коды Вкл.
    • Смайлы Вкл.
    • [IMG] код Вкл.
    • [VIDEO] код Вкл.
    • HTML код Выкл.

    Правила форума

    Понравилась статья? Поделить с друзьями:
  • Ошибка преобразование значения к типу дата не может быть выполнено 1с как исправить
  • Ошибка при вызове конструктора comобъект 2147221164 0x80040154 класс не зарегистрирован
  • Ошибка при восстановлении ошибка 3004
  • Ошибка премьер про файл имеет неподдерживаемый тип сжатия
  • Ошибка при вызове конструктора comобъект 2147221005 0x800401f3 invalid class string