Ошибка при загрузке компоненты компонента не загружена

При попытке подключения фискального регистратора «Штрих-М» к 1С 7.7 возникает ошибка:
«Ошибка при загрузке компоненты D:\Base\DrvFR.dll. Компонента не загружена«.
Одним из решением проблемы может быть следующий порядок действий:

  1. Удалить старые драйвера фискального регистратора через «Панель управления»;
  2. Удалить файлы «DrvFR.dll» и «DrvFR.lic«:
  3. — из каталога платформы 1С;
  4. — из каталога конфигурации;
  5. — из каталога «\Windows\system32«;- из каталога «Program Files» или «Program Files (x86)«.
  6. Установить новый драйвер фискального регистратора;
  7. Скопировать файлы «DrvFR.dll«, «DrvFR.lic» и «sqlite3.dll» из каталога «C:\Program Files\SHTRIH-M\DrvFR 4.13\Bin» в каталоги:
  8. — платформы 1С;
  9. — конфигурации;
  10. — «\Windows\system32«.
  11. Настроить фискальный регистратор в настройках торгового оборудования в 1С (см. скрин ниже).

Ключевые слова: внешняя компонента, ошибка, отсутствует, 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 — загрузка внешних компонент без регистрации в реестре

  

Gavrinev

09.02.10 — 15:25

В обработке неточного сравнения прописал

   ЗагрузитьВнешнююКомпоненту(«StrMatch.dll»);

   СС = СоздатьОбъект(«AddIn.StrMatchExtension»);

В WindowsSystem32 посадил mfc71.dll и msvcr71.dll

Саму StrMatch.dll посадил в Bin, команде regserv32 она не поддается? пишет не является исполняемым файлом…

  

Дядя Васька

1 — 09.02.10 — 15:27

может таки путь указать?

  

Sadovnikov

2 — 09.02.10 — 15:28

(0) А зачем regserv32? ЗагрузитьВнешнююКомпоненту сама все записи в реестре сделает. И далеко не все ВК можно при помощи regserv32 зарегить.

  

Gavrinev

3 — 09.02.10 — 15:28

Я полностью указываю

C:WindowsSystem32regserv32.exe

  

Бовка

4 — 09.02.10 — 15:30

ЗагрузитьВнешнююКомпоненту(«ТвойПутьStrMatch.dll»); с правами админа

  

Gavrinev

5 — 09.02.10 — 15:30

Все равно выдает :

СС = СоздатьОбъект(«AddIn.StrMatchExtension»);

{Обработка.ЗагрузкаИзФайла.Форма.Модуль(688)}: Неудачная попытка создания объекта (AddIn.StrMatchExtension)

  

Sadovnikov

6 — 09.02.10 — 15:30

(5) Где именно ее загружаешь?

  

Gavrinev

7 — 09.02.10 — 15:32

Забыл указать перед этой ошибкой

Ошибка при загрузке компоненты C:EtcDataBaseStrMatch.dll. Компонента не загружена.

Всмысле? где?

  

Ёпрст

8 — 09.02.10 — 15:32

regserv32 ?

может все же regsvr32 ?

  

filh

9 — 09.02.10 — 15:32

ЗагрузитьВнешнююКомпоненту(«C:EtcDataBaseStrMatch.dll»);

А так?

  

Gavrinev

10 — 09.02.10 — 15:33

щас попробую

  

Gavrinev

11 — 09.02.10 — 15:34

regsvr32 тоже не помогает…

  

Gavrinev

12 — 09.02.10 — 15:36

ЗагрузитьВнешнююКомпоненту(«C:EtcDataBaseStrMatch.dll»);

Так тоже пишет компонента не загружена, буду искать заново скачать компоненту, может она сама поломана, а никто не знает сами mfc dll надо регить?

  

filh

13 — 09.02.10 — 15:39

(12) а StrMatch.dll лежит тут C:EtcDataBase ?

  

Gavrinev

14 — 09.02.10 — 15:40

