Ошибка при вызове метода контекста загрузитьвнешнююкомпоненту ошибка при загрузке внешней компоненты

УФ не загружается внешняя компонента

Я
   askharlov

29.07.14 — 00:56

Доброго времени суток всем!

Проблемка: не загружается внешняя компонента в УФ.

В обычных формах отрабатывает, в УФ не работает ни &НаКлиенте, ни &НаСервере. Вот код:

Попытка

    ЗагрузитьВнешнююКомпоненту(«C:Program Files (x86)1cv828.2.18.61binrs232.dll»);

Исключение

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

    Возврат Ложь;

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

На УФ выдает ошибку «{Форма.Форма.Форма(22)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): Ошибка при загрузке внешней компоненты»

Книгу знаний http://kb.mista.ru/article.php?id=419 прочитал. Не помогло.

Компоненту успешно зарегистрировал (хоть на обычных формах это не требовалось), наличие веток в реестре проверил.

В чем еще может быть проблема?

Пока писал возникла мысль: а может сама компонента работать только с обычными формами и не работать с управляемыми? Эта компонента работает с COM-портом.

   askharlov

1 — 29.07.14 — 00:56

+(1) Загружал 1С под админом

   jsmith

2 — 29.07.14 — 01:18

я делаю так

    Макет=ОбщийМодульМакет.ЗаписатьМакетНаДиск();

    ИмяФайла=КаталогВременныхФайлов()+»Hook1c.dll»;

    Макет.Записать(ИмяФайла);

    Результат = ПодключитьВнешнююКомпоненту(ИмяФайла, «Hook», ТипВнешнейКомпоненты.Native);

   jsmith

3 — 29.07.14 — 01:21

ну и далее

&НаКлиенте

Процедура ПриОткрытии(Отказ)    

    КомпонентаKeyBoardHook = Новый(«AddIn.Hook.KeyboardHook»);    

    
КонецПроцедуры

&НаКлиенте

Процедура ПриЗакрытии()

    
    КомпонентаKeyBoardHook    = Неопределено;

    
КонецПроцедуры

   jsmith

4 — 29.07.14 — 01:23

и это ещё

&НаСервере

Функция ЗаписатьМакетНаДиск() Экспорт

    Макет    = ПолучитьОбщийМакет(«Hook1c»);

    Возврат Макет;

КонецФункции

   jsmith

5 — 29.07.14 — 01:24

мда, явно требуется рефакторинг

хорошо, что напомнили

   askharlov

6 — 29.07.14 — 15:00

(2) Спасибо. А какой код в процедуре  Макет=ОбщийМодульМакет.ЗаписатьМакетНаДиск() ?

У меня самописка и этого модуля нет, в тех парочке конфигураций на УФ, которые мне доступны этого модуля тоже нет.

Скинь мне, пож-та, листинг кода.

   askharlov

7 — 29.07.14 — 15:08

+ (0) В продолжении темы:

Нашел в Интернете код:

Попытка

    УстановитьВнешнююКомпоненту(«C:Program Files (x86)1cv828.2.18.61binrs232.zip»);

    //ПодключитьВнешнююКомпоненту(КаталогПрограммы() + «rs232.zip», «rs232», ТипВнешнейКомпоненты.Native);

Исключение

    Сообщить(«Не удалось загрузить внешнюю компоненту!»);

    Возврат Ложь;

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

Исключения не возникает, но УстановитьВнешнююКомпоненту выдает ошибку: «Установка внешней компоненты не выполнена! В процессе установки произошла ошибка!»

Строку ПодключитьВнешнююКомпоненту пока закомментировал, так как ошибка возникает на предыдущей строчке.

  

askharlov

8 — 29.07.14 — 15:23

+(0) Пробую подключить внешнюю компоненту на сервере без установки:

&НаСервере

Функция ОткрытьПорт()

    Попытка

        ПодключитьВнешнююКомпоненту(КаталогПрограммы() + «rs232.dll», «rs232», ТипВнешнейКомпоненты.Native);

    Исключение

        Сообщить(«Не удалось загрузить внешнюю компоненту!»);

        Возврат Ложь;

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

    Попытка

        КОМПорт = Новый(«Addin.rs232»);

        КОМПорт.ОткрытьПорт(Порт.Наименование);

        Возврат Истина;

    Исключение

        Сообщить(«Не удалось открыть порт » + Порт);

        Возврат Ложь;

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

