Addhook dll ошибка при загрузке внешней компоненты

Ключевые слова: внешняя компонента, ошибка, отсутствует, CLSID, загрузка, не загружается, объект, компонента, DLL, реестр

Загрузка внешних компонент в 1С:Предприятие версии 8

    ЗагрузитьВнешнююКомпоненту("E:\Events\Events.dll"); 
    test = Новый("Addin.Events");
    Сообщить(test.CreateGUID());

В отличие от 7.7 необходимо указывать полный путь к DLL (или положить файл DLL в папку BIN платформы 1С:Предприятие). Вместо СоздатьОбъект(«Addin.Имя») используется Новый(«Addin.Имя»), использовать при этом ключевое слово COMОбъект не нужно.

Хранение записей о внешних компонентах в реестре Windows

Зарегистрированная внешняя компонента хранится в реестре следующим образом.

Предположим, что у нас есть внешняя компонента E:\Events\Events.dll.

В 1С мы пишем:

ЗагрузитьВнешнююКомпоненту("e:\Events\Events.dll");
vk=СоздатьОбъект("Addin.Events");

Теперь зайдем в программу regedit.exe (Пуск-Выполнить-Regedit.exe).

Если регистрация прошла успешно, то в реестре мы увидим следующие записи (я сделал поиск по подстроке «AddIn.Events» в редакторе реестра regedit.exe, нажав сочетание клавиш Ctrl-F):

[HKEY_CLASSES_ROOT\AddIn.Events\Clsid]
@="{2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397}"

[HKEY_CLASSES_ROOT\CLSID\{2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397}]
@="V7 AddIn 2.0"

[HKEY_CLASSES_ROOT\CLSID\{2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397}\InprocServer32]
@="E:\\Events\\Events.dll"

[HKEY_CLASSES_ROOT\CLSID\{2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397}\ProgID]
@="AddIn.Events"

Значение {2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397} является уникальным для каждого OLE-объекта идентификатором (CLSID). Его должен явно задать разработчик в коде внешней компоненты.

Значение ProgID, которое в нашем случае — «AddIn.Events» также задает разработчик внешней компоненты.

Чтобы в реестре появились эти записи, необходимы права доступа

Начиная с Windows 2000, обычный пользователь не имеет прав доступа к указанным выше ветвям реестра. Нужны права или администратора, или привилегированного пользователя Windows. После первой загрузки компонента пропишет себя в реестре, и ее смогут использовать и непривилегированные пользователи Windows.

Где 1С ищет внешнюю компоненту?

Если при загрузке внешней компоненты вы не указываете полный путь, такой как E:\Events\Events.dll или сетевой путь наподобие \\ВашСервер\ПапкаГдеЛежатВК\Events.dll, то 1С ищет внешние компоненты

-относительно папки 1Cv7\BIN (КаталогПрограммы())

-относительно каталога информационной базы (КаталогИБ())

Метод ЗагрузитьВнешнююКомпоненту(), обнаружив ВК по новому пути, обновляет ее регистрацию в реестре

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

Аналогичная проблема — когда ВК по данному пути недоступна тем или иным пользователям.

А поскольку пользователи не имеют права на изменение записей в реестре, то у них перестанет загружаться и внешняя компонента.

В 1С:Предприятие 8.0 убрана возможность загрузки ВК относительно каталога ИБ.

В 7.7 же, чтобы избежать проблем, всегда убирайте ВК из каталога ИБ, и прописывайте полные пути (или складывайте DLL в общую для всех пользователей папку BIN).

Кардинальное решение проблемы — VKLoader

Имеется компонента VKLoader.dll (автор — Александр Орефков), которая позволяет решить проблемы с регистрацией компонент.

http://openconf.1cpp.ru/vk/vkloader/

Цитата:

«vkloader (далее ВК) — внешняя компонента для 1С-Предприятия 7.7, которая может загружаться без ее регистрации в реестре, и загружать другие внешние компоненты без их регистрации. Предназначена для беспроблемной загрузки внешних компонент пользователями, не имеющими прав на запись в HKCR ветку реестра.

Принцип работы основан на перехвате обращения 1С к WinAPI функциям CLSIDFromProgID и CoCreateInstance.

Также ВК решает проблему «зависания» процесса 1С в памяти при закрытии программы при использовании несовсем корректно написанных сторонних внешних компонент».

Пример использования vkloader:

ЗагрузитьВнешнююКомпоненту("vkloader.dll"); //регистрации не требует
Загрузчик = СоздатьОбъект("ЗагрузчикВК");
Результат = Загрузчик.ЗагрузитьВК("Events.dll", "Addin.Events=2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397");

Замечу, что сама vkloader «умеет» загружать себя без прав доступа к реестру.

Еще одно решение: RegsvrEx

Автор — AlexQC.

Регистрирует компоненты (OLE-объекты) в пользовательской ветке реестра.

http://infostart.ru/projects/index.php?id=559

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

Попытка
    Объект=СоздатьОбъект("cool.object");
Исключение
    ИмяДЛЛ=КаталогИБ()+"cool.ocx";
    КомандаСистемы(КаталогИБ()+"regsvrex.exe /s /c "+ИмяДЛЛ);
    Попытка
        Объект=СоздатьОбъект("cool.object");
    Исключение
        Сообщить("Ошибка загрузки компоненты: "+ИмяDLL,"!");
    КонецПопытки;
КонецПопытки;

Самая простая причина неполадок

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

    имяф="e:\Events\Events.dll";
    Если фс.СуществуетФайл(имяф)=0 Тогда
        Сообщить("Файл не найден: "+имяф,"!"); 
    КонецЕсли;    
    Если ЗагрузитьВнешнююКомпоненту(имяф)=0 Тогда
        Сообщить("Ошибка загрузки внешней компоненты: "+имяф);
    КонецЕсли;    
    vk=СоздатьОбъект("Addin.Events");

Дополнительно:

Для старта внешней компоненты DynamicModuleServer.dll на Windows Server 2003 необходимо добавить исполняемый файл (1cv7s.exe) в исключения из механизма Windows под названием DEP (Data Execution Prevention): Control Panel -> System -> Advanced ->Performance Settings ->Data Execution Prevention

См. также:

Книга знаний: PLUGIN_VKLOADER — загрузка внешних компонент без регистрации в реестре

Добрый день.
Используется:
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 года 4 месяца назад

avatar

#ссылка

0 ответов

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

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

ЗАДАН

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

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

Содержание:

1.       Появление ошибки не найден файл внешней компоненты 1С

2.       Исправляем данную ошибку в системе 1С  

1.   Появление ошибки не найден файл внешней компоненты 1С

При работе в системе 1С Предприятии 8.3 может появится сообщение о том, что не найден файл внешней компоненты 1С. Опытному программисту 1С ошибка весьма понятна, но будем действовать последовательно. Для начала нужно рассмотреть все варианты ее появления. Внешние компоненты 1С 8.3 используются для работы со сторонними сервисами:

·        для банковских выписок;

·        для мониторинга банков;

·        для регистрации;

·        для склонения имен;

·        сервисом «СПАРК риски»;

·        для формирования штрихкодов;

·        прочими сервисами.  

2.   Как избавится от данной ошибки в системе 1С

Зачастую за сервисы, которые используются в базе отвечают конкретная константа и функциональная опция, поэтому в первую очередь следует проверить, установлено ли на данной константе в состояние «Истина».

Если ошибка в системе 1С появилась недавно, а до этого момента все работало нормально, предлагается почистить кэш 1С, а также перезагрузить сервер. Если данная рекомендация не помогла, следует проверить наличие регистра сведений «Кэш файлов». Для этого нужно в главном меню открыть пункт «Все функции», далее выбрать «регистры сведений», а затем найти регистр «Кэш файлов» и нажать кнопку «Очистить кэш». После этого нужно перезапустить платформу.

