|
Регистрация DLL | ☑ | ||
---|---|---|---|---|
0
Grobik
29.05.13
✎
17:17
|
Захотелось воспользоваться Padeg_ua для склонения украинских ФИО.
Зарегистрировал компоненту. Добавил Функция СклонениеФИО(ФИО,Падеж) Экспорт ЗагрузитьВнешнююКомпоненту("C:\WINDOWS\SysWOW64\Padeg_ua.dll"); Попытка Скл = Новый COMОбъект("Padeg_ua.Declension"); Исключение ТекстОшибкиПриПодключении = ОписаниеОшибки();; Сообщить(ТекстОшибкиПриПодключении); Возврат Ложь; КонецПопытки; Результат = Скл.GetFIOPadegFS(Строка(ФИО),"",Падеж); Возврат Результат; КонецФункции в ПроцедурыУправленияПерсоналом В локальной базе работает. В сетевой под терминалом пишет: "Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса" В сетевой при запуске 1С на сервере работает. После этого в терминале нет. Файл кидал в "C:\WINDOWS\SysWOW64\Padeg_ua.dll". В реестре ProgID есть и в HCR и в HKLM. "Padeg_ua.Declension" CLSID = {B21B2752-8C41-41D8-A0DC-98A368D8296E} ЧЯДНТ? И как побороть? |
|||
1
Лефмихалыч
29.05.13
✎
17:18
|
как вариант - отказаться от 64битной семерки
|
|||
2
Grobik
29.05.13
✎
17:18
|
Букву "Я" и "G" на тему "Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса" изучил внимательно.
|
|||
3
Grobik
29.05.13
✎
17:20
|
(1) На сервере 32 гига памяти. 32-битку туда ставить?
Терминал из-под 32-битных ХП или 7. |
|||
4
Grobik
29.05.13
✎
17:21
|
Стоп.
ЗагрузитьВнешнююКомпоненту("C:\WINDOWS\SysWOW64\Padeg_ua.dll"); Этого я конечно не писал ;) |
|||
5
Grobik
29.05.13
✎
17:40
|
Сейчас на форуме 2000 чел.
И никто не сталкивался с проблемой когда на сервере все нормально а в терминале "Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса" при использовании DLL-к? |
|||
6
Kreont
29.05.13
✎
17:43
|
А что стандартные не подходят ф-и из конфигураций?
поищи по словам "Просклонять" |
|||
7
victor79
29.05.13
✎
17:52
|
насколько я понимаю, ЗагрузитьВнешнююКомпоненту это для ВНЕШНИХ КОМПОНЕНТ (что то же COM объект, но специальный для 1С). Ты же используешь обычный COM объект, не являющийся ВК, регистрировать который нужно "regsvr32 <файл.длл>" (под админом).
С другой стороны ты упомянул, что в реестре есть "Padeg_ua.Declension", потому непонятно почему не работает. Попробуй заново зарегить regsvr32 и 1С запустить под админом. Если все равно не заработает, значит кривая длл и для 64 винды не работает. |
|||
8
Grobik
29.05.13
✎
17:56
|
(7) см (4) Загрузить не писал, скопипастил с соседнего окна браузера пример.
>> 1С запустить под админом Запускал конечно, раз уж пишу что работает. (6) NameDecl.dll говорят украинские ФИО хуже переносит. Да в все равно она не зарегистрирована. В ПросклонятьФамилиюИмяОтчество и т.д. только вызовы ВК. |
|||
9
Serginio1
29.05.13
✎
18:03
|
Сетевая SQL? Вызываешь на клиенте или сервере?
Возможно использовать 32 разрядные DLL 64 разрядном приложении http://www.steeltrace.ru/details/articleid/22/регистрация-1с-com-компонента-для-работы-с-64-битными-приложениями.aspx |
|||
10
Grobik
29.05.13
✎
18:14
|
(9) Спасибо за помощь.
SQL тут при чем? 64 разрядное приложение это какое? КОМ=Новый COMОбъект("V82.COMConnector"); в это-же самое время, в этом-же самом месте работает. |
|||
11
Serginio1
29.05.13
✎
18:17
|
(10) В том, что SQL это клиент сервер и код может выполняется на сервере приложений. Сервер приложений может быть 64 и 32 разрядным. В поставку 64 сервером есть и 64 разрядная comcntr.dll.
|
|||
12
Grobik
29.05.13
✎
18:24
|
comcntr.dll работает.
Padeg_ua.dll на сервере работает, в терминале нет. |
|||
13
Serginio1
29.05.13
✎
18:32
|
А ПодключитьВнешнююКомпоненту("Padeg_ua.Declension")
|
|||
14
Serginio1
29.05.13
✎
18:32
|
Может прав на папку не хватает у клиента под терминалом?
|
|||
15
Serginio1
29.05.13
✎
18:34
|
Или попробовать как Новый ComОбъект("Padeg_ua.Declension")
|
|||
16
victor79
29.05.13
✎
18:48
|
(8) так я про что и говорю, что ЗагрузитьВнешнююКомпоненту это здесь лишнее и бесполезное, а нужно regsvr32 из командной строки. Хотя это наверняка было для семерки, а для 8 может сделали универсальной.
Вот вспомнил, для винды 64 + длл 32 - раздел CLSID располагается в другом разделе реестра - не как в 32 (кажется в WOW32). Возможно это было верно только для виндов от седьмой, и вин 2003 х64 был по старому - наверняка не помню. Если компонента скомпилена на компиляторе не понимающем этого, то придется править реестр вручную. Для дельфей до 7 включительно оно работало криво. |
|||
17
Grobik
30.05.13
✎
09:35
|
(13) По идее это лишнее. Тем не менее пробовал — не помогает.
(15) Это есть. (16) Так все и сделано. Сервер на 2008, а клиенты какая разница? |
|||
18
Grobik
30.05.13
✎
11:50
|
Запускаю с терминала
regedit "Padeg_ua.Declension" не набюдается. Запускаю regsvr32 /n /i:test C:\Users\test\WINDOWS\system\padeg_ua.dll пишет Модуль "C:\Users\test\WINDOWS\system\padeg_ua.dll" загружен, но точка входа в процедуру DllRegisterServer не найдена. Вот этот товарищ хоть бы отписался, как заборол v8: Внешние компоненты 1с 8.2 |
|||
19
Grobik
30.05.13
✎
11:52
|
Напоминаю на сервере регистрируется и работает. В терминале нет.
|
|||
20
Serginio1
30.05.13
✎
13:39
|
(19) 14 читал? Может быть проблема типа
v8: регламентное задание и Ексель |
|||
21
Grobik
30.05.13
✎
14:13
|
>> А файл есть на СЕРВЕРЕ?
Напоминаю на сервере регистрируется и работает. |
|||
22
Grobik
30.05.13
✎
14:14
|
2. Модуль "C:\Users\test\WINDOWS\system\padeg_ua.dll" загружен НО бла-бла.
ИМХО это значит, что есть. |
|||
23
Grobik
30.05.13
✎
14:15
|
Хотя вариант с "C:\Users\хххх\WINDOWS\system\padeg_ua.dll" чисто отладочный. Не буду же я всем юзерям его раскидывать и регистрировать. Даже батником.
|
|||
24
Serginio1
30.05.13
✎
14:25
|
Попробуй с правами DCOM как в 20.
|
|||
25
Serginio1
30.05.13
✎
14:26
|
v8: регламентное задание и Ексель
сообщение 20 Подсказали решение на SQL.ru На сервере необходимо было еще установить в локальных политиках право на запуск DCOM для конкретных пользователей. и, о чудо, все заработало :-) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |