IE 2018

Склонение украинских ФИО, должностей и подразделений в семи падежах. DLL с поддержкой OLE.

Программирование - Практика программирования

26
Склонение осуществляется из именительного во все остальные падежи.
Пол сотрудника определяется по отчеству (если не указан явно).
Библиотека может использоваться из 1С 7.7, 8.x, C, Pascal, Visual Basic, MS Office, MS SQL, Oracle и др.
Update: Полная версия с исходниками на Turbo Delphi.

Библиотека (Padeg_ua.dll) предназначена для склонения фамилии, имени, отчетства (ФИО), должностей и подразделений по правилам украинского языка.

Полная версия с исходниками на Turbo Delphi.

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

Библиотека может использоваться из 1С, C, Pascal, Visual Basic, MS Office, MS SQL, Oracle и др.

Интерфейс взаимодействия.
Для 1С рекомендуется использовать OLE. Пример использования:

  Склонение = СоздатьОбъект("Padeg_ua.Declension");
...
Сообщить(Склонение.GetFIOPadegFS( Сотрудник.Наименование, "", 2 ); 


Предварительно необходимо поместить библиотеку в общедоступную папку или папку программы и зарегистрировать её при помощи команды: regsvr32.exe <Путь>\Padeg_ua.dll

Доступ к функциям библиотеки осуществляется также как и к функциям библиотеки Padeg.dll.
Это библиотека склонения по правилам русского языка, её автора: С.Плахов и Г.Покаташкин.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=412
Вся документация и примеры использования Padeg.dll также применимы к Padeg_ua.dll.

Отличия по сравнению с Padeg.dll:
- имя файла и имя OLE класса - Padeg_ua;
- отсутствует OLE класс Dictionary, добавлено свойство DictionaryFileName, и функция UpdateDictionary.
- не реализованы функции восстановления именительного падежа и определения падежа;
- отличается словарь исключений.

Правила склонения
Реализованы правила склонения существительных и прилагательных.
Правила склонения сформулированы по материалам электронного учебника:
http://linguist.univ.kiev.ua/WINS/pidruchn/index.htm

Для женских фамилий на -а, -я, а также для должностей программа пытается
определить часть речи по окончанию слова, в редких случаях неуспешно.

Исключения из правил (не рассмотренные в учебнике), а также
неудовлетворительные попытки программы определить часть речи
необходимо заносить в словарь исключений - файл "Padeg_ua.dic".
Файл создается при первом обращении к библиотеке.

Версия 1.0.0.3
Исправлено склонение в звательном падеже для существительных 2 группы,
согласно правил электронного учебника: http://www.mova.info/Pidruchn.aspx,
раздел "МОРФОЛОГІЯ, 8. Відмінювання іменників II відміни".

Версия 1.0.0.4
Полнофункциональная без ограничений с исходными кодами, других исправлений и изменений нет.

26

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

Наименование Файл Версия Размер
Библиотека + Примеры вызова из 1С и Delphi + Исходники
.zip 499,90Kb
11.05.10
507
.zip 499,90Kb 507 Скачать бесплатно

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. vip 08.11.07 17:43 Сейчас в теме
Падежей в русском и украинском вроде шесть.
А вот в венгерском 126.
Слабо расширение для венгерского сделать? :)
palamars; +1 Ответить
3. Abadonna 3719 08.11.07 17:59 Сейчас в теме
(1) Андрей, а ты откуда мадьярский знаешь? ;)
4. vip 08.11.07 18:05 Сейчас в теме
(3) Да я и китайским, как ты знаешь, в совершенстве владею :)))
41. Spacer 283 15.08.13 10:23 Сейчас в теме
(1) vip, в украинском на самом деле не 6 падежей, а 7.
Есть еще такой 7-й хитрый падеж - "кличний" называется.:)
2. tarasenkov 08.11.07 17:49 Сейчас в теме
5. astonvilla 227 09.11.07 11:56 Сейчас в теме
Минус за "Стоимость регистрации одного рабочего места: 500 грн.".
Как по мне - дороговато.
vasilykushnir; +1 Ответить
6. vasilykushnir 09.11.07 12:05 Сейчас в теме
(5) Не многовато, а дохырища! Минусы не ставлю принципиально, хотя руки чешутся....
7. astonvilla 227 09.11.07 12:19 Сейчас в теме
(6) А я не смог удержаться, хотя до этого тоже не ставил :(
"На 07.11.2007 стоимость исходных текстов под Turbo Delphi либо 1С 7.7 составляет 10'000 грн."
Имхо звучит как фраза из "Буря в стакане" - когда они торговализь за гравицапу :))
8. vip 09.11.07 12:32 Сейчас в теме
11. astonvilla 227 09.11.07 13:12 Сейчас в теме
(8) Тут пошутил, на проклабе, и еще в десятке мест где выложил?
Не, он вполне серъезно.
9. JohnyDeath 291 09.11.07 12:47 Сейчас в теме
А 500 грн это скока на деревянные?
10. astonvilla 227 09.11.07 13:09 Сейчас в теме
12. tarasenkov 09.11.07 15:41 Сейчас в теме
Господа если вас не устраивает цена, вы можете приобрести исходнии Padeg.dll (русской библиотеки),
цены представлены здесь: http://www.delphikingdom.com/zip/pd_Docs.zip
и переделать под украинский язык.
В таком случае себестоимость исходных кодов может быть как ниже так и выше,
это зависит от себестоимости вашего времени на разработку и тестирование.