Если в результате данных манипуляций ошибка все еще появляется, следует проверить, как называется данная компонента в конфигураторе и зарегистрировать ее в системе Windows. Для этого нужно открыть командную строку Windows под правами администратора и использовать команду regsvr32 «<Путь к компоненте>», где «<Путь к компоненте>» – путь к компоненте (*.dll). Пример регистрации компоненты «comcntr.dll»:

Пример регистрации компоненты comcntr.dll

После удачной регистрации компоненты обязательно нужно перезапустить службу агента 1С.

Может возникнуть вопрос, «где же взять файл компоненты?». Некоторые компоненты идут в самой поставке платформы 1С. Ярким примером такой компоненты является «comcntr.dll». Данная компонента отвечает за COM соединения, что позволяет обмениваться данными между базами и сервисами по данной технологии. Остальные компоненты зачастую предоставляются сервисами, которые вы используете.

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

Спасибо за уделенное внимание и пусть Ваши дела всегда идут только в гору!

Специалист компании ООО «Кодерлайн»

Кулажевский Сергей Дмитриевич

The 1C:Enterprise developers forum

#1

Jun 30, 2018 05:51 AM

Active user


Rating:

5



Joined: Mar 6, 2018
Company: Bodega LLC

Hello!

I have another question. I have two usb rfid-card reader which are working as a keyboard. I want to know wich reader sends codes of card. I found such kind of program pice but it did not work…

//Компонента AddHook.dll служит для перехвата событий клавиатуры.
//Подключение внешней компоненты AddHook.dll должно находиться в процедуре «ПриНачалеРаботыСистемы» или «ПриОткрытии».
//Переменную «GlobalReg» нужно объявить в глобальном модуле (Перем GlobalReg Экспорт;).
Процедура ПриНачалеРаботыСистемы()
   ЗагрузитьВнешнююКомпоненту(«AddHook.dll»);
   GlobalReg = Новый(«AddIn.AddHookExtension»);
   GlobalReg.HookEnabled = 1;    // Включаем Hook
КонецПроцедуры

//В процедуре «ПередЗавершениемРаботыСистемы» необходимо отключить внешнюю компоненту AddHook.dll
Процедура ПередЗавершениемРаботыСистемы(Отказ)
   GlobalReg.HookEnabled = 0;
   GlobalReg = 0;
КонецПроцедуры

//Обработка событий клавиатуры должна находиться в процедуре «ВнешнееСобытие(Источник, Событие, Данные)»
Процедура ВнешнееСобытие(Источник, Событие, Данные)
   Если Данные = «00038» Тогда
       Сообщить(«Нажата кнопка Стрелка вверх»);
   КонецЕсли;
КонецПроцедуры

Note: «ExternalEvent» can use for such kind of situations?


 
eyup yilmaz

#2

Jun 30, 2018 08:13 AM

Active user


Rating:

5



Joined: Mar 6, 2018
Company: Bodega LLC

Or is there any way to understand entering data is coming from barcode-reader or keyboard?


 
Vladimir Gurov

#3

Jul 02, 2018 08:18 AM

Interested


Rating:

16



Joined: Dec 4, 2017
Company:

Dear eyup yilmaz!

When you have several devices working in keyboard mode, in general there is no way to distinguish the output of one device from that of another device. It all comes from keyboard.

You can use a trick: add a particular prefix to the output of a particular device. Say, the «#» prefix for your RFID reader, and the «*» prefix for your barcode scanner. As a result, you will be able to see what comes from which device.

Best regards,
Vladimir Gurov


 
eyup yilmaz

#4

Jul 02, 2018 06:53 PM

Active user


Rating:

5



Joined: Mar 6, 2018
Company: Bodega LLC

Hello Vladimir Gurov!

Thanks for your attention about my problems:) That is a good idea using prefix,but these devices are prepared in factory and i am not planing to prepare my own one. Is it possible to reach network datas, for example if i connect a device which have ethernet interface?


 
Vladimir Gurov

#5