КонецФункции

Получаю ошибку уже на строку Новый(«Addin.rs232»):

«Тип не определен (Addin.rs232)»

Добрый день.
Используется:
Windows8.1 x64, 1С:Предприятие 8.3 (8.3.13.1644), ARM_ORION_PRO1_20_2
Orion1C.dll ,брал из каталога 1C_WorkTime, в каталоге находятся Orion1C.sil и Orion1C.dll
при использовании Example1.exe и Example2.exe все происходит корректно

На текущий момент такая ошибка при использовании метода в 1с 
ЗагрузитьВнешнююКомпоненту(«Orion1C.dll»); выдает ошибку
«Не смогли загрузить внешнюю компоненту.» 
ОписаниеОшибки() = «Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): Ошибка при загрузке внешней компоненты»
Пробовал указать полный путь к местонахождению dll, ошибка та же.

При попытке зарегистрировать компоненту с помощь. regsvr32 выходит ошибка,
«модуль  … Orion1C.dll загружен, но не удалось выполнить вызов DLLRegisterServer, код ошибки: 0х80004005»
Подскажите что можно сделать.

3 года 1 месяц назад

avatar

#ссылка

0 ответов

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ЗАДАН

3 года 1 месяц назад

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.

 

Юрий

Заглянувший

Сообщений: 113
Авторитет:

20

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

Альфа-Авто:Автосалон+Автосервис+Автозапчасти Проф, редакция 5

Имеется терминальный сервер S1 которому подключены с помощью удрабстола пользователи домена A и B. Пользователь домена A не испытывает никаких проблем при запуске Альфа-Авто. У пользователя домена B при запуске возникает ошибка «Ошибка при загрузке компоненты управления оборудованием: {Обработка.Защита.МодульОбъекта(24)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): ошибка при загрузке внешней компоненты».

Система защиты конфигурации Альфа-Авто установлена на этом же сервере S1. Права пользователей домена одинаковые (пользователь B создан копированием пользователя А в оснастке AD), доступ к папке C:ProgramDataProtectLocalProtect имеется для всех пользователей домена.

Пользователь B не может зайти в Альфа-Авто ни под одним пользователем Альфа-Авто, в том числе под Администратором Альфа-Авто. Также не помогает временное предоставление пользователю домена B прав администратора домена.

Прошу помочь в решении проблемы

 

При первом запуске программы необходимо зарегистрировать компоненту RarusEquipment.dll. Можно зарегистрировать разными способами.
Можно произвести первый запуск программы от имени администратора, для этого на иконке 1С открыть контекстное меню и выбрать пункт «Запуск от имени администратора».
Можно способами описанными ниже.

Прикрепленные файлы

 

Юрий

Заглянувший

Сообщений: 113
Авторитет:

20

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

#3



1


07.03.2014 15:16:24

Цитата
Светлана Рожок пишет:
При первом запуске программы необходимо зарегистрировать компоненту RarusEquipment.dll. Можно зарегистрировать разными способами.

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

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

——————
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareClassesAddIn.RarusEquipment]
@=»AddIn 2.0″

[HKEY_CURRENT_USERSoftwareClassesAddIn.RarusEquipmentClsid]
@=»{1E4BE968-CBCE-451F-876C-0A9E28CC795E}»

——————
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareClassesWow6432NodeCLSID{1E4BE968-CBCE-451F-876C-0A9E28CC795E}]
@=»AddIn 2.0″

[HKEY_CURRENT_USERSoftwareClassesWow6432NodeCLSID{1E4BE968-CBCE-451F-876C-0A9E28CC795E}InprocServer32]
@=»C:\ProgramData\Protect\LocalProtect\RarusEquipment.dll»
«ThreadingModel»=»Apartment»

[HKEY_CURRENT_USERSoftwareClassesWow6432NodeCLSID{1E4BE968-CBCE-451F-876C-0A9E28CC795E}ProgID]
@=»AddIn.RarusEquipment»

Прикрепленные файлы

  • AA Equipment 1.reg (456 Б)
  • AA Equipment 2.reg (978 Б)

 

Добрый день!! Не помогает ни один из вариантов. У меня тоже самое, за исключением МодульОбъекта(25) и пользователи заходят, но без оборудования. Виндовс 8.1, платформа 8.3.5.1460, конфигурация Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1 (5.1.01.05). При этом при попытке перерегистрации компоненты через regsvr32 конфигурация вообще отказывается работать, пишет конфигурация оборудования не найдена 1% и бесконечный поиск — после перерегистрации помогает только переустановка платформы. Пробовал на более свежей платформе, но там еще докучи и ошибка потока при заходе в базу нескольких пользователей.

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

Изменено: Роман Конопелько08.06.2015 17:33:40

 

Добрый день, Роман, уточните, пожалуйста, из какого релиза Вы ставили систему управления оборудованием?

 

Добрый день!! вот из этого 5.1.01.05.

 

Уточните, пожалуйста, какую компоненту и как Вы регистрировали?

 

Есть возможная причина всего этого. При установке виндовс в обязательном порядке была зарегестрирована учетная запись майкрософт под именем Техресурс. В дальнейшем учетную запись отключили (до установки 1С) и подключили локальную учетную запись USER. В итоге была проблема с доступом к базе по локальной сети, так как есть какая-то неразбериха с путями. Папка пользователя осталась называться как учетная запись майкрософт, то есть выглядит usersТехресурсDocuments , а 1С искала базу по пути usersuserdocuments  — пришлось пути до базы прописывать на локальных компьютерах вручную. Возможно в этом вся проблема, но папку техресурс сейчас переименовать в user невозможно. Сам виндовс проверяли на целостность ситемы, все в норме.

Изменено: Роман Конопелько09.06.2015 11:27:05

 

Регистрировали вот эту компоненту RarusEquipment.dll При всем при этом, на компьютере где все работает, дополнительную перерегистрацию компоненты делать не потребовалось, все установилось по умолчанию, но установка виндовс там была несколько другой, там виндовс встал без учетки майкрософт, сразу на локального пользователя (установка виндовс была не чистая, а было обновление с ХР до 8.0 и далее до 8.1) и соответственно на этом компьютере все пути так сказать прямые, пользователь user и все личные папки тоже под этим же именем.

Изменено: Роман Конопелько09.06.2015 11:39:36

 

#10



0


09.06.2015 15:57:45

Роман, необходимо к Вам удаленно подключиться для решения ситуации на месте. Вышлите, пожалуйста, на alfa@rarus.ru контактные данные и  удобное для Вас время подключения со ссылкой на данную ветку форума.

 

Роман Конопелько

Заглянувший

Сообщений: 26
Авторитет:

0

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

#11



0


09.06.2015 18:07:41

Цитата
Светлана Сулименко пишет:
Роман, необходимо к Вам удаленно подключиться для решения ситуации на месте. Вышлите, пожалуйста, на alfa@rarus.ru контактные данные и  удобное для Вас время подключения со ссылкой на данную ветку форума.

На данный момент решаю с майкрософт проблему переименования папки профиля пользователя, точнее уже решил (там администрирование+правка реестра). Сейчас выполню переустановку 1С проверю работоспособность, отпишусь.

 

#12



0


09.06.2015 18:27:28

Переименование папки профиля не помогает, та же ошибка. А с alfa@rarus.ru мне не ответят, сейчас поддержка только на обновление. Один маленький вопрос, если я удалю сервер лицензирования (этого я ни разу не делал еще), то лицензия слетит ??? А то последний резервный пин уже использован.

 

#13



1


09.06.2015 19:42:56

В итоге справился своими силами. Не знаю что уж там у меня было не так, но технология с плясками такая получилась :

1.Из папки C:ProgramDataProtectLocalProtect удаляем файл config.xml .
2.Далее запускаем конфигурацию, появляется мастер настройки оборудования с вопросом установить оборудование или нет, ставим да, запрашивает рабочую папку (вот эту C:ProgramDataProtectLocalProtect) — оставляем по умолчанию.
3.Далее просит указать дистрибьютив с установочным диском ( у меня на жестком диске записан) и файлом установки оборудования EquipmentSetup.exe, который в папке Equipment.
4.Далее при нажитии кнопки закрывается 1С и пошла установка оборудования.
5.И вот теперь после установки оборудования я так думаю самое главное. Само оборудование я и раньше устанавливал-переустанавливал, результатов не было. Идея я так понял такая, что первый запуск надо делать с правами администратора при чем однократный. Запуск от имени администратора я сделал не с ярлыка рабочего стола (как делал раньше), а с файла C:Program Files1cv88.3.5.1460bin1cv8.exe — то есть запустил с папки установленной платформы и никаких ошибок больше нет. Теперь полет нормальный.