Продажу исходников я воспринимаю как выход с рынка, ведь что помешает
купившему исходники продавать программу от своего имени?

Объем рынка очень и очень скромный - небольшим фирмам такая штукенция ни к чему.
А организациям с численностью сотрудников от 600 и выше возможно будет интересна,
я считаю, для них эта цена не покажется высокой.

Спасибо за оказанный интерес,
напоминаю, вы можете зарегистрировать сабж бесплатно.

Он благополучно протестирован на списке в 1500 сотрудников.
13. Vladal 416 13.11.07 23:24 Сейчас в теме
14. real_seer 26.11.07 11:37 Сейчас в теме
Все таки нет предела наглости отдельных личностей...
Товарищ (не нам) Тарасенков занялся плагиатом... Исходники мы ему точно не продавили...

Как один из авторов библиотеки склонения на русском официально уведомляю, что есть версия библиотеки для украинского языка. С некоторыми недоработками (не было среди нас знающего украинский), но зато совершенно бесплатна.

Предлагаю (это самый действенный способ) хорошо знающему украинский язык исходники для портирования, с условием выпуска бесплатной сборки библиотеки для украинского языка. Прощу обращаться ко мне или Гене напрямую или через сайт "Королевства..." http://www.delphikingdom.com/asp/viewitem.asp?catalogid=412

Кстати. Исходники нашей версии были изначально открыты, пока не нашелся один, опять же "не нам" :-), товарищ? который опубликовал их от своего имени, с нашими же коментариями и ошибками...

И наконец... "Не нам" товарищ Тарасенков, случайно не думаете ли вы закупать сало для отправки в Россию и Белорусию на все суммы?
15. NDeclin 81 26.11.07 15:41 Сейчас в теме
С позволения и по настоянию авторов padeg.dll опубликовал альтернативный вариант украинской сборки http://infostart.ru/profile/8349/projects/803/
Клон первой русской версии. Cыровата, конечно, да и функций маловато, но текущий расклад вынуждает...
real_seer; German; +2 Ответить
16. tarasenkov 26.11.07 19:55 Сейчас в теме
Эх, где же вы были, господа, когда мне так нужна была украинская версия?
Ведь на форуме delphikingdom посвященному русской версии библиотеки не единожды встречался вопрос об украинской версии, и ответа на него я там так и не нашел.

В итоге, не найдя достойной библиотеки склонения пришлось написать свою, писал к тому же на 1с, но чтобы как-то окупить расходы и защитить свой труд портировал на Delphi в DLL. Библиотека склонения на русском стала достойным примером для подражания в части экспортируемых функций и OLE. И для того чтобы пользователям русской версии библиотеки было проще использовать мою, ну и конечно, чтобы не писать документацию, интерфейс функций экспорта был выполнен в соответствии с документацией русской версии.

Я считаю насчет наглости и плагиата вы немного погорячились, поскольку ни исходников русской библиотеки ни некой украинской библиотеки я не видел и не использовал, и требую извинений на этот счет.

Насчет бесплатной версии, напоминаю, временно осуществляется бесплатная регистрация.
17. NDeclin 81 27.11.07 07:51 Сейчас в теме
(16) Ведь на форуме delphikingdom посвященному русской версии библиотеки не единожды встречался вопрос об украинской версии, и ответа на него я там так и не нашел.
В обсуждении вопрос за все время встречался ровно 2 раза: 21-11-2002 и 12-09-2007.
Зато была масса вопросов по русской сборке, вот в этом направлении ("где же вы были...") и работали.