Jul 03, 2018 02:11 AM

Interested


Rating:

16



Joined: Dec 4, 2017
Company:

Dear eyup yilmaz,

By using prefixes (if you can add a prefix for a device), you can at least test the devices and distinguish their output in your code. Then your can remove the prefixes.

As for access to device data. Whether it is possible or not, it depends on the device capabilities. Please refer to the device specification.

Best regards,
Vladimir Gurov


 
eyup yilmaz

#6

Jul 03, 2018 03:42 AM

Active user


Rating:

5



Joined: Mar 6, 2018
Company: Bodega LLC

Well system must work according to device, i mean that system must sel ect input datas according to device, for example i don’t want to give permission to enter data fr om keyboard on textbox. with prefix it is going to work, but i cannot put any prefix on device. I can add prefix to devices on another electronic card which is going to work ethernet port….

Actually i just need an event which will active with external events. I have seen external event procedure, i try to find understandable examples,but all of them in Russian language. Even that i translate to english with 1C configuration syntax language. But i couldn’t be successful. Well is there any simple example to start to understand what it is?

Thank you very much for your kindly helps!!! I m very thankful that i m not alone… :)


 
Vladimir Gurov

#7

Jul 05, 2018 05:52 AM

Interested


Rating:

16



Joined: Dec 4, 2017
Company:

Dear eyup yilmaz,

First of all you should ensure that in your managed form’s properties you have the event handler specified for the event called «ExternalEvent».

Best regards,
Vladimir Gurov


 
eyup yilmaz

#8

Jul 06, 2018 10:25 AM

Active user


Rating:

5



Joined: Mar 6, 2018
Company: Bodega LLC

Here i have send «dt» file, I couldn’t work it :(


 
Subscribe

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

Я
   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)»

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Добрый день.
Используется:
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»
Подскажите что можно сделать.

2 года 8 месяцев назад

avatar

#ссылка

0 ответов

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

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

ЗАДАН

2 года 8 месяцев назад

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

Ошибка при работе с ЗагрузитьВнешнююКомпоненту

Автор BonAqua, 03 апр 2014, 12:42

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

При попытки загрузить внешнюю длл выдает сообщение:
{Форма.Форма.Форма(9)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту)
   ЗагрузитьВнешнююКомпоненту(«D:****j.dll»);
по причине:
Ошибка при загрузке внешней компоненты

длл зарегистрирована в системе. кто-нить сталкивался с этим

P.S. 1С 8.3.4.408 Розница 2.1.2.8


А эта дллка точно подходит для 1С?


Да. ДЛЛ рабочаю. Создавали специально для 1С


Ну если не работает так, то можно попробовать метод ПодключитьВнешнююКомпоненту



Может она как-то криво зарегистрировалась?


Цитата: MuI_I_Ika от 07 апр 2014, 10:06
Может она как-то криво зарегистрировалась?

ОС Win7 x64.
1С запускаю с правами администратора.
DLL- регистрируется в ОС без проблем. (сейчас только вычистил в реестре и зарегистрировал снова).


Все. Разобрался. Надо было прочитать мануал по данному драйверу. :)


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Ошибка при работе с ЗагрузитьВнешнююКомпоненту

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

 0 

Распечатать

1С 8.x : Как загрузить внешнюю компоненту?

Код 1C v 8.х

 Попытка 
ЗагрузитьВнешнююКомпоненту("scanopos.dll")
Исключение
Сообщить("Ошибка загрузки внешней компоненты!");
КонецПопытки;

Попытка
// Получить объект компоненты.
Объект = Новый("AddIn.Scanner");

Исключение
Сообщить("Не удалось создать объект внешней компоненты");
КонецПопытки;

Код 1C v 7.x

 //в качестве аргумента "Значение" в функцию передаётся имя файла внешней компоненты
