Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Опять этот NAMEDECL.DLL

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

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


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


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

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

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

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

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

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

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