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

Программирование - Внешние компоненты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Комментарии
1. Евгений Мартыненков (JohnyDeath) 290 27.02.07 18:37 Сейчас в теме
2. NDeclin (NDeclin) 81 01.03.07 10:21 Сейчас в теме
JohnyDeath, обработка Abadon'a, возможно, подходит для небольших справочников сотрудников, но доверить этому изяществу автоматическое склонение 3-4 тыс человек?.. Может, задуматься:
мужские фамилии типа Болоховецкий, Буркатский, Волконский - полный игнор
с Павлами попадос - Павела (Р), Павелу (Д)
женские имена типа Любовь, Альмира - ноль эмоций
И все это навскидку и в пределах всего 2-х падежей. Вот почему.
Кстати, а чем вам Win9ows-95 не угодил?
http://ru.wikipedia.org/wiki/Windows_95
Без всяких XP ;-)
51. NDeclin (NDeclin) 81 02.11.09 18:58 Сейчас в теме
Из-за необходимости одновременной работы v77+v81 на одном рабочем месте собран специальный билд.

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

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

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

Процедура ПриНачалеРаботыСистемы()
Попытка
ЗагрузитьВнешнююКомпоненту("ndeclin.dll");
ЗагрузитьВнешнююКомпоненту("padeg.dll");
NDS = Новый ("AddIn.NameDeclination");
Исключение
Сообщить( "Функции слонения недоступны", "!" );
КонецПопытки;
КонецПроцедуры;
!! Функции слонения недоступны
Ну и тфу на него! Наверное у кого то работает...
13. Ugu (ge_ni) 296 26.10.07 12:49 Сейчас в теме
Погорячился! Извиняюсь! Все суппппер Ок!++
14. v_id (v_id) 90 27.11.07 11:20 Сейчас в теме
А зачем? Есть же NameDecl.dll от 1С, на любом ИТС
Или я не уловил разницы в функционале?
15. NDeclin (NDeclin) 81 27.11.07 11:40 Сейчас в теме
(14) Не уловил: из всего того, что умеет Padeg - детищу лаборатории 1С по зубам только ФИО (и то не без проблем, в частности, с творительным падежом). Молод он еще, NameDecl-то...
RTFM, да повнимательней ;)
16. Kapitan911 Юрий (Kapitan911) 337 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) 81 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) 65 24.01.08 14:07 Сейчас в теме
Пишу:
ДолжностьР=NDS.ПолучитьСклонениеДолжности(ДолжностьР,"р");
выдает ошибку
Подскажите, какие должны быть параметры у функции? и какие из них являются обязательными?
19. NDeclin (NDeclin) 81 26.01.08 19:43 Сейчас в теме
(18) Всё правильно пишете, текст ошибки забыли написать...
Параметры всех методов подробно описаны в справке Синтакс-Помощника Конфигуратора.
Файл находится в архиве с компонентой, но дополнительно выложен отдельно.
20. Sergey (Sergey K) 65 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) 81 28.01.08 09:47 Сейчас в теме
(20) Ничего не надо регистрировать, а возникающее исключение следует трактовать именно так: компонента нашла padeg.dll, но вызываемая функция в библиотеке отсутствует.
Это вы случайно не с украинской сборкой играетесь?
Sergey K; +1 Ответить
22. Sergey (Sergey K) 65 28.01.08 10:11 Сейчас в теме
(21) - Спасибо! теперь отлично работает..
действительно.. когда я качал я скачал 2 библиотеки.. и видимо в bin поместил для украины..
23. NDeclin (NDeclin) 81 28.01.08 14:40 Сейчас в теме
(22) ну и плюсанули бы тогда уж... мелочь, а приятно :)
24. Алена (ppp111) 12.05.08 12:12 Сейчас в теме
Супер, супер, супер!!! Спасибо Вам!!!!
26. NDeclin (NDeclin) 81 03.06.08 21:35 Сейчас в теме
(25) Результаты тестов, конечно, будут сильно зависеть от набора исходных данных...
Но, тем не менее, интересно, на каком этапе закончится Ваш творческий порыв.
27. Asdam (Asdam) 111 04.06.08 15:22 Сейчас в теме
Сборка для украинского языка склоняет по украинским правилам? Или так как написано в описании: "Склонение ФИО выполняется по правилам склонения имен собственных, принятых в русском языке."?
28. NDeclin (NDeclin) 81 05.06.08 15:14 Сейчас в теме
(27) Конечно, по украинским!
Вы правы, надо отрихтовать шапку, спасибо.
29. Sergey (Mayak) 33 08.10.08 03:42 Сейчас в теме
Нид хелп :(

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

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

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

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

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

Работает.

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

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

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

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

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

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

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

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

(40) В описании также есть Возможности библиотеки для русского языка
44. Дмитрий Курышев (Kuryshev) 15.01.09 17:59 Сейчас в теме
Не могу подключить в 8.1 :-(
Перем Объект Экспорт;

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

Компонента = НСтр(СтрокаСоединенияИнформационнойБазы(),"File") + "\" +"Padeg.dll";
Попытка
ЗагрузитьВнешнююКомпоненту(Компонента);
Объект = Новый ("Padeg.Declension");
Исключение
Сообщить("Не удалось загрузить внешнюю копноненту!", СтатусСообщения.Внимание);
КонецПопытки;
КонецПроцедуры
45. NDeclin (NDeclin) 81 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 Ответить
47. NDeclin (NDeclin) 81 04.03.09 14:53 Сейчас в теме
(46) Компонента пишет в реестр HKEY_LOCAL_MACHINE\SOFTWARE\Padeg, пользователю нужно соответствующее разрешение, в остальном поступать также, как со всеми ВК в подобных случаях.
48. Roman (Kropa) 12.03.09 12:25 Сейчас в теме
Не планируется ли разработка склонений должностей и подразделений в украинском языке?
49. NDeclin (NDeclin) 81 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 Сейчас в теме
Спасибо большое! Очень долго искала и наконец-то нашла. Все работает замечательно
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) 81 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) 81 21.11.09 15:00 Сейчас в теме
(54) Всё у Вас хорошо, всё подключилось ;) Отладчик в данном случае - не ходовая часть. А всё, что Вы (возможно) читали на домашней странице - относится к 7.7 и соотв. версии компоненты.
Попробуйте выполнить в Табло: NDS.ПолучитьВерсию().
56. Mr.CIO (Mr.CIO) 01.12.09 21:24 Сейчас в теме
А не планируете расширить функционал для украинского языка? Думаю, многим бы пригодилось
57. NDeclin (NDeclin) 81 02.12.09 16:04 Сейчас в теме
58. shusharu shusharu (shusharu) 27.08.10 17:19 Сейчас в теме
Работаю по Windows7
При попытке уничтожить объект 1С8 падает.
При чем есть такая характерная особенность, если запусть 1С от имени администратора, то все нормально, а вот под пользователем падает.
Куда копать, в чем могут быть грабли?
Спасибо.
59. Алексей Иванников (ivlexster) 2 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) 81 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) 81 30.03.11 10:21 Сейчас в теме
(61) В мультиязычной версии (пока не опубликована) доступные библиотеки склонения определяются в ini-файле.
Но для первоначальной регистрации компоненты (не библиотеки) права админа все равно нужны, без этого никак.
63. Алексей Иванников (ivlexster) 2 08.04.11 16:22 Сейчас в теме
NDeclin пишет:

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