//функция возвращает "1", если загрузка выполнена успешно, или "0", если внешнюю компоненту загрузить не получилось
Функция гВнешняяКомпонента_Загрузить(Значение) Экспорт
Состояние("Загрузка компоненты: "+Значение);
Если ЗагрузитьВнешнююКомпоненту(Значение)=1 Тогда
Возврат(1);
Иначе
Сообщить("Ошибка при загрузке компоненты: "+Значение,"!");
Возврат(0);
КонецЕсли;
КонецФункции

//этот код можно разместить в локальном модуле, в котором требуется использовать внешнюю компоненту
Если гВнешняяКомпонента_Загрузить("v7plus.dll")=0 Тогда
Возврат;
КонецЕсли;

При загрузке полезно проверять, а есть ли в наличии указанный файл DLL (к сожалению, этого не делает сам движок 1С:Предприятие 7.7).

Код 1C v 7.x

 имяф="e:EventsEvents.dll";
Если фс.СуществуетФайл(имяф)=0 Тогда
Сообщить("Файл не найден: "+имяф,"!");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту(имяф)=0 Тогда
Сообщить("Ошибка загрузки внешней компоненты: "+имяф);
КонецЕсли;
vk=СоздатьОбъект("Addin.Events");

Подскажите в чем косяк 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. Зайти в реестр (<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: Использование учетной записи администратора
  • Способ 2: Ручное изменение доступа к файлам
  • Способ 3: Обновление компонентов 1С
  • Способ 4: Повторная регистрация extintgr.dll
  • Способ 5: Обновление драйверов
  • Способ 6: Ручная инсталляция extintgr.dll
  • Вопросы и ответы

Не удалось загрузить внешнюю компоненту extintgr dll

Сейчас многие пользователи по работе или в личных целях используют системы управления базами данных и другие программы, которые предназначены для выполнения определенных финансовых действий и расчетов, например, 1С: Предприятие. В большинстве случаев на компьютере установлен именно софт от компании 1С, поскольку они являются лидерами на рынке и подходят по ГОСТ, из-за чего многие работодатели и требуют наличия компонентов именно этой фирмы. При взаимодействии с ними может наблюдаться ошибка «Не удалось загрузить внешнюю компоненту extintgr.dll», поэтому мы бы хотели посвятить данный материал ее разбору, наглядно продемонстрировав все доступные варианты исправления.

Способ 1: Использование учетной записи администратора

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

Изменение учетной записи для устранения неполадки с файлом extintgr.dll в Windows

Подробнее: Используем учетную запись администратора в Windows

Способ 2: Ручное изменение доступа к файлам

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

  1. Отыщите папку с той программой от 1С, с которой возникают проблемы. Щелкните по ней правой кнопкой мыши и в появившемся контекстном меню выберите пункт «Свойства».
  2. Открытие свойств программы 1С для исправления неполадки с файлом extintgr.dll в Windows

  3. Переместитесь на вкладку «Безопасность».
  4. Переход в раздел безопасности для настройки доступа при исправлении неполадки с extintgr.dll в Windows

  5. Здесь вас интересуют особые разрешения и параметры, переход к настройке которых осуществляется путем клика по кнопке «Дополнительно».
  6. Переход к дополнительным параметрам безопасности для исправления неполадки с файлом extintgr.dll в Windows

  7. Если вы увидели, что в списке «Элементы разрешений» отсутствует нужный пользователь или у него нет соответствующего уровня доступа, кликните по «Добавить».
  8. Переход к добавлению юзера для исправления неполадки с файлом extintgr.dll в Windows

  9. Для начала потребуется выбрать субъект, с которым будет осуществляться взаимодействие.
  10. Кнопка для добавления нового субъекта при исправлении неполадки extintgr.dll в Windows

  11. Вручную вводить название профиля не всегда удобно, поэтому в окне «Выбор: «Пользователь» или «Группа»» откройте дополнительные параметры.
  12. Переход к поиску пользователя для добавления при исправлении неполадки extintgr.dll в Windows

  13. Запустите процедуру поиска по запросам.
  14. Запуск процедуры поиска пользователя для добавления при исправлении extintgr.dll в Windows

  15. В появившемся перечне дважды кликните ЛКМ по строке с необходимым пользователем.
  16. Выбор пользователя для добавления при исправлении неполадки с файлом extintgr.dll в Windows

  17. После этого убедитесь, что он был добавлен в список выбираемых объектов, а затем нажмите на «ОК».
  18. Сохранение изменений после добавления пользователя при исправлении extintgr.dll в Windows

    Lumpics.ru

  19. Выберите тип «Разрешить» и задайте полный уровень доступа, отметив галочкой нужный пункт.
  20. Добавление разрешений для пользователя при исправлении extintgr.dll в Windows

  21. Примените внесенные изменения, удостоверившись, что субъект теперь присутствует в списке «Элементы разрешений».
  22. Сохранение изменений настроек безопасности при исправлении extintgr.dll в Windows

Теперь вы можете не перезагружать компьютер, поскольку в этом нет надобности. Сразу же переходите к своей стандартной работе в программном обеспечении и проверьте, возникнет ли ошибка «Не удалось загрузить внешнюю компоненту extintgr.dll» снова.

Способ 3: Обновление компонентов 1С

Как вы знаете, рассматриваемая сегодня ошибка возникает только у пользователей компонентов 1C. Иногда это связано с тем, что приложение просто устарело или вышли критические обновления, мешающие корректному функционированию всем составляющим. Мы же советуем проверить наличие обновлений следующим образом:

Перейти на официальный сайт 1С для загрузки обновлений

  1. Откройте официальный сайт компании, где переместитесь в раздел «Обновить ПО».
  2. Переход к разделу с обновлением ПО 1С для исправления неполадки extintgr.dll в Windows

  3. Здесь выберите подходящую конфигурацию и удобный способ обновления в зависимости от того, каким образом была получена программа ранее.
  4. Выбор варианта обновления программы от 1С для исправления неполадки с файлом extintgr.dll в Windows

  5. Войдите в свою учетную запись, если это требуется, а затем следуйте отобразившимся на экране инструкциям.
  6. Вход в учетную запись 1С для обновления программы при исправлении extintgr.dll в Windows

Если обновление не принесло никаких результатов или вы и так используете последнюю версию софта, переходите к рассмотрению следующих вариантов.

Изначально extintgr.dll не входит в стандартный состав динамически подключаемых библиотек операционной системы, а это значит, что он был зарегистрирован специальным средством во время инсталляции ПО. Успешность этой операции зависит не только от нормального функционирования утилиты Windows, но и от самого установщика. Если что-то пошло не так, вполне вероятна ситуация неправильной регистрации. Исправить ее можно вручную, удалив текущие параметры и задав новые.

  1. Откройте «Пуск» и отыщите там «Командную строку», а затем запустите ее от имени администратора. Вы можете использовать любой удобный для вас метод открытия консоли, но при этом главное — запускать ее с повышенными правами.
  2. Открытие командной строки для повторной регистрации extintgr.dll в Windows

  3. Впишите команду regsvr32 /u extintgr.dll для отмены текущей регистрации. Активируйте ее нажатием на клавишу Enter.
  4. Отмена текущей регистрации файла extintgr.dll в Windows

  5. Игнорируйте полученные обновления и введите похожую команду regsvr32 /i extintgr.dll для повторной регистрации.
  6. Команда для создания новой регистрации для файла extintgr.dll в Windows

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

Способ 5: Обновление драйверов

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

Обновление драйверов для исправления неполадки с файлом extintgr.dll в Windows

Подробнее: Как обновить драйверы на компьютере

Способ 6: Ручная инсталляция extintgr.dll

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

Подробнее: Как установить библиотеку DLL в систему Windows

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

Понравилась статья? Поделить с друзьями:
  • Add windowscapability сбой add windowscapability код ошибки 0x8024500c
  • Ad inserter javascript ошибки
  • Ad er ошибка 2трм1 что значит
  • Acvalhalla exe системная ошибка emp dll
  • Acvalhalla exe ошибка приложения