Имя: Пароль:
1C
1С v8
Опять этот NAMEDECL.DLL
, ,
0 sx_999
 
05.06.19
12:04
Тема избитая, но не забытая. (Как я понял по записям данного форума и поиске в интернете)

Код:
&НаСервере
Функция СклонениеФИО(ФИО, Падеж)
    Результат = "";
         ПутьККомпоненте="C:\NAMEDECL.DLL";
         NameDecl = "AddIn.NameDeclension";
     Попытка
        Если ПодключитьВнешнююКомпоненту(ПутьККомпоненте,NameDecl) Тогда
            Результат = "1." + NameDecl.Просклонять(ФИО,Падеж);
        Иначе
            Результат = "3.";
        КонецЕсли;
     Исключение
         Результат = "2. Не удалось загрузить внешнюю компаненту по причине: "+ОписаниеОшибки();
    КонецПопытки;
    Возврат Результат;
КонецФункции


&НаКлиенте
Процедура ПоКнопкеВыполнить(Команда)
    Сообщить("Результат " + СклонениеФИО("Иванов Иван Иванович", 2));
КонецПроцедуры


Ошибка:
Результат 2. Не удалось загрузить внешнюю компаненту по причине: {Обработка.ДляТестов.Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (ПодключитьВнешнююКомпоненту): Недопустимое значение параметра (параметр номер '1') (Некорректное имя компоненты)

Выполняю на ТОЛСТОМ клиенте, с диска C:, где и лежат сама база и библиотечка.

Что я делаю не так? :)
1 Numerus Mikhail
 
05.06.19
12:23
(0) Путь на сервере ведет в другое место, вероятнее всего
2 sx_999
 
05.06.19
12:26
(1) - Не понял, о чём ты вообще? Я ведь конкретный путь и имя файла указал. Куда он ещё то может вести?

И сама ошибка намекает на совсем другую вещь. (Некорректное имя компоненты)
3 sx_999
 
05.06.19
12:27
(1) - По сути, строка "NameDecl = "AddIn.NameDeclension";", должна выглядеть иначе. Только вот как?
4 Numerus Mikhail
 
05.06.19
12:29
(2) Ну смотри
Есть клиент и есть сервер
Диск С на клиенте и диск С на сервере не всегда одно и то же
Для чистоты эксперимента сделай так именно на сервере:

Файл = Новый Файл(ПутьККомпоненте);
Сообщить(Файл.Существует());
5 ДенисЧ
 
05.06.19
12:36
"NameDecl = "AddIn.NameDecl";
Не пробовал?
6 ДенисЧ
 
05.06.19
12:37
7 sx_999
 
05.06.19
12:43
(4) - пробовал, ответ "Да"
(5) - И этот вариант, тоже пробовал. (даже залез в dll-ьку и глянул её название там)
(6) - Сейчас, поглядим.
8 sx_999
 
05.06.19
12:49
(6) - проверил даже нативный метод, сообщение (Не удалось подключить внешнюю компоненту по причине: {Обработка.ДляТестов.Форма.Форма.Форма(29)}: Тип не определен (AddIn.NameDecl.CNameDecl))
9 Fish
 
05.06.19
12:51
(8) Возьми функцию без компонент. глПадеж ищи.
10 sx_999
 
05.06.19
12:51
(6) а вот http://morpher.ru/ws3/ достаточно интересный вариант, но к сожалению не применим в тех случаях, когда нет интернета. ;)
11 sx_999
 
05.06.19
12:53
(9) - Где искать, в чистой базе? (я имею в веду, полностью чистую, а не на базе бух и т.д.)
12 Numerus Mikhail
 
05.06.19
13:22
Вот так попробуй

NameDecl = "AddIn_NameDeclension";
ПодключитьВнешнююКомпоненту(ПутьККомпоненте,NameDecl)