Мой Морфер
 

Склонение по падежам фамилий и должностей в 1С

Внешняя компонента Morpher.dll предназначена для склонения по падежам фамилий, имен и отчеств, а также произвольных словосочетаний на русском и украинском языках. В настоящий момент реализованы функции:

Функция РусскийУкраинский
Склонение фамилий, имен и отчествДаДа
Склонение произвольных словосочетанийДаРабота ведется
Определение рода (пола)ДаДа

«Произвольные словосочетания» включают в себя должности, названия отделов, предприятий и организаций, например: директор по маркетингу, инженер-программист, отдел продаж.

Компонента выполнена по технологии Native API, что позволяет ей работать в толстом и тонком клиентах платформы 1С 8.2. Для установки не требуется регистрировать компоненту в системном реестре и не нужны права администратора.

Инструкции по установке и использованию

Внешняя компонента состоит из одного файла с названием Morpher.dll. Для установки достаточно поместить этот файл в папку bin 1С:Предприятия (в ту же папку, где находится файл 1cv8c.exe). Для проверки работоспособности компоненты откройте вашу конфигурацию в режиме Конфигуратора, кликните правой кнопкой на узле «Конфигурация» и выберите в появившемся меню пункт «Открыть модуль обычного приложения». Добавьте в модуль следующий код:

Процедура ПриНачалеРаботыСистемы()

    Если ПодключитьВнешнююКомпоненту(
        "Morpher.dll", 
        "Морфер", 
        ТипВнешнейКомпоненты.Native) 
    Тогда
        морфер = Новый ("AddIn.Морфер.Русский");    
        Сообщить (морфер.Дательный ("Привет Приветыч"));
    Иначе
        Сообщить ("Не удалось ПодключитьВнешнююКомпоненту Morpher.dll.");
    КонецЕсли;

КонецПроцедуры    

Функции склонения

Названия функций соответствуют падежам русского языка:

Функция Вопрос Описание
Родительный кого? чего? Строит форму родительного падежа.
Дательный кому? чему? Строит форму дательного падежа.
Винительный кого? что? Строит форму винительного падежа.
Творительный кем? чем? Строит форму творительного падежа.
Предложный о ком? о чем? Предложный падеж без предлога. *
ПредложныйО о ком? о чем? Предложный падеж с предлогом О/ОБ/ОБО. *
ПредложныйВ где? Предложный падеж с предлогом В/НА. *

* См. Рекомендации по выбору варианта предложного падежа

Для украинского языка нужно создать объект "AddIn.Морфер.Українська", а список функций выглядит так:

Функція Питання Опис
Родовий кого? чого? Утворює форму родового відмінку
Давальний кому? чому? Утворює форму давального відмінку
Знахiдний кого? що? Утворює форму знахiдного відмінку
Орудний ким? чим? Утворює форму орудного відмінку
Мiсцевий на кому? на чому? Утворює форму мiсцевого відмінку без прийменника
Кличний Шановний... Утворює форму кличного відмінку

Каждая из вышеперечисленных функций принимает строковый параметр – словосочетание в именительном падеже и возвращает также строку – исходное словосочетание в форме заданного падежа.

Функция определения пола

Данная функция определяет грамматический род входного словосочетания. Роду однозначно соответствует пол, если словосочетание называет человека.

Для русского языка функция называется Род и может возвращать одно из следующих строковых значений:

Функция Возвращаемые значения Означает
Род Муж Мужской род или пол
Жен Женский род или пол
Сред Средний род
Множ Множественное число

Для украинского языка соответствующая функция называется Рід:

Функція Повертає значення Означає
Рід Чол Чоловічий рід або стать
Жін Жіночий рід або стать
Сер Середній рід
Множ Множина

В случае если входное словосочетание не содержит русских (или украинских) слов, функции склонения и определения рода возвращают встроенное значение Неопределено.

Функции не имеют англоязычных синонимов.

Полезные ссылки

Заказать компоненту склонения Morpher.dll

Альтернатива покупке компоненты – бесплатный веб-сервис «Морфер» (пока только для русского языка). Работа с веб-сервисами – это встроенная возможность платформы 1С, при этом склонение производится на серверах morpher.ru, а 1С выступает в роли клиента. Скачать пример внешней обработки.



Комментарии

1sneg 16.11.2011 22:19 UTC

морфер = Новый("AddIn.Морфер.Русский");

сотрудник = Справочники.Сотрудники.Выбрать();

сотрудник.Следующий();

Сообщить (морфер.Дательный (сотрудник.Наименование));


{МодульОбычногоПриложения(28)}: Поле объекта недоступно для записи (Наименование)
Сообщить (морфер.Дательный (сотрудник.Наименование));

Как побороть?

Сообщить (морфер.Дательный ("Телегин Петр Кузьмич"));

Работает нормально






2003 - 2012 © Сергей Слепов