Да в базе, еще на всякий случай в Bin и в других местах где пробовал ее зарегить

  

Sadovnikov

15 — 09.02.10 — 15:42

(14) Ответь на (6)?

  

Gavrinev

16 — 09.02.10 — 15:43

сдесь

ЗагрузитьВнешнююКомпоненту(«C:EtcDataBaseStrMatch.dll»);

и регить пробовал на нее

  

Дядя Васька

17 — 09.02.10 — 15:44

ЗагрузитьВнешнююКомпоненту(КаталогИБ()+»StrMatch.dll»);

  

Sadovnikov

18 — 09.02.10 — 15:44

(16) В каком месте расположена эта строчка? В обработке или в ПриНачалеРаботыСистемы?

Если в обработке, то перенеси ее в ПриНачалеРаботыСистемы.

  

Gavrinev

19 — 09.02.10 — 15:45

сейчас попробую

  

Дядя Васька

20 — 09.02.10 — 15:45

(18) какая разница-то?

  

Дядя Васька

21 — 09.02.10 — 15:46

+(17) ну там мож слэш еще надо, лень проверять, бодун знаете ли…

  

Sadovnikov

22 — 09.02.10 — 15:46

(20) Да ныравались уже на глюки, когда ВК в обработке грузишь. Может объект не создаться, а может создаться, но ни одного метода не видеть.

  

Gavrinev

23 — 09.02.10 — 15:46

Все равно

Компонента не загружена.

  

Дядя Васька

24 — 09.02.10 — 15:48

(23) А венда-то какая?

  

vlro

25 — 09.02.10 — 15:49

А права админские есть?

  

ildary

26 — 09.02.10 — 15:49

Вроде как регистрировать надо regsvr32, а не regserv32?

  

Gavrinev

27 — 09.02.10 — 15:51

работаю по Админом, WinXP SP3, уже все перепробовал склоняюсь на mfc dll…

  

Дядя Васька

28 — 09.02.10 — 15:51

(26) Да по уму-то и сама должна зарегаться. Только на том же 2008 например фик у нее че получится. Приходится в хрюше регать, а там уже ручками…

  

Sadovnikov

29 — 09.02.10 — 15:51

(23) А что вообще возвращает ЗагрузитьВнешнююКомпоненту(«StrMatch.dll»);?

Если 1, то: «А правильно ли написано AddIn.StrMatchExtension?

  

Gavrinev

30 — 09.02.10 — 15:51

Может DLL скачанные с инета поломанные… кто знает сколько они весят ?

  

Gavrinev

31 — 09.02.10 — 15:52

(29)

ЗагрузитьВнешнююКомпоненту(«StrMatch.dll»)=0

  

Sadovnikov

32 — 09.02.10 — 15:52

(31) И 1С-ка при этом никаких ругательных слов не пишет?

  

Дядя Васька

33 — 09.02.10 — 15:53

имхается мне все же с путем лагаешь…

  

Gavrinev

34 — 09.02.10 — 15:54

(32)

Только касательно ЗагрузитьВнешнююКомпоненту(КаталогИБ()+»StrMatch.dll»)

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

  

Sadovnikov

35 — 09.02.10 — 15:54

(34) Ты то само «и т.д.»-то покажи.

  

Gavrinev

36 — 09.02.10 — 15:57

При запуске 1С

Ошибка при загрузке компоненты C:EtcDataBaseStrMatch.dll. Компонента не загружена.

При запуске обработки

Ошибка при загрузке компоненты C:EtcDataBaseStrMatch.dll. Компонента не загружена.

СС = СоздатьОбъект(«AddIn.StrMatchExtension»);

{Обработка.ЗагрузкаИзФайла.Форма.Модуль(688)}: Неудачная попытка создания объекта (AddIn.StrMatchExtension)

  

Дядя Васька

37 — 09.02.10 — 15:58

как-то подозрительно мне это C:EtcDataBase :)

  

Sadovnikov

38 — 09.02.10 — 15:59

(36) Из (0):

«Саму StrMatch.dll посадил в Bin»

Из (36):

«C:EtcDataBaseStrMatch.dll»

Все ли нормально?

  

Gavrinev

39 — 09.02.10 — 16:00

Вообще никакой разницы нет где сидит DLL в каталоге базы или в Bin

  

Gavrinev

40 — 09.02.10 — 16:01

Она у меня уже везде понатыкана …

  

Sadovnikov

41 — 09.02.10 — 16:01

(39) Я к тому, что точно по укзанному пути dll-ка есть?

  

Дядя Васька

42 — 09.02.10 — 16:01

(39) А каталог базы-то у тебя где? Ну не верю что в C:EtcDataBase ))

  

Gavrinev

43 — 09.02.10 — 16:02

39 Конечно есть …

  

Gavrinev

44 — 09.02.10 — 16:03

Основной каталог базы C:EtcDataBase1cv7.md, и все остальные файлы + dll

  

vlro

45 — 09.02.10 — 16:04

ВАЖНО:
что бы все зарегестрировалось и работало нужны файлы: atl70.dll, mfc70.dll, msvcr70.dll
например при копировании в system32 следующих версий:
atl70.dll размер 84992 от 05.01.2002 04:18
mfc70.dll размер 974848 от 05.01.2002 06:48
msvcr70.dll размер 344064 от 05.01.2002 14:37
все заработало даже на NT40

… и еще:
Я могу ошибаться, еще буду поверять, но возможно на это влияет наличие установленного: Microsoft .NET Framework
На 10 проверенных компах где все зарегилось он был установлен, на единственном, на котором у меня тоже ругается его нет.
Проверь на всякий случай.
Framework можно взять:
Английская версия
http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe
Русская версия
http://download.microsoft.com/download/0/8/6/086e7824-ddad-45c0-b765-721e5e28e4c5/dotnetfx.exe
он около 23М, но все равно ставить рано или поздно прийдется

ссылка: http://1c.proclub.ru/modules/newbb/viewtopic.php?topic_id=6873&forum=6

  

Sadovnikov

46 — 09.02.10 — 16:06

(45) Во, как тут, оказывается, все мутно…

  

Gavrinev

47 — 09.02.10 — 16:07

Агромное спасибо, у мя нет библиотек

atl70.dll и устанавливал я mfc71.dll а не 70, а фреймворк есть, еще раз спсибо буду юзать…

  

vlro

48 — 09.02.10 — 16:08

там старые просто, еще 2003 года… читай каменты, я все даже не смотрел

В обработке неточного сравнения прописал    СС = СоздатьОбъект(«AddIn.StrMatchExtension»); В WindowsSystem32 посадил mfc71.dll и msvcr71.dll Саму StrMatch.dll посадил в Bin, команде regserv32 она не поддается? пишет не является исполняемым файлом…

А зачем regserv32? ЗагрузитьВнешнююКомпоненту сама все записи в реестре сделает. И далеко не все ВК можно при помощи regserv32 зарегить.

Я полностью указываю C:WindowsSystem32
egserv32.exe

ЗагрузитьВнешнююКомпоненту(«ТвойПутьStrMatch.dll»); с правами админа

Все равно выдает : {Обработка.ЗагрузкаИзФайла.Форма.Модуль}: Неудачная попытка создания объекта (AddIn.StrMatchExtension)

Где именно ее загружаешь?

Забыл указать перед этой ошибкой Ошибка при загрузке компоненты C:EtcDataBaseStrMatch.dll. Компонента не загружена. Всмысле? где?

regserv32 ? может все же regsvr32 ?

regsvr32 тоже не помогает…

ЗагрузитьВнешнююКомпоненту(«C:EtcDataBaseStrMatch.dll»); Так тоже пишет компонента не загружена, буду искать заново скачать компоненту, может она сама поломана, а никто не знает сами mfc dll надо регить?

а StrMatch.dll лежит тут C:EtcDataBase ?

Да в базе, еще на всякий случай в Bin и в других местах где пробовал ее зарегить

сдесь ЗагрузитьВнешнююКомпоненту(«C:EtcDataBaseStrMatch.dll»); и регить пробовал на нее

ЗагрузитьВнешнююКомпоненту(КаталогИБ+»StrMatch.dll»);

В каком месте расположена эта строчка? В обработке или в ПриНачалеРаботыСистемы? Если в обработке, то перенеси ее в ПриНачалеРаботыСистемы.

+ ну там мож слэш еще надо, лень проверять, бодун знаете ли…

Да ныравались уже на глюки, когда ВК в обработке грузишь. Может объект не создаться, а может создаться, но ни одного метода не видеть.

Все равно Компонента не загружена.

Вроде как регистрировать надо regsvr32, а не regserv32?

работаю по Админом, WinXP SP3, уже все перепробовал склоняюсь на mfc dll…

Да по уму-то и сама должна зарегаться. Только на том же 2008 например фик у нее че получится. Приходится в хрюше регать, а там уже ручками…

А что вообще возвращает ЗагрузитьВнешнююКомпоненту(«StrMatch.dll»);? Если 1, то: «А правильно ли написано AddIn.StrMatchExtension?

Может DLL скачанные с инета поломанные… кто знает сколько они весят ?

ЗагрузитьВнешнююКомпоненту(«StrMatch.dll»)=0

И 1С-ка при этом никаких ругательных слов не пишет?

имхается мне все же с путем лагаешь…

Только касательно ЗагрузитьВнешнююКомпоненту(КаталогИБ+»StrMatch.dll») Неудалось загрузить внешнюю компоненту и т.д.

Ты то само «и т.д.»-то покажи.

При запуске 1С Ошибка при загрузке компоненты C:EtcDataBaseStrMatch.dll. Компонента не загружена. При запуске обработки Ошибка при загрузке компоненты C:EtcDataBaseStrMatch.dll. Компонента не загружена. СС = СоздатьОбъект(«AddIn.StrMatchExtension»); {Обработка.ЗагрузкаИзФайла.Форма.Модуль}: Неудачная попытка создания объекта (AddIn.StrMatchExtension)

как-то подозрительно мне это C:EtcDataBase :)

Из : «Саму StrMatch.dll посадил в Bin» Из : «C:EtcDataBaseStrMatch.dll» Все ли нормально?

Вообще никакой разницы нет где сидит DLL в каталоге базы или в Bin

Она у меня уже везде понатыкана …

Я к тому, что точно по укзанному пути dll-ка есть?

А каталог базы-то у тебя где? Ну не верю что в C:EtcDataBase ))

Основной каталог базы C:EtcDataBase1cv7.md, и все остальные файлы + dll

ВАЖНО: что бы все зарегестрировалось и работало нужны файлы: atl70.dll, mfc70.dll, msvcr70.dll например при копировании в system32 следующих версий: atl70.dll размер 84992 от 05.01.2002 04:18 mfc70.dll размер 974848 от 05.01.2002 06:48 msvcr70.dll размер 344064 от 05.01.2002 14:37 все заработало даже на NT40 … и еще: Я могу ошибаться, еще буду поверять, но возможно на это влияет наличие установленного: Microsoft .NET Framework На 10 проверенных компах где все зарегилось он был установлен, на единственном, на котором у меня тоже ругается его нет. Проверь на всякий случай. Framework можно взять: Русская версия он около 23М, но все равно ставить рано или поздно прийдется ссылка:

Во, как тут, оказывается, все мутно…

Агромное спасибо, у мя нет библиотек atl70.dll и устанавливал я mfc71.dll а не 70, а фреймворк есть, еще раз спсибо буду юзать…

там старые просто, еще 2003 года… читай каменты, я все даже не смотрел

Тэги:

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

{«Shell»,

{«Folder»,»AST»,»Нечеткое сравнение строк»,»»,

{«Item»,»AST»,»Преамбула»,»»,»Что это такое»,»»,

«

@Версия:

2.1.1

10 февраля 2005г.

Компонента используется для «»Нечеткого»» сравнения и поиска наиболее «»похожей»» строки.

Автор: Ракунов Александр.

E-mail: @Skorp@newmail.ru

ICQ#: 63919227

@Компилятор:

MS Visual C++ .NET 2003

«

},

{«Item»,»AST»,»Подключение»,»»,»Пример подключения компоненты»,»»,

«

ВНИМАНИЕ! Компонента требует для работы mfc71.dll и msvcr71.dll

Если происходит ошибка загрузки компоненты, проверьте наличие этих файлов в system32, если их нет, то нужно найти в инете (например на filesearch.ru) или взять тут: http://skorp.nm.ru/mfc71.zip

Способ 1:

StrMatch.dll кладется в одно из этих мест:

— в папку пользователя,

— в каталог с базой или

— в каталог BIN программы 1С.

В програмном модуле используется примерно такой код:

ЗагрузитьВнешнююКомпоненту(«»StrMatch.dll»»);

Способ 2:

StrMatch.dll засовывается куда угодно

делается regsvr32 <ПолныйПуть>StrMatch.dll

В коде пишем:

ПодключитьВнешнююКомпоненту(«»StrMatchExtension»»);

далее в любом месте:

StrMatch = СоздатьОбъект(«»AddIn.StrMatchExtension»»);

В остальных примерах считается, что StrMatch инициализирована одним их этих способов.

«

},

{«Folder»,»AST»,»Атрибуты»,»»,

{«Item»,»AST»,»Версия»,»Version»,»Версия»,»Version»,»@Синтаксис:

Версия

@Назначение:

Получение версии текущей загруженой компоненты.

@Возвращаемое значение

Строка вида «»YY.XX.ZZ»» — версия компоненты

»

},

{«Item»,»AST»,»ВесЧисел»,»NumWeight»,»ВесЧисел»,»NumWeight»,»@Синтаксис:

ВесЧисел

@Назначение:

Изменения веса совпадения числовых подстрок по отношению к остальной части строки.

При инициализации компоненты параметр равен 4;

@Возвращаемое значение

Текущее значение веса числовых подстрок.

@Пример:

Сообщить(StrMatch.ВесЧисел);

Сообщить(StrMatch.Сравнить(«»Т/в Виски 100мл»»,»»100 Whisky т/в»»));

Сообщить(StrMatch.Сравнить(«»Т/в Виски 200мл»»,»»100 Whisky т/в»»));

StrMatch.ВесЧисел = 1; //Такой же как у остальной части

Сообщить(StrMatch.Сравнить(«»Т/в Виски 100мл»»,»»100 Whisky т/в»»));

Сообщить(StrMatch.Сравнить(«»Т/в Виски 200мл»»,»»100 Whisky т/в»»));

Результаты: 60, 40 и 39, 34 соответственно.

»

},

},

{«Folder»,»AST»,»Методы»,»»,

{«Item»,»AST»,»Сравнить»,»StrMatch»,»Сравнить(<?>,)»,»StrMatch(<?>,)»,»@Синтаксис:

Сравнить(<Строка1>,<Строка2>)

@Назначение:

Получение коэффициента схожести двух строк.

@Параметры:

<Строка1> — Первая строка для сравнения.

<Строка2> — Вторая строка для сравнения.

@Возвращаемое значение:

Возвращает коэффициент схожести двух строк.

Порядок строк значения не имеет.

Коэффициент не маштабирован, т.е. его максимальное значение не ограничено. Чем коэффициент больше, тем строки более похожи. Использеутся при последовательном сравнении одной строки со списком вариантов.

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

@Пример:

Сообщить(StrMatch.Сравнить(«»Т/в Виски 100мл Лимитед»»,»»100 Whisky т/в»»));

Сообщить(StrMatch.Сравнить(«»Т/в Виски 100мл Лимитед»»,»»100 Whisky лимитед т/в»»));

Сообщить(StrMatch.Сравнить(«»100 Whisky т/в»»,»»150 Vodka т/в»»));

Результаты: 62, 104 и 2 соответственно.

«

},

{«Item»,»AST»,»ОткрытьПодбор»,»OpenSet»,»ОткрытьПодбор(<?>,)»,»OpenSet(<?>,)»,»@Синтаксис:

ОткрытьПодбор(<Строка>, <Количество>)

@Назначение:

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

@Параметры:

<Строка> — Строка с которой будут сравниваться все остальные.

<Количество> — Количество хранимых значений с максимальными коэффициентами сравнения.

@Возвращаемое значение

Отсутствует.

»

},

{«Item»,»AST»,»ДобавитьВПодбор»,»CmpNext»,»ДобавитьВПодбор(<?>,,)»,»CmpNext(<?>,,)»,»@Синтаксис:

ДобавитьВПодбор(<Строка>, <Хеш>, <Имя>)

@Назначение:

Сравнивает и добавляет следующую строку в открытый подбор.

@Параметры:

<Строка> — Строка для сравнения.

<Хеш> — Числовое значение, идентифицирующее строку для получения результатов сравнения.

<Имя> — Строковое значение, идентифицирующее строку. Тот же <Хеш>, но строковой. Например если код справочника не числовой. Имеет ограничение по длине 64 символа.

@Возвращаемое значение

Ничего не возвращает.

»

},

{«Item»,»AST»,»ПолучитьИзПодбора»,»GetItemSet»,»ПолучитьИзПодбора(<?>,,)»,»GetItemSet(<?>,,)»,»@Синтаксис:

ПолучитьИзПодбора(<Ном>, <Имя>, <Инд>)

@Назначение:

Выбирает строки из добавленных в подбор с максимальным коэффициентом сравнения. По порядку убывания значения коэффициента.

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

@Параметры:

<Ном> — Номер строки из интервала (1..<Количество>), где Интервал это Количесво, переданное в метод: ОткрытьПодбор

<Имя> — Строковая переменная в которую вернется имя, переданное при добавлении в подбор.

<Инд> — Переменная в которую вернется коэффициент похожести.

@Возвращаемое значение

Хеш код, переданный при добавлении в подбор.

»

},

{«Item»,»AST»,»СоздатьКэш»,»CreateCash»,»СоздатьКэш(<?>)»,»CreateCash(<?>)»,»@Синтаксис:

СоздатьКэш(<Ид>)

@Назначение:

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

@Параметры:

<Ид> — Идентификатор кэша, который будет использоваться в дальнейше для работы с этим кэшем. Положительное целое число.

@Возвращаемое значение

Никакого.

»

},

{«Item»,»AST»,»ДобавитьВКэш»,»AddToCash»,»ДобавитьВКэш(<?>,,,)»,»AddToCash(<?>,,,)»,»@Синтаксис:

ДобавитьВКэш(<Ид>, <Стр>, <Хеш>, <Имя>)

@Назначение:

Добавляет в созданный кэш следующую строку.

@Параметры:

<Ид> — Идентификатор кэша. Положительное целое число переданное в СоздатьКэш.

остальные аналогичны методу ДобавитьВПодбор()

<Строка> — Строка для добавления.

<Хеш> — Числовое значение, идентифицирующее строку.

<Имя> — Строковое значение, идентифицирующее строку. Тот же <Хеш>, но строковой. Например если код справочника не числовой. Имеет ограничение по длине 64 символа.

@Возвращаемое значение

Никакого.

»

},

{«Item»,»AST»,»СравнитьСКэшем»,»CmpWithCash»,»СравнитьСКэшем(<?>,,)»,»CmpWithCash(<?>,,)»,»@Синтаксис:

СравнитьСКэшем(<Ид>, <Стр>, <Кол>)

@Назначение:

Сравнивает <Строка> со всеми значениями из кэша. Результаты сравнения можно получить используя: ПолучитьИзПодбора()

Фактически тот метод открывает подбор и прогоняет через него все содержимое кэша.

@Параметры:

<Ид> — Идентификатор кэша. Положительное целое число.

остальные аналогичны методу ОткрытьПодбор()

<Строка> — Строка с которой будут сравниваться значения из кэша.

<Количество> — Количество хранимых значений с максимальными коэффициентами сравнения.

@Возвращаемое значение

Никакого.

»

},

{«Item»,»AST»,»ОчиститьКэш»,»ClearCash»,»ОчиститьКэш(<?>)»,»ClearCash(<?>)»,»@Синтаксис:

ОчиститьКэш(<Ид>)

@Назначение:

Удаляет все значения из кэша.

@Параметры:

<Ид> — Идентификатор кэша. Положительное целое число.

@Возвращаемое значение

Никакого.

»

},

{«Item»,»AST»,»УдалитьКэш»,»DeleteCash»,»УдалитьКэш(<?>)»,»DeleteCash(<?>)»,»@Синтаксис:

УдалитьКэш(<Ид>)

@Назначение:

Удаляет все значения из кэша и удаляет само хранилище.

@Параметры:

<Ид> — Идентификатор кэша. Положительное целое число.

@Возвращаемое значение

Никакого.

»

},

{«Item»,»AST»,»СохранитьКэш»,»SaveCash»,»СохранитьКэш(<?>)»,»SaveCash(<?>)»,»@Синтаксис:

СохранитьКэш(<Ид>, <Имя>)

@Назначение:

Сохраняет строки, находящиеся в кеше в файл на диске.

@Параметры:

<Ид> — Идентификатор кэша. Положительное целое число.

<Имя> — Полное имя файла.

@Возвращаемое значение

Результат операции: 1 — сохранить удалось, 0 — запись не произведена.

»

},

{«Item»,»AST»,»ЗагрузитьКэш»,»LoadCash»,»ЗагрузитьКэш(<?>)»,»LoadCash(<?>)»,»@Синтаксис:

УдалитьКэш(<Ид>)

@Назначение:

Читает сохраненный в файл кеш и создает его в оперативной памяти. При этом, если кеша <Ид> нет, то он создается, если есть — очищается.

@Параметры:

<Ид> — Идентификатор кэша. Положительное целое число.

<Имя> — Полное имя файла.

@Возвращаемое значение

Результат операции: 1 — кеш прочитан, 0 — прочитать не удалось.

»

},

},

},

}

Category:

  • Компьютеры
  • Cancel

На рабочей машинке на выписке товара после броска по питанию сдохли винды (Windows XP при загрузке ругается на невозможность подгрузить чего то из windows\system32). Потанцевал с бубном и забил — благо MHDD показал, что диск живее всех живых. Переустановил.

На машине в 1с v77 подключена касса (COM) и сканер (USB). Опасался что прийдется бодаться с кассой, а вышло наоборот. К кассовому модулю прилагался USB-донгл. Срисовал с него название и у производителя ключа скачал драйвера. Все взлетело.

А вот при старте 7.7 вываливалось сообщение «Ошибка при загрузке компоненты Scaner1C.dll. Компонента не загружена». При этом dll-ка лежит на месте, но на regsvr32 scaner1c.dll ничего хорошего не происходит и сканер не живет.

Пробовал:

  • разные версии scaner1c.dll — на просторах интернета надыбал еще три версии этой компоненты. Самая «жирная» была у Атола в «драйверах дополнительного оборудования». Она таки зарегистрировались. Даже тестирование проходила (т.е. делаешь пик-пик на штрих-коде, а в тестировочном окне вываливается 123456789 #10 #13), а вот в самой базе (т.е. в подборе или в справочнике) не але.
  • вместо scaner1c.dll подложить scanopos.dll. тут 1с-ник очень сильно засопротивлялся — в конфигурации дофига чего нужно править потому как языки к dll-лек разные

В итоге практикующие в Предприятии 7.7

проктологи

коллеги сказали что для успешной работы scaner1c.dll нужен еще файлик vcl30.dpl который нужно бросить в windows/system32.

Добрый день.
Управление автотранспортом, редакция 3.0 (3.0.18.1)
Платформа 1С:Предприятие 8.3 (8.3.18.1289)
Серверная MSSQL.

При создании новых рабочих мест на одинаковых компьютерах Win10
на некоторых компьютерах подключение к базе данных УАТ прошло успешно, а на некоторых появляется ошибка

///
Произошла ошибка при загрузки компоненты из каталога «D:\UAT\»
Текст ошибки: Не удалось загрузить компоненту D:\UAT\V8UAT.dll
{Обработка.уатЗащита.МодульОбъекта(178)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту); Ошибка при загрузке внешней компоненты

ЗАПУСТИТЬ МАСТЕР НАСТРОЙКИ СИСТЕМЫ ЗАЩИТЫ?
///

1. Попытка запустить под администратором
2. Попытка запустить под администратором с разрядностью 32 и 64
3. Попытка подменить файлы с компьютера с успешной загрузкой
4. Попытка подменить файлы с компьютера с успешной загрузкой с созданием block.tmp и добавлением в него v8uat.dll
5. Попытка ручной регистрации v8uat.dll с использованием утилиты regsvr32
6. Попытка изменить каталог хранения файлов с C:\ProgramData\Protect\LocalProtect на D:\UAT

Содержимое каталога компьютера с ошибкой:
14.03.2007  05:51           581632 1CBarCod.dll
02.09.2021  11:07             8176 config.xml
20.05.2013  17:47         5574306 RarusFirstStartSetup.exe
02.09.2021  13:41           661504 SUv10.exe
03.10.2011  06:37         4373504 V8UAT.dll

Содержимое каталога компьютера без ошибки:
14.03.2007  07:51           581632 1CBarCod.dll
14.03.2007  07:50           184587 1CBARCOD.HLP
02.09.2021  13:07             8176 config.xml
02.12.2010  13:50         4020736 ConfUtil3.exe
04.08.2014  21:17                12 LicServer.ini
20.05.2013  19:47         5574306 RarusFirstStartSetup.exe
11.11.2011  06:28         2069504 Setup.exe
02.09.2021  15:47           661504 SUv10.exe
16.05.2017  12:29               768 UnInstall.ini
03.10.2011  08:37         4373504 V8UAT.dll
02.12.2010  13:50            18944 _Updater.exe

Запуск утилиты D:\UAT\SUv10.exe Repl=_TMP_acf628142e46417d85c55360fc2b8a97.txt ConnectionString=ИМЯ_СЕРВЕРА Files=RarusFirstStartSetup.exe;config.xml;V8UAT.dll;1CBarCod.dll RegFiles=V8UAT.dll(*AddIn.V8Autotransport*);#1CBarCod.dll(*V8.Barcod*) возвращает ОК
в файле _TMP_acf628142e46417d85c55360fc2b8a97.txt

Запуск утилиты ConfUtil3.exe на любом компьютере показывает список имен компьютеров без ошибки.
Имя компьютеров с ошибками не появляется.

Сведения о подключении на компьютере без ошибки
Серверный (сжатие: усиленное)
Толстый клиент
Текущая:
Сетевой HASP4 ORGL8 100, выдал сервер
Локальный HASP4 EN8SA 1
Информационная база:
Сетевой HASP4 ORGL8 20
Локальный HASP4 ORGL8 1
Локальный HASP4 ORGL8 10
Сетевой HASP4 ORGL8 50
8100ХХХХХХ Адрес
8100ХХХХХY Адресс
Локальный HASP4 ORGL8 50

Прошу проконсультировать по устранению ошибки.
С уважением, Дмитрий.

Изменено: Дмитрий Сергеевич02.09.2021 14:05:50

Понравилась статья? Поделить с друзьями:
  • Ошибка при загрузке компоненты защиты axelot
  • Ошибка при загрузке компоненты scaner1c dll
  • Ошибка при вызове конструктора comobject интерфейс не поддерживается
  • Ошибка при загрузке киберпанк
  • Ошибка при вызове конструктора com объект