В (14) предложен самый разумный вариант развития событий (ИМХО).
18. real_seer 27.11.07 10:17 Сейчас в теме
> Эх, где же вы были, господа, когда мне так нужна была украинская версия?

Не единожды отвечали лично (и я, и Гена), что не знаем мы украинского. Однажды у нас брали исходники с той же целью добавления украинского, но тот человек так и не довел работу до конца (это точно были не вы).

На форуме в "Королевстве...", если помните, были вопросы про *'nix версию. Так вот, к нам обратились с просьбой предоставить исходники, дали, в обмен на будущие. И сейчас активно переводят под Unix на С. И сейчас дадим исходники с условием сохранения условий лицензии как и для русского языка (вкратце: платное только коммерческое использование).

Готов принести свои изменения если библиотека действительно была портирована и унифицирован интерфейс.
Однако ваших исходников мы тоже не видели.
19. Abadonna 3719 27.11.07 11:14 Сейчас в теме
(18) Я мужика по фамилии Кличко как склонять на украинском?
Кличке, Кличком, Кличку? :)))))
20. Cortes 05.02.08 22:36 Сейчас в теме
Идея хорошая. Но есть недостатки. Довольно весомые недостатки, из-за которых жалко тратить деньги на приобретение коммерческой версии.
23. Cortes 07.02.08 21:29 Сейчас в теме
Пардон. Я, кажется, не совсем туда написал свое мнение.
Отзыв (20) относился к предыдущей публикации на эту тему, ссылку почему-то найти не могу.
21. O-Planet 6939 06.02.08 01:53 Сейчас в теме
Хм... А чем украинские от русских отличаются? Я помнится такое писал средствами языка за час-полтора...
22. tarasenkov 06.02.08 10:11 Сейчас в теме
(21) Не могу объективно судить об отличиях, так как для русского языка не писал.
25. Genius_SV 03.07.08 17:48 Сейчас в теме
Подскажите пожалуйста как использовать это компоненту в 1С 8.1 ?
То что я пробовал :
1.
Код
   Попытка
      ЗагрузитьВнешнююКомпоненту("padeg_ua.dll");
      Падеж_УА = Новый ("padeg_ua.Declension");
   Исключение
      Сообщить("Не загружен ""padeg_ua.dll""!", СтатусСообщения.Важное);
   КонецПопытки;
Показать полностью
-> "Исключение"...
2.
Код
   Попытка
      ЗагрузитьВнешнююКомпоненту("ule.dll");
      Падеж_УА = Новый ("AddIn.ULE");
   Исключение
      Сообщить("Не загружен ""ule.dll""!", СтатусСообщения.Важное);
   КонецПопытки;
   
   Попытка
      Падеж_УА.TransmuteInto("padeg_ua.Declension");
   Исключение
      Сообщить("Не загружен ""padeg_ua.dll""!", СтатусСообщения.Важное);
   КонецПопытки;
Показать полностью
-> "Вываливается" 1С, хотя пару раз работало, что наталкивает на мысль "должно работать" ...

В случае успешной работы компоненты в 1С 8.1, рассматривается вариант покупки.
26. tarasenkov 08.07.08 10:20 Сейчас в теме
1. Регистрируете COM объект: regsvr32.exe <Путь>\Padeg_ua.dll
2. Код подключения:
Код
 Скл = Новый COMОбъект("Padeg_ua.Declension");
 
 Падеж = 5; // Творительный
 
 выб = Справочники.Сотрудники.Выбрать();
 Пока выб.Следующий() Цикл
  Если выб.ЭтоГруппа тогда
   Продолжить;
  КонецЕсли;
  ФИО = ТРег(выб.ФамилияУкр) + " " + ТРег(выб.ИмяУкр) + " " + ТРег(выб.ОтчествоУкр);
  Должность = выб.Должность.Наименование;
  Отдел = выб.Отдел.Наименование;
  Результат = Скл.GetFIOPadegFS(ФИО, "", Падеж) + ", " + Скл.GetFullAppointmentPadeg(Должность, Отдел, Падеж);
  Сообщить(Результат);
 КонецЦикла;
Показать полностью
27. Mahone 30.07.09 13:57 Сейчас в теме
Сколько будет стоить полная версия padeg_ua.dll под Delphi и как ее можно приобрести??? Спасибо
28. sokir 20.11.09 11:55 Сейчас в теме
Неправильно склоняет:
GetFullAppointmentPadeg("Голова правління","",3) выдаёт "головій правлінні", а надо "голові правлиння".
Или это ограничение демоверсии?
Всё остальное по должностям вроде верно.
Spacer; tarasenkov; +2 Ответить
29. support 4407 20.11.09 15:54 Сейчас в теме
30. tarasenkov 281 18.02.10 00:22 Сейчас в теме
Выложена полнофункциональная версия с исходными кодами, других исправлений и изменений нет.
31. krosaf4eg 45 24.04.10 21:19 Сейчас в теме
padeg_ua.dll из исходников отличается по размеру с той, что в примерах

почему-то не склоняет в родительном и давательном падежах, оставляет так как есть :cry:
с остальными падежами все нормально
32. yuraer 38 11.05.10 15:43 Сейчас в теме
почему-то не склоняет в родительном и давательном падежах, оставляет так как есть
с остальными падежами все нормально


аналогичная ситуация
33. vip 11.05.10 16:54 Сейчас в теме
(32) Наверное потому, что давательного падежа нету.
Есть дательный. И извратительный.
34. krosaf4eg 45 11.05.10 18:41 Сейчас в теме
35. tarasenkov 281 11.05.10 18:59 Сейчас в теме
Извиняйте, люди добрые, поправил, в дательном и родительном теперь склоняет
krosaf4eg; +1 Ответить
36. palamars 26.07.10 15:57 Сейчас в теме
Спасибо полезную штуковину, поставил "плюс".
Нужно доработать склонение фамилий - существительных с чередованием і - о: Чорновіл - Чорновола, Чорноволу
37. BunnyBoy 10.08.10 18:59 Сейчас в теме
Добрый день. А есть ли библиотека с функциями склонения украинских фамилий, имен... без КОМ-сервера как это сделано в русской версии?
38. BunnyBoy 10.08.10 19:04 Сейчас в теме
Ввиду отсутствия соответствующих прав невозможна регистрация библиотеки. Есть ли какое-нибудь решение?
39. tarasenkov 281 10.08.10 20:39 Сейчас в теме
> А есть ли библиотека с функциями склонения украинских фамилий, имен... без КОМ-сервера как это сделано в русской версии?

Это она и есть =) работает и без КОМ-сервера, смотрите пример вызова из Дельфи
40. getikalex 24.10.10 17:47 Сейчас в теме
Специально зарегился, чтоб сказать большое спасибо. Очень помогло при склонении имен в рассылках из excel.
tarasenkov; +1 Ответить
42. Spacer 283 19.08.13 10:48 Сейчас в теме
Обнаружил неправильное склонение фамилии "Палій".
Сейчас склоняет так:

1 Палій Олексій Іванович
2 Палього Олексія Івановича
3 Пальому Олексію Івановичу
4 Палого Олексія Івановича
5 Палім Олексієм Івановичем
6 Пальому Олексієві Івановичеві
7 Палій Олексію Івановиче

Нужно так:

Називний Палій Олексій Іванович
Родовий Палія Олексія Івановича
Давальний Палію Олексію Івановичу
Знахідний Палія Олексія Івановича
Орудний Палієм Олексієм Івановичем
Місцевий Палії Олексії Івановичі
Кличний Палію Олексію Івановиче

Можно ли это как-то исправить?
44. tarasenkov 281 20.08.13 11:17 Сейчас в теме
(42) Spacer, можете внести в словарь исключений - файл "Padeg_ua.dic"
45. Spacer 283 20.08.13 13:12 Сейчас в теме
(44) А как это сделать? Я смотрел описание словаря на сайте компоненты padeg.dll.
Там написано что в файле словаря должно быть 16 секций.
Перепробовал разные варианты, но ничего не помогло.
43. Shrek2015 19.08.13 14:38 Сейчас в теме
бедные венгры :) как они так живут?
46. dj_serega 356 20.04.16 13:40 Сейчас в теме
Спасибо. Пока работает как нужно.

Немного инфы о поключении:
1. Регистрируем компоненту
2. Создаем COM
3. Добавляем dll в созданный COM.
4. Предоставляем доступ пользователю к COM
5. Пользуемся.
47. dj_serega 356 21.04.16 16:55 Сейчас в теме
не получилось обработать файл исключений :(
Получилось. Нужно вызвать функцию:
UpdateDictionary.
ОбъектСклонения = Новый COMОбъект("Padeg_ua.Declension");
ОбъектСклонения.UpdateDictionary();
48. gupdn 30.09.16 13:19 Сейчас в теме
При склонении фамилий на -ок не происходит выпадения гласной (Костючок— Костючока вместо Костючка). Список исключений вроде не решает
49. UserPro 4 14.01.17 03:51 Сейчас в теме
Оставьте свое сообщение