Спасибо за совет. От использования пришлось отказаться, т.к. у нас при использовании компоненты наблюдалось падение 1С. В частности, 1С закрывалась при попытке воспользоваться конструктором запросов хоть в конфигураторе, хоть в консоли запросов. Я особо активно все это не тестил, поэтому никаких громких заявлений делать не хочу. Просто у нас такое наблюдалось не на одном компьютере и после того, как компоненту отключили, прошло.
64. gambit89 vfrcbv (gambit89) 18.10.11 12:00 Сейчас в теме
А для управляемых приложений эта компонента подходит такое чувство что нет ?!
65. Сергей Сытько (8SiriuS8) 117 08.11.11 10:53 Сейчас в теме
(64) В толстом клиенте работает на ура. А вот в тонком клиенте что-то не получается
67. NDeclin (NDeclin) 81 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
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");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


Не срабатывает. Выходит Исключение
66. Сергей Сытько (8SiriuS8) 117 08.11.11 12:33 Сейчас в теме
(0) Так кто подскажет как быть в тонком клиенте. Как подключать компоненту
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) 81 15.09.12 07:07 Сейчас в теме
(70) #59 #60 читали? Все в наших руках, если что - в личку, разберемся :)
72. Евгений Языков (trudyaga) 06.10.12 13:41 Сейчас в теме
Изменение переменной окружения PATH не дает результатов.
Может чего не так делаю.....
74. Romzes (Romzes) 05.02.13 11:01 Сейчас в теме
Компонента пишет в реестр HKEY_LOCAL_MACHINE\SOFTWARE\Padeg, пользователю нужно соответствующее разрешение, в остальном поступать также, как со всеми ВК в подобных случаях.

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

Причем on-line проверка склоняет правильно. Что не так делаю?
76. NDeclin (NDeclin) 81 13.05.13 09:25 Сейчас в теме
(75) Такое бывает в случае, если библиотека работает без словаря исключений.
Проверьте наличие "Except.dic" в папке с библиотекой "Padeg.dll".
В дефолтном словаре "исполняющий" должен находиться в секции [NonAdjective]
77. Игорь Х (HIgor) 18 13.05.13 09:46 Сейчас в теме
Спасибо, все работает. Заработал только после перезагрузки
78. Алексей Шумаев (begemot) 256 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");
80. NDeclin (NDeclin) 81 01.07.13 14:41 Сейчас в теме
(78) Наличие "padeg.dll" в "D:\NDeclin\" проверяли?
"КомпонентаСклонения.ПолучитьВерсию(1)" должна как раз версию этой библиотеки доложить.
81. Алексей Шумаев (begemot) 256 02.07.13 02:38 Сейчас в теме
(80) Да, все лежит на своих местах...
82. NDeclin (NDeclin) 81 03.07.13 11:36 Сейчас в теме
(81) Попробуйте добавить путь "D:\NDeclin\" в переменную окружения %PATH
83. Алексей Шумаев (begemot) 256 03.07.13 22:59 Сейчас в теме
(82) О! Спасибо, помогло! Под клиентом заработало!!!

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

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

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