![]() |
![]() |
![]() |
|
Работа с библиотекой NameDecl.dll | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
01.02.13
✎
18:39
|
Добрый вечер. Недавно столкнулся с такой интересной ошибкой: использую библиотеку NameDecl.dll (эта библиотека отвечает за склонение ФИО), она у меня загружена в общий макет, имеющий тип "Двоичные данные". Проверил работу конфигурации на нескольких компах - все хорошо, никаких ошибок нет. Стал проверять работу на компе, на котором стоит неруссифицированная Windows 2008R2 - стала появляться вот такая ошибка:
Не удалось загрузить внешнюю компоненту по причине: {Отчет.АктСверкиСПоставщиком.Форма.ФормаОтчета.Форма(556)}: Тип не определен (AddIn.NameDeclension) Сам код, который использую: Попытка // Загружаем внешнюю компоненту ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаСклонения", "NameDecl", ТипВнешнейКомпоненты.COM); Объект = Новый("AddIn.NameDeclension"); Исключение Сообщить("Не удалось загрузить внешнюю компоненту по причине: " + ОписаниеОшибки()); КонецПопытки; // Получаем результат склонения РезультатСклонения = Объект.Просклонять(СтрокаСклонения, НомерПадежа) + " "; Возврат РезультатСклонения; |
|||
1
DrShad
01.02.13
✎
18:41
|
она у тебя в реестре не прописана
|
|||
2
МихаилМ
01.02.13
✎
18:41
|
может проверяли на 32 битных
а ошибка на 64 битной. |
|||
3
DrShad
01.02.13
✎
18:43
|
(2) а для библиотеки не все ли равно какая ось?
|
|||
4
Aleksey1989
01.02.13
✎
18:45
|
(1) В реестре она прописана, правда компьютер после этого не перегружал, надо перегружать?
(2) Я проверял и на 32, и на 64 битных ОС. Кстати, то, что винда не руссифицированная - это не является ошибкой? |
|||
5
DrShad
01.02.13
✎
18:46
|
(4) ну конечно или у тебя реестр динамически обновляется?
|
|||
6
Aleksey1989
01.02.13
✎
18:51
|
(5) Хорошо, сейчас перезагружаю комп, посмотрим, что будет.
Хотя вряд ли это поможет, т.е. регистрировать эту библиотеку в реестри винды не имеет значения: я проверял у себя на локальной машине, до этого я эту библиотеку никогда не регистрировал (да и винду неделю назад поставил) - у меня никаких ошибок не было. |
|||
7
loh_pedalny
01.02.13
✎
18:51
|
В случае ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаСклонения", "NameDecl", ТипВнешнейКомпоненты.COM);
возвращает Истина или Ложь. Вот возврат и нужно проверять |
|||
8
DrShad
01.02.13
✎
18:51
|
(6) ты у себя был админом компа
|
|||
9
Aleksey1989
01.02.13
✎
18:54
|
Перезагрузил комп - ошибка осталась.
(7) ПодключитьВнешнююКомпоненту возвращает истину. |
|||
10
DrShad
01.02.13
✎
18:58
|
смотри что в реестре прописано, какой progID
|
|||
11
Aleksey1989
01.02.13
✎
19:02
|
(10) "AddIn.NameDecl.1" - это он и есть? просто не очень разбираюсь в реестре винды.
|
|||
12
DrShad
01.02.13
✎
19:05
|
".1" обрати внимание
|
|||
13
DrShad
01.02.13
✎
19:06
|
да и вообщето объект "AddIn.NameDecl"
|
|||
14
Aleksey1989
01.02.13
✎
19:06
|
(12) И что это значит?
П.с. я по-прежнему в этом плохо разбираюсь :( |
|||
15
DrShad
01.02.13
✎
19:06
|
Объект = Новый("AddIn.NameDecl");
|
|||
16
Aleksey1989
01.02.13
✎
19:08
|
(15) Только что попробовал - та же самая ошибка.
|
|||
17
DrShad
01.02.13
✎
19:09
|
а случаем ты не на клиенте сидишь, а код на серваке выполняется?
|
|||
18
Aleksey1989
01.02.13
✎
19:12
|
(17) Код выполняется с директивой компилляции НаСервере, база работает в файловом режиме.
|
|||
19
DrShad
01.02.13
✎
19:16
|
ну у меня progID = AddIn.NameDecl.1
|
|||
20
DrShad
01.02.13
✎
19:16
|
Объект = Новый("AddIn.NameDecl.1");
что говорит? |
|||
21
DrShad
01.02.13
✎
19:19
|
хотя есть и без ".1"
|
|||
22
Aleksey1989
01.02.13
✎
19:21
|
(20) То же самое. Еще раз спрошу про "национальность" ОС: то, что она не руссифицированна, а полностью английская (т.е. русский язык в ней вообще не установлен) - может из-за этого быть ошибка?
|
|||
23
DrShad
01.02.13
✎
19:23
|
да он до языка еще даже не дошел - пишет же тебе русским языком, что не определен такой тип
|
|||
24
Aleksey1989
01.02.13
✎
21:15
|
Больше ни у кого нет идей по данному вопросу?
|
|||
25
Aleksey1989
02.02.13
✎
09:56
|
up
Вообще интересует такой вопрос: как узнать, какой тип надо указывать при создании объекта: Объект = Новый("AddIn.NameDeclension") Почему именно "AddIn.NameDeclension"? |
|||
26
Aleksey1989
02.02.13
✎
13:12
|
УРА!!! Решил проблему. Как решил: скопировал макет зи конфы ЗУП. Компонента, которая находилась в этом макете, имеет тип API, а не COM.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |