gifts2017

V7NDS: Сервис поддержки склонений ФИО для 1С

Опубликовал NDeclin (NDeclin) в раздел Программирование - Внешние компоненты

Внешняя компонента для использования функций склонения по правилам, определенным в подключаемой библиотеке языковой поддержки. Пока таких библиотек две: для русского и украинского языков, количество функций в украинской сборке ограничено. Во всех случаях доступно склонение фамилии, имени и отчества (ФИО), заданных в именительном падеже в форму любого другого падежа (кроме звательного в украинском варианте). Независимо от версии библиотеки, компонента поддерживает тип данных "Справочник" (на вход функциям можно передавать элементы справочников).

Возможности библиотеки для русского языка

ПолучитьСклонениеФИО(Ф,И,О,Род,Падеж) Возвращает результат склонения фамилии, имени и отчества заданного рода в заданный падеж. Возможно автоматическое определение рода по отчеству.

ПолучитьСклонениеФИОизСтроки(ФИО,Род,Падеж) Возвращает результат склонения фамилии, имени и отчества, заданных одной строкой, заданного рода в заданный падеж. Возможно автоматическое определение рода по отчеству.

ПолучитьСклонениеИФ(И,Ф,Род,Падеж) Возвращает результат склонения имени и фамилии заданного рода в заданный падеж

ПолучитьСклонениеИФизСтроки(ИФ,Род,Падеж) Возвращает результат склонения имени и фамилии, записанных одной строкой, заданного рода в заданный падеж

ПолучитьСклонениеДолжности(Д,Падеж,П) Возвращает результат склонения наименования должности в заданный падеж. Если указано подразделение, то возвращается результат «склейки» должности и подразделения, например: ПолучитьСклонениеДолжности(«электромонтер», «дательный», «цех энергоснабжения») = «электромонтеру цеха энергоснабжения»

ПолучитьСклонениеПодразделения(П,Падеж) Возвращает результат склонения наименования подразделения, записанного одной строкой, в заданный падеж

ВосстановитьИменительный(ФИО) Функция выполняет восстановление именительного падежа для ФИО, заданного в произвольном падеже одной строкой

ПолучитьРод(ФИО) Возвращает число - род ФИО, определенный по отчеству

ПолучитьПадеж(ФИО) Возвращает номер падежа ФИО, записанного в произвольном падеже одной строкой

РазделитьФИО(ФИО,Ф,И,О) Процедура разделяет ФИО, записанные одной строкой на составляющие: фамилию, имя, отчество.

ОбновитьСловарьИсключений() Процедура обновляет (перечитывает) текущий словарь исключений
ПолучитьСловарьИсключений() Возвращает имя файла текущего словаря исключений
УстановитьСловарьИсключений(Файл) Устанавливает текущий словарь исключений

Возможности библиотеки для украинского языка:

ПолучитьСклонениеФИО(Ф,И,О,Род,Падеж)
ПолучитьСклонениеФИОизСтроки(ФИО,Род,Падеж)

Не поддерживается звательный падеж и словарь исключений.

Домашняя страница библиотеки языковой поддержки "Склонение ФИО, должностей и подразделений" http://www.delphikingdom.com/asp/viewitem.asp?catalogid=412

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Внешняя компонента V7NDS + файл справки
.1182179090 263,52Kb
02.11.09
517
.1182179090 263,52Kb 517 Бесплатно
Библиотека поддержки украинского языка
.1196078289 28,52Kb
02.11.09
116
.1196078289 28,52Kb 116 Бесплатно
Библиотека поддержки русского языка + словарь исключений
.1212753051 61,92Kb
02.11.09
319
.1212753051 61,92Kb 319 Бесплатно
Файл справки для пользователей v8 (скомпилированный html)
.1238740925 25,13Kb
02.11.09
169
.1238740925 25,13Kb 169 Бесплатно
Внешняя компонента V7NDS для v8: специальный билд (см. комментарий #51)
.zip 234,36Kb
02.11.09
154
.zip 234,36Kb 154 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Евгений Мартыненков (JohnyDeath) 27.02.07 18:37
2. NDeclin (NDeclin) 01.03.07 10:21
JohnyDeath, обработка Abadon'a, возможно, подходит для небольших справочников сотрудников, но доверить этому изяществу автоматическое склонение 3-4 тыс человек?.. Может, задуматься:
мужские фамилии типа Болоховецкий, Буркатский, Волконский - полный игнор
с Павлами попадос - Павела (Р), Павелу (Д)
женские имена типа Любовь, Альмира - ноль эмоций
И все это навскидку и в пределах всего 2-х падежей. Вот почему.
Кстати, а чем вам Win9ows-95 не угодил?
http://ru.wikipedia.org/wiki/Windows_95
Без всяких XP ;-)
3. NDeclin (NDeclin) 03.04.07 17:03
Уважаемые коллеги!
2 сотни загрузок и никому нечего сказать?.. Или попробовали только те, кто спасибо нажал :)
4. NDeclin (NDeclin) 18.06.07 19:29
Некоторые всё-таки попытались привинтить компоненту к v8. Цитата:
На 7.7 все работает отлично. На 8.0 компонента загружается, создается объект, но при выполнении любого из методов база вываливается с сообщением об ошибке приложения 1С.
В результате появился на свет 19-й билд. Проверялось на релизе 8.1.6.38.
Вариант подключения:
Код
Перем NDS Экспорт;

Процедура ПриНачалеРаботыСистемы()
   Попытка
      ЗагрузитьВнешнююКомпоненту("ndeclin.dll");
      NDS = Новый ("AddIn.NameDeclination");
   Исключение
      Сообщить( "Функции слонения недоступны", "!" );
   КонецПопытки;
КонецПроцедуры;
Показать полностью
5. Сhe Burashka (CheBurator) 18.06.07 20:45
А пробовали заюзать разработку "Падеж "Крохотулька" с проклаба? народ о ней неплохо отзывается...
6. NDeclin (NDeclin) 19.06.07 06:39
Да уж пробовали... Можно сказать, что с неё всё и началось (здесь http://ndeclin.narod.ru/core.htm есть небольшой рассказ об этом). В итоге пришлось строить ВК, захотелось вот, понимаете ли, ПОЛНОСТЬЮ автоматического склонения :)
7. Сергей Старых (tormozit) 19.06.07 11:22
Но нигде нет изменения по числам. А так хочется.
8. Сhe Burashka (CheBurator) 19.06.07 12:41
Ну что хочется сказать...
За ночь в принципе кадровики сами смогли бы просклонять всеь список вручную.. в минуту - 5-8 человек просклонять можно.. за час - 350 чел, за ночь (с 22 до 8) - как раз набежалобы 3500... двоем даже не напряглись бы как следует.. ;-)
9. NDeclin (NDeclin) 19.06.07 17:22
Ребят! "Крохотулька" она и есть - крохотулька. Кому её возможностей хватает - да ради Бога!..
Ну не нравится мне, например, что она должности в нижний регистр переводит, и всё тут!
С творительным падежом у ней нелады вот были не так давно (Роман=Романым, Вячеслав=Вячеславым).
Цитата с про-клаба:
А зачем так "намудрили" с вложенными условиями? Добавлять новые исключения очень неудобно.
И парься с этими вложенными условиями потом...
А практика показывает, что словарь исключений - просто необходим. Великий и могучий - куда ж денешься...
10. NDeclin (NDeclin) 27.06.07 22:49
2 tormozit:
если Вы конкретизируете исходные условия и конечный результат туманной фразы "изменения по числам" - возможно, ОНО и появится.
11. Ugu (ge_ni) 26.10.07 11:36
V8.0 8.0.16.2
AddIn.NameDeclination :: ПолучитьСклонениеФИО() : Не найдена библиотека "Склонение ФИО" (Padeg.DLL).
???? А где эту Padeg.DLL получить, или в этом весь s...x и состоит?!
Грузил, как рекомендовали в п.4
12. Ugu (ge_ni) 26.10.07 12:03
Padeg.dll нашел, скопировал куда только... Padeg.reg запустил...
Перем NDS Экспорт;