Изменено: Роман Конопелько09.06.2015 19:45:28

 

#14



0


10.06.2015 10:27:19

Добрый день!! Что-то все рано не так работает. На компьютере 2 базы. В одну базу входит нормально, в другую с отключенным оборудованием из под администратора, если без администратора вообще не может найти сервер лицензирования.

 

#15



0


10.06.2015 10:43:49

Роман, сервер лицензирования ищет в автоматическом поиске? Если да, поставьте указание сервера лицензирования вручную.

 

Роман Конопелько

Заглянувший

Сообщений: 26
Авторитет:

0

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

#16



0


10.06.2015 11:32:07

Цитата
Светлана Сулименко пишет:
Роман, сервер лицензирования ищет в автоматическом поиске? Если да, поставьте указание сервера лицензирования вручную.

В том и дело, автоматически ищют локальные компьютеры, сейчас там все нормально. Лагает компьютер сервер.

 

#17



0


10.06.2015 11:35:09

Попробую проделать все тоже самое что у же делал, но запущу все базы первый запуск от имени администратора и удалю ветки реестра с предложения выше от Юрия.

 

#18



0


10.06.2015 11:41:31

Еще заметил, что все программы установщики от рарус попадают в касперский с ограничениями, абсолютно все, от фалов автозапуска до установки сервера лицензирования.

 

Светлана Сулименко

Посетитель

Сообщений: 8926
Авторитет:

265

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

#19



0


10.06.2015 11:50:28

Цитата
Роман Конопелько пишет:
Еще заметил, что все программы установщики от рарус попадают в касперский с ограничениями, абсолютно все, от фалов автозапуска до установки сервера лицензирования.

Необходимо вносить их в исключения в антивирусе.

 

#20



0


10.06.2015 16:20:54

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

 

Максим Козлов

Заглянувший

Сообщений: 7
Авторитет:

0

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

#21



0


07.11.2016 18:00:19

Здравствуйте. Столкнулся с аналогичной ошибкой при запуске программы. Продукт приобрел и установил недавно. Компоненту регистрировал, как описывала Светлана Рожок в текстовом документе. Изменений никаких. Подскажите, что делать?

 

#22



0


07.11.2016 18:18:38

Добрый день, Максим, уточните, пожалуйста, скрин ошибки, которая выдается.

 

Максим Козлов

Заглянувший

Сообщений: 7
Авторитет:

0

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

#23



0


07.11.2016 18:32:42

Да, конечно.

Прикрепленные файлы

 

#24



0


08.11.2016 09:09:58

Максим, уточните. пожалуйста, что конкретно Вы делали по установке компоненты оборудования?

 

Максим Козлов

Заглянувший

Сообщений: 7
Авторитет:

0

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

#25



0


08.11.2016 09:30:45

Цитата
Светлана Сулименко написал:
Максим, уточните. пожалуйста, что конкретно Вы делали по установке компоненты оборудования?

Выполнил установку драйверов с диска Альфы. После прочтения данной темы попытался зарегистрировать компоненту, как описано в текстовом файле выше. Больше ничего.

Добрый день!
Проверьте в реестре, что никакие компоненты больше не зарегистрированы, при необходимости, разрегистрируйте их.

  1. Зайти в реестр (<Win+R> — «regedit»).
  2. Запустить поиск (Ctrl+F) по строке «AddIn.DiadocInvoiceApi» (Поиск пойдет от выделенной ветки. Таким образом Вы можете, например, пропустить поиск по ветке HKEY_CLASSES_ROOT).
  3. Ищете записи о компоненте в ветках реестра:
    HKEY_CLASSES_ROOT — повторите поиск, нажав F3.
    HKEY_LOCAL_MACHINE — это значит, что компонента была зарегистрирована под всех пользователей и скорее всего для регистрации потребуется запуск консоли от имени администратора.
    HKEY_CURRENT_USER — это значит, что компонента зарегистрирована под текущего пользователя.
    HKEY_USERS<SID> — это значит, что компонента зарегистрирована под пользователя с указанным SID. SID-ы других пользователей может смотреть только администратор. При работе от пользователя  увидите только ветку с SID текущего пользователя.
  4. Рядом с найденной веткой найдите ветку «AddIn.DiadocInvoiceApi.1CLSID». Зайдите в неё и скопируйте значение из параметра по умолчанию.
  5. Запустите поиск по этому значению.
  6.  В найденной ветке будет подветка «InprocServer32». В параметре «InprocServer32» по умолчанию будет указан путь до компоненты (именно по этому пути Windows ищет компоненту).
  7. Если автоматическая регистрация компоненты не срабатывает, тогда:
    Если в реестре вы нашли другие зарегистрированные компоненты Диадок, то их необходимо разрегистрировать. В случаях, когда указанного в реестре каталога или файла не существует, их необходимо создать.
    После того, как все компоненты будут разрегистрированы, удалите компоненты с диска ( Shift + Del ). После успешной разрегистрации компоненты веток с именем «AddIn.DiadocInvoiceApi» оставаться не должно.

После этого:
1 Закройте 1С
2. Запустите консоль от имени администратора и введите следующие команды:
2.1 C:WindowsSystem32regsvr32.exe /u «полный путь до компоненты»
2.2 C:WindowsSystem32regsvr32.exe /i «полный путь до компоненты»
2.3 C:WindowsSystem32regsvr32.exe /i:user «полный путь до компоненты»
2.4 C:WindowsSystem32regsvr32.exe /u «полный путь до компоненты»
2.5 C:WindowsSystem32regsvr32.exe /i:user «полный путь до компоненты»
3. Все действия в консоли обязательно проделать до конца.
4. После выполнения действий проверьте работу модуля.

Определения:
«полный путь до компоненты» — пример «C:UserspermikinAppDataLocalTempAddInDiadocAPI_5_28_6_502_x86_64.dll»

При разрегистрации может возникнуть ошибка с кодом «0x80070005» или «0х80004005» это значит, что консоль запущена без прав администратора, либо что по указанному пути нет компоненты.

Если возникнут трудности при проверке или регистрации компоненты, напишите об этом.

Подскажите в чем косяк 1С 8.3.10.2561 Код — Попытка При исполении ЗагрузитьВнешнююКомпоненту(Файл.ПолноеИмя); выпадает в исключение. Ошибка —  Обращение к процедуре как к функции (ЗагрузитьВнешнююКомпоненту)

на сервере тыкаешь локальный путь

Да. Что его смущает? На 1с 8.2.19.130 работает

а ты попробуй ручками ввести путь на сервере,что получишь

в отладчике что ли смотришь?

Путь рабочий , переделал на шару — результат тот же. Да.

В отладчике внес путь вручную — результат тот же. Присутствие файла проверяется в коде — результат тру.

а что не понятно во фразе «Обращение к процедуре как к функции»?

в коде нету х = функция(…)

ошибка при использовании отладчика или нет?

ЗагрузитьВнешнююКомпоненту(Файл.ПолноеИмя); Я обращаюсь как к процедуре.

Ошибку я  вижу в табло и в Выражение. ОписаниеОшибки пустое.

Да ошибку вижу при использовании отладчика.

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

Логично =) В исключение он все равно выпадает, т.е. есть какая-то ошибка, корректность пути проверена. Загружаю v8add. Куда еще посмотреть?

{МодульОбычногоПриложения(1192)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту)                 ЗагрузитьВнешнююКомпоненту(Файл.ПолноеИмя); по причине: Ошибка при загрузке внешней компоненты

Пробовал — проблема осталась.

перезапуск сервера помогает?

А все так, что в полном имени?

нет. v8add  версия 2.2.1 СЕ

C:Program Files1cv82v8add.dll

UAC выключен. Windows 2008 Serv.

А запусти 1с так: «Запустить от имени администратора»,

А что показывает ОписаниеОшибки?

Нетленка не работает с 1С старше 8.3.5

Да. Пустой. Есть что юзать для старше 8.3.5?

Пишется 3 -ая версия, но медленно.

Тэги: 1С 8

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

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