Процедура ПриНачалеРаботыСистемы()
Попытка
ЗагрузитьВнешнююКомпоненту("ndeclin.dll");
ЗагрузитьВнешнююКомпоненту("padeg.dll");
NDS = Новый ("AddIn.NameDeclination");
Исключение
Сообщить( "Функции слонения недоступны", "!" );
КонецПопытки;
КонецПроцедуры;
!! Функции слонения недоступны
Ну и тфу на него! Наверное у кого то работает...
13. Ugu (ge_ni) 26.10.07 12:49
Погорячился! Извиняюсь! Все суппппер Ок!++
14. v_id (v_id) 27.11.07 11:20
А зачем? Есть же NameDecl.dll от 1С, на любом ИТС
Или я не уловил разницы в функционале?
15. NDeclin (NDeclin) 27.11.07 11:40
(14) Не уловил: из всего того, что умеет Padeg - детищу лаборатории 1С по зубам только ФИО (и то не без проблем, в частности, с творительным падежом). Молод он еще, NameDecl-то...
RTFM, да повнимательней ;)
16. Kapitan911 Юрий (Kapitan911) 07.01.08 09:42
Ошибка при создании объекта из компоненты D:\DataBase\PRBasic\padeg.dll (отсутствует CLSID)
Делаю:
regsvr32 D:\DataBase\PRBasic\Padeg.dll
Ошибка:
D:\DataBase\PRBasic\Padeg.dll была загружена, но найти точку входа для DllRegisterServer не удалось. Зарегестрировать этот файл невозможно.
17. NDeclin (NDeclin) 08.01.08 07:58
(16) Вообще-то компонента реализована в файле ndeclin.dll. А padeg.dll (для русского языка) существует в двух сборках: с COM-сервером и без него. Вы взяли "лайт"-версию и пытаетесь использовать то, чего нет.
Если применяется компонента - ничего нигде не надо регистрировать.
Если же решено работать с padeg.dll "напрямую" - берите http://www.delphikingdom.com/zip/pd_Library.zip и еще раз то же самое...
18. Sergey (Sergey K) 24.01.08 14:07
Пишу:
ДолжностьР=NDS.ПолучитьСклонениеДолжности(ДолжностьР,"р");
выдает ошибку
Подскажите, какие должны быть параметры у функции? и какие из них являются обязательными?
19. NDeclin (NDeclin) 26.01.08 19:43
(18) Всё правильно пишете, текст ошибки забыли написать...
Параметры всех методов подробно описаны в справке Синтакс-Помощника Конфигуратора.
Файл находится в архиве с компонентой, но дополнительно выложен отдельно.
20. Sergey (Sergey K) 28.01.08 06:18
(19)
Скопировал Padeg.DLL в папку bin, запустил Padeg.reg..
В модуле приложения:
Попытка
ЗагрузитьВнешнююКомпоненту("ndeclin.dll");
// ЗагрузитьВнешнююКомпоненту("Padeg.dll");
NDS = Новый ("AddIn.NameDeclination");
Исключение
Сообщить( "Функции слонения недоступны");
КонецПопытки;

В модуле док-та: ДолжностьР=NDS.ПолучитьСклонениеДолжности(ДолжностьР,"р");

Ошибка: AddIn.NameDeclination :: ПолучитьСклонениеДолжности() : Ошибка вызова функции библиотеки Padeg.DLL.

Если в модуле приложения пытаюсь также грузить padege.dll(ЗагрузитьВнешнююКомпоненту("Padeg.dll");), то она вобще не загружается..

Подскажите пожалуйста, как правильно регистрировать библиотеки и в каком порядке?
21. NDeclin (NDeclin) 28.01.08 09:47
(20) Ничего не надо регистрировать, а возникающее исключение следует трактовать именно так: компонента нашла padeg.dll, но вызываемая функция в библиотеке отсутствует.
Это вы случайно не с украинской сборкой играетесь?
22. Sergey (Sergey K) 28.01.08 10:11
(21) - Спасибо! теперь отлично работает..
действительно.. когда я качал я скачал 2 библиотеки.. и видимо в bin поместил для украины..
23. NDeclin (NDeclin) 28.01.08 14:40
(22) ну и плюсанули бы тогда уж... мелочь, а приятно :)
24. Алена (ppp111) 12.05.08 12:12
Супер, супер, супер!!! Спасибо Вам!!!!
26. NDeclin (NDeclin) 03.06.08 21:35
(25) Результаты тестов, конечно, будут сильно зависеть от набора исходных данных...
Но, тем не менее, интересно, на каком этапе закончится Ваш творческий порыв.
27. Asdam (Asdam) 04.06.08 15:22
Сборка для украинского языка склоняет по украинским правилам? Или так как написано в описании: "Склонение ФИО выполняется по правилам склонения имен собственных, принятых в русском языке."?
28. NDeclin (NDeclin) 05.06.08 15:14
(27) Конечно, по украинским!
Вы правы, надо отрихтовать шапку, спасибо.
29. Sergey (Mayak) 08.10.08 03:42
Нид хелп :(

ЗагрузитьВнешнююКомпоненту("ndeclin.dll");
NDS = Новый ("AddIn.NameDeclination");
Исключение
Сообщить( "Функции слонения недоступны");
КонецПопытки;

ФИО_Контрагента = NDS.ПолучитьСклонениеДолжности("Ковалев Сергей Леонидович",,3);

Ничего не происходит. NDeclin.dll в bin добавил
30. Аркадий Кучер (Abadonna) 08.10.08 06:07
(29) >Исключение
Не отрабатывает ЗагрузитьВнешнююКомпоненту Исключение НИКОГДА, не отрабатывала и не будет отрабатывать!!!!
Она выполняется ВСЕГДА, возвращает 0 или 1. Конструкция "Попытка ЗагрузитьВнешнююКомпоненту" - полный бред
31. Sergey (Mayak) 08.10.08 13:17
Компонента от 1С:
Компонента = "NameDecl.dll";
Попытка
ЗагрузитьВнешнююКомпоненту(Компонента);
Объект = Новый ("AddIn.NameDeclension");
Исключение
Сообщить("Не удалось загрузить компоненту по причине " + ОписаниеОшибки());
КонецПопытки;

СтрокаФИО = "Ковалев Ковалев Петр Михайлович";
Падеж = 2;

РезультатСклонения = Объект.Просклонять(СтрокаФИО, Падеж);

Работает.

Компонента от NDeclin:

Компонента = "ndeclin.dll";
Попытка
ЗагрузитьВнешнююКомпоненту(Компонента);
Объект = Новый ("AddIn.NameDeclination");
Исключение
Сообщить("Не удалось загрузить компоненту по причине " + ОписаниеОшибки());
КонецПопытки;

СтрокаФИО = "Ковалев Петр Михайлович";
Падеж = 2;

РезультатСклонения = Объект.ПолучитьСклонениеДолжности(СтрокаФИО, ,Падеж);

Неработает
32. NDeclin (NDeclin) 08.10.08 13:28
> 29.Mayak 08.10.2008
> Ничего не происходит. NDeclin.dll в bin добавил

Добавили туда же padeg.dll и except.dic ?
33. Sergey (Mayak) 08.10.08 13:53
Добавлены в папку где и NDeclin.dll
34. Sergey (Mayak) 08.10.08 14:15
Заработало, только я использовал
РезультатСклонения = Объект.ПолучитьСклонениеФИО("Ковалев","Петр","Михайлович",1,"2");
35. Sergey (Mayak) 08.10.08 14:18
Тьфу блин, опечтка была, только сейчас увидел что использовал не ту процедуру :)
36. NDeclin (NDeclin) 09.10.08 10:22
34,35) Да уж, чего только не бывает :)

Еще одна нечасто, но встречающаяся, ошибка "Неправильно склоняет любые женские фамилии" возникает, как правило, при попытках отправить милых дам в командировку, применяя при этом склонение в родительный падеж (нужно склонять в винительный). У джентельменов обе формы совпадают, поэтому и возникает недоразумение:

// "направить в командировку..."
ПолучитьСклонениеФИОизСтроки("Ковалев Петр Михайлович",,"родительный") = "Ковалева Петра Михайловича"
// "это же совершенно правильный результат!"
ПолучитьСклонениеФИОизСтроки("Ковалева Елена Михайловна","ж","родительный") = "Ковалевой Елены Михайловны"
// "неправильно склоняет любые женские фамилии!"
37. svs1s (svs1s) 10.11.08 17:18
Спасибо. Очень помогла DLL. Пожелание - Можно ли использовать одновременно для русского и украинского. В одной базе несколько фирм и приказы на разных языках.
38. NDeclin (NDeclin) 11.11.08 18:11
(37) Можно. Вариант такой: регистрируете в ОС русскоязычную сборку padeg.dll с COM-сервером, а украинскую padeg.dll используете через компоненту. Имеем 2 объекта, теряем некоторые преимущества для русского языка (регистрация на каждой станции, контроль типов, ...), но работать будет. Методы объектов (англоязычные) в обоих случаях совпадают, немного усилий - сводим оба языка к функциям глобального модуля, в которых по контексту/параметру определяем, какой объект использовать... Ну и так далее.
39. buh (buh) 17.11.08 00:54
Здравствуйте. Понадобилось просклонять слово "пригоден". Использую функцию ПолучитьСклонениеПодразделения(склоняемое,2).
На выходе выдает пригодена, а не пригодна. Можете что-нибудь посоветовать в этой ситуации?
40. Василий Демидов (Душелов) 17.11.08 01:13
(39) Если я не ошибаюсь, то данный сервис склоняет только ФИО, судя по названию и описанию.
41. buh (buh) 17.11.08 13:02
(40) Ошибаешься. С помощью функции ПолучитьСклонениеПодразделения() мне удалось просклонять, к примеру, название организации
42. NDeclin (NDeclin) 18.11.08 12:01
(39) Если слово пригоден является краткой формой качественного прилагательного пригодный, то оно не склоняется http://www.lingvotech.com/shortform Полная форма прилагательного склоняется библиотекой "на ура".

(40) В описании также есть Возможности библиотеки для русского языка
43. svs1s (svs1s) 24.11.08 14:37
(38) Спасибо. Я так и сделал, а для склонения должностей на украинском прицепил Padeg_ua.dll, которая в бесплатном варианте должности скланяет во всех падежах, а ФИО только в двух. Еще раз спасибо за ваши dll/
44. Дмитрий Курышев (Kuryshev) 15.01.09 17:59
Не могу подключить в 8.1 :-(
Перем Объект Экспорт;

Процедура Кнопка1Нажатие(Элемент)

Компонента = НСтр(СтрокаСоединенияИнформационнойБазы(),"File") + "\" +"Padeg.dll";
Попытка
ЗагрузитьВнешнююКомпоненту(Компонента);
Объект = Новый ("Padeg.Declension");
Исключение
Сообщить("Не удалось загрузить внешнюю копноненту!", СтатусСообщения.Внимание);
КонецПопытки;
КонецПроцедуры
45. NDeclin (NDeclin) 18.01.09 17:03
(44) Padeg.dll не является внешней компонентой. Изучаем мат.часть http://ndeclin.narod.ru/connect.htm
46. Roman (Kropa) 03.03.09 14:41
Есть проблема - под администратором все работает отлично, под пользователем 1с 8.1 "вылетает" при обращенни к функциям. Использую внешнюю компоненту и Padeg.dll для украинского языка. Куда смотреть?
Где можно взять Padeg.dll с возможностью использования без внешней компоненты.
meripopins; +1 Ответить 1
47. NDeclin (NDeclin) 04.03.09 14:53
(46) Компонента пишет в реестр HKEY_LOCAL_MACHINE\SOFTWARE\Padeg, пользователю нужно соответствующее разрешение, в остальном поступать также, как со всеми ВК в подобных случаях.
48. Roman (Kropa) 12.03.09 12:25
Не планируется ли разработка склонений должностей и подразделений в украинском языке?
49. NDeclin (NDeclin) 12.03.09 16:12
(48) Более эффективным было бы задать этот вопрос напрямую авторам библиотеки, обсуждение здесь http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=412
От себя скажу, что планируется сборка "мультиязычной" компоненты (2 текущих языка - это, конечно, не так много, но люди спрашивали)
50. Екатерина Котова (kate_kate) 30.07.09 16:58
Спасибо большое! Очень долго искала и наконец-то нашла. Все работает замечательно
51. NDeclin (NDeclin) 02.11.09 18:58
Из-за необходимости одновременной работы v77+v81 на одном рабочем месте собран специальный билд.

1) Изменен ProgID="AddIn.NameDeclensionV8"
2) Ликвидирована запись в реестр в HKLM\SOFTWARE\Padeg (см. #47)
3) Отключено интерактивное управление словарем (как следствие (2))

Пример кода инициализации:
#Если Клиент Тогда
	Попытка
		ЗагрузитьВнешнююКомпоненту( "ndeclin8.dll" );
		Склонение = Новый( "AddIn.NameDeclensionV8" );
	Исключение
		Сообщить( "Ошибка загрузки внешней компоненты V7NDS для склонения ФИО!" );
	КонецПопытки;
#Иначе
	Склонение = Неопределено;
#КонецЕсли
...Показать Скрыть

52. soyansk (soyansk) 13.11.09 17:48
Создал общую папку на сервере, скинул туда три файла Padeg.dll, Except.dic, Ndeclin.dll. Использую следующий код:
Попытка
ЗагрузитьВнешнююКомпоненту(ОбщийКаталог+"\ndeclin.dll");
NDS = Новый( "AddIn.NameDeclination" );
Исключение
Сообщить( "Ошибка загрузки внешней компоненты V7NDS для склонения ФИО!" );
КонецПопытки;
Далее Сервис-Параметры-СклонениеФИО сервис поддержки ndeclin видит, а padeg нет. Почему?
53. NDeclin (NDeclin) 14.11.09 20:18
(52) Потому что
Компонента ищет библиотеку так, как ищет 1С:Предприятие саму компоненту: сначала в каталоге информационной базы, затем - в каталоге с исполняемыми файлами 1С.

http://ndeclin.narod.ru/connect.htm
54. soyansk (soyansk) 19.11.09 17:28
Не могу подключить в 8.1. Скопировал в BIN все файлы (Padeg.dll, Except.dic, Ndeclin.dll) Использую код:
Перем NDS Экспорт; 

Процедура ПриНачалеРаботыСистемы() 
   Попытка 
      ЗагрузитьВнешнююКомпоненту("ndeclin.dll"); 
      NDS = Новый ("AddIn.NameDeclination"); 
   Исключение 
      Сообщить( "Функции слонения недоступны", "!" ); 
   КонецПопытки; 
КонецПроцедуры;
...Показать Скрыть

Отрабатывает без ошибок, Сервис-Параметры-Склонение ФИО в форме все заполнено, но NDS в отладчике-НеизвестныйОбъект. Подскажите что делать?
55. NDeclin (NDeclin) 21.11.09 15:00
(54) Всё у Вас хорошо, всё подключилось ;) Отладчик в данном случае - не ходовая часть. А всё, что Вы (возможно) читали на домашней странице - относится к 7.7 и соотв. версии компоненты.
Попробуйте выполнить в Табло: NDS.ПолучитьВерсию().
56. Mr.CIO (Mr.CIO) 01.12.09 21:24
А не планируете расширить функционал для украинского языка? Думаю, многим бы пригодилось
57. NDeclin (NDeclin) 02.12.09 16:04
58. shusharu (shusharu) 27.08.10 17:19
Работаю по Windows7
При попытке уничтожить объект 1С8 падает.
При чем есть такая характерная особенность, если запусть 1С от имени администратора, то все нормально, а вот под пользователем падает.
Куда копать, в чем могут быть грабли?
Спасибо.
59. Алексей Иванников (ivlexster) 02.03.11 16:29
Проблема с использованием V7NDS + 1С 8.1. Файлы Padeg.dll, Except.dic, Ndeclin.dll лежат в отдельной папке, не в bin, т.к. 1С стоит более чем на 50 машинах, на каждом свой bin (устанавливал не я). Подключаю Ndeclin.dll при начале работы системы, однако в параметрах на закладке Склонение ФИО пишет, что нет библиотеки padeg.dll, а при попытке просклонять что-либо выводится сообщение: Не найдена библиотека "Склонение ФИО" (Padeg.DLL). если положить в bin хотя бы Padeg.dll - все нормально. Подскажите, пожалуйста, можно ли решить проблему, не копируя ничего в bin. Также требуется не писать ничего в реестр и ничего нигде не регистрировать. Именно поэтому используется special build.
Прикрепленные файлы:
60. NDeclin (NDeclin) 12.03.11 15:48
(59) Если Ваша религия позволяет изменить переменную окружения PATH, то ответ - положительный :)
61. qwertyasid Семенов (qwertyasid) 29.03.11 02:46
(60) а можно компаненту дополнить следующим функционалом
	КаталогИБ = СтрокаСоединенияИнформационнойБазы();
	КаталогИБ = Сред(КаталогИБ,7,СтрДлина(КаталогИБ)-8); 
	ЗагрузитьВнешнююКомпоненту(КаталогИБ+"\NDeclin8.dll"); 
	//	 инициализируем параметры 
	NDS = Новый ("AddIn.NameDeclensionV8");
	NDS.УстановитьКаталогБиблиотеки = КаталогИБ+"\Padeg.dll";
	NDS.УстановитьФайлИсключений = КаталогИБ+"\Except.dic";
	NDS.Загрузить();
...Показать Скрыть
т.е. смысл в том чтоб не меняя какие то другие параметры можно спокойна загружать библиотеку даже не имея правов админа.
ну и естесно если эти параметры не установлены то все по умолчанию.
62. NDeclin (NDeclin) 30.03.11 10:21
(61) В мультиязычной версии (пока не опубликована) доступные библиотеки склонения определяются в ini-файле.
Но для первоначальной регистрации компоненты (не библиотеки) права админа все равно нужны, без этого никак.
63. Алексей Иванников (ivlexster) 08.04.11 16:22
NDeclin пишет:

(59) Если Ваша религия позволяет изменить переменную окружения PATH, то ответ - положительный

Спасибо за совет. От использования пришлось отказаться, т.к. у нас при использовании компоненты наблюдалось падение 1С. В частности, 1С закрывалась при попытке воспользоваться конструктором запросов хоть в конфигураторе, хоть в консоли запросов. Я особо активно все это не тестил, поэтому никаких громких заявлений делать не хочу. Просто у нас такое наблюдалось не на одном компьютере и после того, как компоненту отключили, прошло.
64. gambit89 vfrcbv (gambit89) 18.10.11 12:00
А для управляемых приложений эта компонента подходит такое чувство что нет ?!
65. Сергей Сытько (8SiriuS8) 08.11.11 10:53
(64) В толстом клиенте работает на ура. А вот в тонком клиенте что-то не получается
66. Сергей Сытько (8SiriuS8) 08.11.11 12:33
(0) Так кто подскажет как быть в тонком клиенте. Как подключать компоненту
67. NDeclin (NDeclin) 11.11.11 13:09
(64)(66) Смотрим С-П 8.2 (изучаем мат.часть):
1) ЗагрузитьВнешнююКомпоненту(<ИмяФайла>)
...
Доступность: Толстый клиент.
2) ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>)
...
Описание варианта метода:
Подключает компоненты, выполненые по технологии Native API и COM.
Компонента может храниться в информационной базе или макете конфигурации в виде двоичных данных или в ZIP-архиве.
Для режимов запуска "Тонкий клиент" и "Веб-клиент", компонента должна быть предварительно установлена методом УстановитьВнешнююКомпоненту.
...
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Мануалы курили здесь, например:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=557257
68. Аня (anonimka) 17.01.12 18:39
В личку написать не удалось :)
Большое спасибо за склонение ФИО по-украински. Посоветовали здесь http://www.forum.mista.ru/topic.php?id=589937
Очень выручил!
69. yuravk (YuraVK) 17.05.12 16:43
Да, за украинский спасибо (присоединяюсь).
70. Евгений Языков (trudyaga) 13.09.12 14:14
Внешняя компонента хорошая, только плохо что Padeg.dll должна находится только в каталоге программы.
Нет возможности сохранить компоненту в макет.
Плюсую.
71. NDeclin (NDeclin) 15.09.12 07:07
(70) #59 #60 читали? Все в наших руках, если что - в личку, разберемся :)
72. Евгений Языков (trudyaga) 06.10.12 13:41
Изменение переменной окружения PATH не дает результатов.
Может чего не так делаю.....
73. Алексей К (Shum23str) 06.12.12 12:54
(67) NDeclin,

Можете подсказать как правильно подключить компоненту в Управляемом приложении?

Я вот делаю так:

Попытка
ПодключитьВнешнююКомпоненту("C:\Program Files\1cv82\8.2.16.368\bin\ndeclin.dll", "Comp", ТипВнешнейКомпоненты.Native);
NDS = Новый("AddIn.NameDeclination");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


Не срабатывает. Выходит Исключение
74. Romzes (Romzes) 05.02.13 11:01
Компонента пишет в реестр HKEY_LOCAL_MACHINE\SOFTWARE\Padeg, пользователю нужно соответствующее разрешение, в остальном поступать также, как со всеми ВК в подобных случаях.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Padeg это для 64-битных систем
75. Игорь Х (HIgor) 07.05.13 15:26
Исполняющий обязанности начальника отдела
Исполняющего обязанности начальники отдела
Исполняющему обязанности начальнике отдела
Исполняющего обязанности начальнику отдела
Исполняющим обязанности начальникой отдела

Причем on-line проверка склоняет правильно. Что не так делаю?
76. NDeclin (NDeclin) 13.05.13 09:25
(75) Такое бывает в случае, если библиотека работает без словаря исключений.
Проверьте наличие "Except.dic" в папке с библиотекой "Padeg.dll".
В дефолтном словаре "исполняющий" должен находиться в секции [NonAdjective]
77. Игорь Х (HIgor) 13.05.13 09:46
Спасибо, все работает. Заработал только после перезагрузки
78. Алексей (begemot) 23.06.13 19:23
(0) После перевода конфигурации на клиент-серверный режим работы перестала подключаться библиотека.
Сообщить("Компонента подключена? " + ПодключитьВнешнююКомпоненту("D:\NDeclin\NDeclin.dll","КомпонентаNDeclin", ТипВнешнейКомпоненты.COM));
КомпонентаСклонения = Новый ("AddIn.КомпонентаNDeclin.NameDeclination");

Сообщить("Версия компоненты = " + КомпонентаСклонения.ПолучитьВерсию());
Сообщить("Версия библиотеки = " + КомпонентаСклонения.ПолучитьВерсию(1));

ФИО = "Балаболкин Егор Семенович";
Имя = ""; Фамилия = ""; Отчество = "";
КомпонентаСклонения.РазделитьФИО(ФИО, Фамилия, Имя, Отчество);

Сообщить("Фамилия  = " + Фамилия);
Сообщить("Имя      = " + Имя);
Сообщить("Отчество = " + Отчество);
...Показать Скрыть

Если выполняю код на клиенте, то в ответ получаю:
Компонента подключена? Да
Версия компоненты = 2.1.0.19
Версия библиотеки =
Фамилия =
Имя =
Отчество =

Т.е. вроде бы подключилась, но не до конца. И результат пуст, хотя и ошибку не выдает...

Если пробую выполнить код на Сервере, то:
Компонента подключена? Нет
{Форма.Форма.Форма(26)}: Тип не определен (AddIn.КомпонентаNDeclin.NameDeclination)
КомпонентаСклонения = Новый ("AddIn.КомпонентаNDeclin.NameDeclination");
79. Константин (fort13) 26.06.13 10:26
Спасибо! Ооочень пригодилось!
80. NDeclin (NDeclin) 01.07.13 14:41
(78) Наличие "padeg.dll" в "D:\NDeclin\" проверяли?
"КомпонентаСклонения.ПолучитьВерсию(1)" должна как раз версию этой библиотеки доложить.
81. Алексей (begemot) 02.07.13 02:38
(80) Да, все лежит на своих местах...
82. NDeclin (NDeclin) 03.07.13 11:36
(81) Попробуйте добавить путь "D:\NDeclin\" в переменную окружения %PATH
83. Алексей (begemot) 03.07.13 22:59
(82) О! Спасибо, помогло! Под клиентом заработало!!!

Но еще хотелось бы разобраться с подключением компоненты на стороне сервера.
&НаСервере
Процедура ВыполнитьКомандуСервер()
    Сообщить("Компонента подключена? " + ПодключитьВнешнююКомпоненту("D:\NDeclin\NDeclin.dll","КомпонентаNDeclin", ТипВнешнейКомпоненты.COM));
КонецПроцедуры

Выдает сообщение "Нет". Т.е. сама компонента не подключается.
Я, честно говоря, не силен в технологиях компонент. Нашел информацию "Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С". Пробую делать по инструкции. На 7 пункте, при подключении компоненты, выбираю файл D:\NDeclin\NDeclin.dll, но в поле "Найденные компоненты" ничего не появляется. И соответственно регистрацию завершить не представляется возможным...
84. Константин (fort13) 01.10.13 09:55
Спасибо за библиотеку с поддержкой украинского языка :)
85. Олег Черепнёв (Nowa) 28.11.13 11:20
Спасибо!
Заработало в 7.7 :)
86. ugroblin (ugroblin) 11.02.14 16:19
Спасибо за компоненту, но есть одна проблема: искажает национальные казахские символы. Например, в наименовании организации "Нұр" превращается в "Н?р". Как обойти? Можете сделать билд с поддержкой казахских символов?

Использовал "Внешняя компонента V7NDS для v8: специальный билд".
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа