Склонение ФИО и должностей через веб-сервис – 1С 8.2 / 8.3

02.07.20

Интеграция - WEB-интеграция

Предлагаемая разработка предоставляет программистам 1С функцию склонения по падежам слов и словосочетаний на русском и украинском языках, а также функцию формирования прописи чисел в заданном падеже. Программа умеет склонять фамилии, имена и отчества, а также должности, названия отделов и юридических лиц (на украинском пока только ФИО). Указание пола не требуется. Наоборот, программа автоматически определяет и выдает грамматический род словосочетания, по которому определяется пол лица. Алгоритм демонстрирует высокое качество склонения, а для случаев, когда программа все же ошибается, предусмотрен сервис оперативного исправления ошибок. Программа реализована в виде веб-сервиса, доступного бесплатно всем желающим (до 1000 запросов в сутки). Для вызова функции склонения из 1С 8.2 достаточно 3 строчек кода, при этом не нужно включать в конфигурацию никаких дополнительных DLL. Пример обработки на языке 1С прилагается.

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

Наименование Файл Версия Размер
Морфер 8.2
.epf 5,63Kb
29
.epf 5,63Kb 29 Скачать
Морфер 8.3.6
.epf 4,99Kb
115
.epf 4,99Kb 115 Скачать

Реализуемые функции

Веб-сервис «Морфер» предназначен для склонения по падежам слов и словосочетаний на русском и украинском языках.  Входное словосочетание может быть в единственном или множественном числе, но обязательно в именительном падеже.  На выходе генерируется единственное и множественное число во всех падежах и автоматически определяется род.

Например, на входе:

ведущий инженер-программист III категории

На выходе: 

И. ведущий инженер-программист III категории ведущие инженеры-программисты III категории
Р. ведущего инженера-программиста III категории ведущих инженеров-программистов III категории
Д. ведущему инженеру-программисту III категории ведущим инженерам-программистам III категории
В. ведущего инженера-программиста III категории ведущих инженеров-программистов III категории
Т. ведущим инженером-программистом III категории ведущими инженерами-программистами III категории
П. о ведущем инженере-программисте III категории о ведущих инженерах-программистах III категории
Род: мужской

Число поддерживаемых типов словосочетаний не ограничено фамилиями и должностями.  Программа умеет склонять также названия подразделений, юридических лиц, географические названия и многое другое.  Высокое качество склонения обеспечивается использованием словарей, в частности, «Словаря имен собственных» Ф.Л. Агеенко на 38 000 единиц.  За 9 лет работы над «Морфером» было составлено более 27 000 примеров склонения для русского и более 11 000 для украинского языка.  База примеров постоянно пополняется и используется для контроля качества продукта.

Веб-сервис также реализует функцию прописи чисел и денежных сумм в произвольном падеже, позволяющую формировать такие фразы как: «в течение 7 (Семи) календарных дней» («21 календарного дня»), «в размере 1000 (Одной тысячи) рублей» («десяти тысяч рублей») и т.п.  Склонение единицы измерения также осуществляется автоматически.  Нет необходимости указывать заранее все падежные формы ("рубль", "рубля", "рублей").

Быстрый старт: склонение должности

Программа для склонения должности будет выглядеть так:


Морфер = Обработки.Морфер.Создать();
Результат = Морфер.СклонятьРусский("Генеральный директор");

Сообщить("Родительный (кого?): " + Результат.Р);
Сообщить("Дательный   (кому?): " + Результат.Д);
Сообщить("Винительный (кого?): " + Результат.В);
Сообщить("Творительный (кем?): " + Результат.Т);

Чтобы проверить, как работает этот код, скачайте и установите внешнюю сборку из .epf файла (Обработки, правый клик, вставить внешнюю обработку), скопируйте пример в Конфигуратор (Конфигурация, правый клик, «Открыть модуль обычного приложения», Вставить) и вставьте, например, в процедуру ПриНачалеРаботыСистемы.  После запуска программы (F5) в окне сообщений появится директор во всех падежах:

Родительный (кого?): Генерального директора
Дательный   (кому?): Генеральному директору
Винительный (кого?): Генерального директора
Творительный (кем?): Генеральным директором
Предложный (о ком?): о Генеральном директоре

Для украинского языка функция склонения называется СклонятьУкраинский:


результат = Морфер.СклонятьУкраинский("Лук'янченко Леонід Аркадійович");

Сообщить("Родовий     (кого?): " + результат.Р);
Сообщить("Давальний   (кому?): " + результат.Д);
Сообщить("Знахідний   (кого?): " + результат.З);
Сообщить("Орудний      (ким?): " + результат.О);
Сообщить("Місцевий (на кому?): " + результат.М);
Сообщить("Кличний:             " + результат.К);

Результат:

Родовий     (кого?): Лук'янченка Леоніда Аркадійовича
Давальний   (кому?): Лук'янченку Леоніду Аркадійовичу
Знахідний   (кого?): Лук'янченка Леоніда Аркадійовича
Орудний      (ким?): Лук'янченком Леонідом Аркадійовичем
Місцевий (на кому?): Лук'янченку Леоніді Аркадійовичі
Кличний:             Лук'янченко Леоніде Аркадійовичу

Украинская версия пока лучше всего справляется с фамилиями, именами и отчествами.  Работа над другими типами словосочетаний ведется.

Для улучшения качества склонения можно передавать признаки.


Признаки = Новый Массив();
Признаки.Добавить("name");
Признаки.Добавить("feminine");
результат = Морфер.СклонятьРусский("Щукина Ольга Александровна", Признаки);

На данный момент доступны след. признаки: name, feminine, masculine, neuter, animate, inanimate, common, plural.

Функция построения прописи числа в любом падеже

Функция ПрописьРусский (ПрописьУкраинский) решает две родственные задачи: получение прописи числа (тысяча сто двадцать пять) и согласование единицы измерения с предшествующим числом (1 попугай, 2 попугая, 5 попугаев). Пример:


// Пример написания денежной суммы прописью в родительном падеже:
пропись = Морфер.ПрописьРусский(235, "рубль");
Сообщить(пропись.n.И + " " + пропись.unit.И);
Сообщить("в размере " + пропись.n.Р + " " + пропись.unit.Р);

Результат:

двести тридцать пять рублей
в размере двухсот тридцати пяти рублей

Функция принимает два аргумента:

n – целое положительное число.

unit – единица измерения – слово или словосочетание в именительном падеже единственного числа: «рубль», «доллар США», «календарный день», «новое письмо» и т.п. Если слово употребляется только во множественном числе, то указывается форма именительного падежа множественного числа: «сутки», «брюки», «ножницы».

Результат, возвращаемый функцией Прописьрусский, содержит два набора падежных форм: один для числа (n), другой для единицы измерения (unit).  Комбинируя соответствующие падежные формы n и unit, можно получить вывод «суммы прописью» на любой вкус:

235 рублей
Двести тридцать пять рублей
235 (двести тридцать пять) рублей и т.п.

Комбинировать имеет смысл только соответствующие падежные формы n и unit – именительный с именительным, родительный с родительным и т.д. Например, для получения фразы "в размере N рублей (долларов, евро...)", берем родительный падеж (Р): в размере + двухсот тридцати пяти + рублей.

Склонение прилагательных по родам

Функция СклонятьПрилагательноеПоРодам склоняет данное ей прилагательное, преобразуя его из мужского рода в женский, средний и во множественное число:


результат = Морфер.СклонятьПрилагательноеПоРодам("уважаемый");
Сообщить("Женский:     " + результат.feminine);
Сообщить("Средний:     " + результат.neuter);
Сообщить("Множ. число: " + результат.plural);

Получим:

Женский: уважаемая
Средний: уважаемое
Множ.число: уважаемые

Авторизация

Для получения доступа к тегам род, откуда, куда, где, а так же снять ограничение на кол-во запросов в сутки, нужно купить подписку на сайте http://morpher.ru/ws3/ И передать токен следующим образом:


Морфер.Авторизация("ваш токен");

Обработка ошибок

Вызовы функций веб-сервиса рекомендуется обернуть в блок Попытка / Исключение на случай отсутствия связи с веб-сервисом или других непредвиденных ситуаций.  Сообщение об ошибке будет при этом выглядеть примерно так:

Ошибка инициализации модуля: МодульУправляемогоПриложения
по причине:
{Обработка.Морфер.МодульОбъекта(138)}: Ошибка: Не найдено русских слов.
        ВызватьИсключение("Ошибка: " + Данные.message);

В данном случае ошибка возникла из-за того, что склоняемая строка не содержит ни одного русского слова.  Другой возможный случай – когда склоняемая строка содержит количественное числительное («тридцать три коровы»).  Такие словосочетания программа не обрабатывает, выдается ошибка. 

Совместимость и устранение неполадок

Модуль выпускается в двух вариантах для 8.3.16 и 8.2.?. Версии отличаются только тем, что версия 8.3.16 использует встроенный десериализатор JSON.

Оперативное исправление ошибок склонения

Склонение как языковой феномен изобилует неоднозначностями, особенно в области имен собственных.  В городе Москва или в городе Москве?  В республике Корея или в республике Корее?  В Тушино или в Тушине?  Обладатели «диковинных» фамилий часто не любят, чтобы их склоняли.  Скажем, если у человека фамилия Груздь, он будет требовать, чтобы его фамилию не склоняли, часто вопреки правилам русского языка и всеобщему мнению.  Но если он ваш начальник, то неизвестно еще, кто останется Груздём, если вы позволите себе просклонять его в договоре.

Не секрет, что алгоритм автоматического склонения тоже может ошибаться – не знать какого-либо слова или запутаться в сложной синтаксической структуре.  Что делать, если машина склоняет не так, как надо, а документ должен быть на столе у начальника через 10 минут?  Хорошо, если система позволяет вручную исправлять документ после его выдачи.  Но исправлять фамилию начальника в каждом приказе тоже не дело.  Традиционное решение этой проблемы (если руки дойдут до его реализации) – хранение падежных форм в таблице-справочнике, которая заполняется вручную.

Веб-сервис склонения предоставляет как раз такое «табличное» решение проблемы ошибок в склонении – только вам для этого ничего не нужно делать, все уже реализовано за вас – и база данных, и интерфейс для ее редактирования для двух языков, и проверка введенных вами данных профессиональным лингвистом.  Достаточно зайти на страничку исправления ошибок и ввести нужные вам падежные формы (или исправить результат автоматического склонения).  После этого веб-сервис сразу же будет склонять так, как вы указали – но только для вас.  После проверки введенного вами примера администратором он станет доступен остальным пользователям веб-сервиса.  Введеные исправления также используются для совершенствования алгортима склонения. Таким образом качество склонения улучшается самими пользователями.

Страничка исправления ошибок

Установка веб-сервиса в вашей локальной сети

Многие пользователи веб-сервиса высказывали желание иметь «такой же сервис, только у себя», т.е. иметь возможность развернуть веб-сервис в своей локальной сети.  Это решило бы проблему с использованием веб-сервиса на рабочих местах, где нет доступа к Интернету, а также проблему с законом «О защите персональных данных», требующим обеспечения конфиденциальности таких данных.

В ответ на эти пожелания был создан вариант веб-сервиса, допускающий установку на сервере в локальной сети предприятия или непосредственно на машине пользователя, если пользователь один.  Новый продукт получил название «Морфер.Сервер». Он реализует те же функции, что и общедоступный веб-сервис, включая функцию поддержания пользовательского словаря, и работает в сотни раз быстрее из-за того, что локальная сеть быстрее Интернета. 

Для переключения с «глобального» на «локальный» сервис достаточно изменить код следующим образом:

Морфер = Обработки.Морфер.Создать();
Морфер.СменитьСервер("comp001", false);

Здесь comp001 – это сетевое имя компьютера, где установлен веб-сервис. Во второй строчке изменять ничего не нужно.  

Как приобрести и установить у себя локальный веб-сервис, описано на странице продукта: «Морфер.Сервер».

Альтернативы

Автор «Морфера» занимается вопросом автоматического склонения профессионально с 2003 года и постоянно следит за аналогичными разработками. Одним из заметных аналогов является веб-сервис Яндекс.Склонятор, но он склоняет только «имена, фамилии и ники». Вот список еще нескольких решений, разработанных для платформы 1С:

Дата публикации Название Автор Тип Язык +/-
2002 Падеж. Версия "Крохотулька" Юрия Железнякова SuperJur рус  
01.10.2008 Склонение ФИО e.kogan рус +142/-0
27.02.2007 V7NDS: Сервис поддержки склонений ФИО для 1С NDeclin ВК рус +59/-0
21.11.2010 Учим внешнюю компоненту правильному склонению не только ФИО, но и должностей, и подразделений (ЗУП 2.5) director04 ВК + 1С рус +53/-0
06.02.2012 Склонение ФИО и должностей fixin рус +16/-0
16.06.2009 ФИО и должности в винительном и дательном падеже (укр) (Ivon) Ivon укр +16/-0
08.11.2007 Склонение украинских ФИО, должностей и подразделений в семи падежах. DLL с поддержкой OLE. tarasenkov ВК укр +15/-3

 * Количество плюсов и минусов дано на момент публикации.

 

В «Морфере» учтены многие пожелания к системам подобного рода, а именно:

  1. Возможность бесплатного использования функций склонения – имеется, до 1000 запросов в сутки. Этого количества более чем достаточно для частных лиц и малого бизнеса.  Для более крупных клиентов имеется платный доступ.
  2. Простота развертывания. Не нужно включать в конфигурацию никаких дополнительных библиотек, регистрировать их в реестре и поставлять пользователям. Не нужны права администратора на пользовательских машинах.
  3. Возможность оперативного исправления ошибок. Многие пользователи отмечали как недостаток DLL невозможность оперативного исправления ошибок склонения. Даже в случае с «открытым кодом» на языке 1С, чтобы исправить одну фамилию, разбираться в этом коде (сразу вспоминается «Крохотулька») не у всех программистов найдется время и желание. Веб-сервис решает эту проблему, предоставляя пользователям веб-страницу для оперативного изменения склонения отдельных словосочетаний. Для этого не требуется вмешательства программиста – исправить ошибку сможет любой грамотный пользователь компьютера.
  4. Изменение по числам (просьба). Реализовано.

Кроме того, отличительными особенностями «Морфера» являются:

  1. Простой API: склонение всех типов словосочетаний производится одной функцией. Нет необходимости указывать тип словосочетания (ФИО, должность, подразделение...)
  2. Не требуется указание пола. Наоборот, программа автоматически определяет и выдает грамматический род словосочетания, по которому однозначно определяется пол лица.
  3. Высокое качество склонения, достигаемое использованием комбинированного подхода – алгоритмы для кодирования правил и словари для учета исключений. «Морфер» вобрал в себя несколько многотысячных словарей, годы кропотливой работы, учета замечаний и пожеланий пользователей.

Жду новых ваших пожеланий и замечаний. Именно они мотивируют меня развивать продукт дальше.

склонение падеж ФИО должность отдел родительный дательный винительный творительный предложный

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15747    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17549    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16359    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25741    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88580    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
101. realEvgenius 1 21.09.18 10:27 Сейчас в теме
(98)
Кода в начале статьи не увидел... Или не туда смотрю.
Можете сюда написать?

Директор хочет купить, зарегистрировать, оплатить пользователя, но просит поглядеть, как работает предварительно
102. Лингвист 98 21.09.18 12:03 Сейчас в теме
(101)
В самом верху этой страницы есть кнопка "Перейти к публикации", которая ведет на статью.
103. realEvgenius 1 21.09.18 13:07 Сейчас в теме
(102)

Быстрый старт: склонение должности
Программа для склонения должности будет выглядеть так:

Морфер = Обработки.Морфер.Создать();
Результат = Морфер.СклонятьРусский("Генеральный директор");

Сообщить("Родительный (кого?): " + Результат.Р);
Сообщить("Дательный (кому?): " + Результат.Д);
Сообщить("Винительный (кого?): " + Результат.В);
Сообщить("Творительный (кем?): " + Результат.Т);

Чтобы проверить, как работает этот код, скачайте и установите внешнюю сборку из .epf файла (Обработки, правый клик, вставить внешнюю обработку), скопируйте пример в Конфигуратор (Конфигурация, правый клик, «Открыть модуль обычного приложения», Вставить) и вставьте, например, в процедуру ПриНа


Вот это?

Где взять Обработки.Морфер ?
Скачать ниже за 1500 руб?
104. Лингвист 98 21.09.18 14:52 Сейчас в теме
(103)
Да, код в основной статье устарел. Есть более актуальный пример интеграции 1С с модулем и есть страница, которая посвящена веб-сервису.
97. realEvgenius 1 08.09.18 23:47 Сейчас в теме
105. modelist 01.10.18 09:05 Сейчас в теме
Добрый день.
Подскажите, пожалуйста, жив ли еще механизм подписки на сервис?
На прошлой неделе приобрел подписку "Профессионал" на http://morpher.ru, однако в списке активных подписок она так и не появилась.
Писал запрос на sales@morpher.ru, но ответа так и не получил.
Спасибо.
106. Лингвист 98 01.10.18 09:34 Сейчас в теме
(105)
Здравствуйте. Сервис жив и работает в штатном режиме.
Ваше имя пользователя на http://morpher.ru и/или дату письма, пожалуйста?
107. modelist 01.10.18 09:38 Сейчас в теме
(106)
Да, конечно. Логин "smarty", а сообщение было отправлено 28.09.2018 9:16.
108. Лингвист 98 01.10.18 11:10 Сейчас в теме
(107)
Ваш платеж застрял где-то на Яндексе. Сейчас отвечу более подробно с support@morpher.ru (НЕ с sales@morpher.ru).
109. TeMochkiN 18.10.18 11:23 Сейчас в теме
а что с сайтом? 1С зависла на запросе к веб-сервису, браузер тоже не грузит сайт ваш
110. Лингвист 98 18.10.18 11:52 Сейчас в теме
(109) Да, действительно. Был кратковременный технический сбой у нашего хостинг-провайдера. Сейчас все сервисы работают в штатном режиме. Приносим свои извинения за неудобства.
TeMochkiN; +1 Ответить
111. threshIK 22.05.19 09:15 Сейчас в теме
Доброе утро, сейчас сервис доступен? Пытаюсь отправить get-запрос и вылетает ошибка о невозможности установить соединение. Настройки делал в 1С: Документооборот по этой ссылке: http://v8.1c.ru/doc8/morpher.htm
112. Serge_ASB 31.01.21 14:55 Сейчас в теме
Вот, интересно: в конфе (Документооборот 2.1.10.2), да, указан сервис, который сейчас, видимо, уже не функционирует. Печально.
Однако, на сайте Morpher
приводятся рекомендации, что можно поделать, чтобы продолжать использование сервиса.
Кому-нибудь удалось это, без использования сторонних обработок?
113. Serge_ASB 01.02.21 22:55 Сейчас в теме
На сайте сервиса есть описание параметров http запроса.
Можно, например, добавить в конфигурацию расширение, заменив в нем процедуру получения склонения.
P.S. В дополнение к этому, можно добавить запись в регистр "Склонений", помимо ФИО (ФИзЛиц), еще и данные склонения, например, должностей.
Тогда лимит в 100 (1000) ежедневных бесплатных обращений можно, вполне, выдержать.
P.P.S. Сервис склоняет хорошо. :)
114. Arkadag 21.11.22 08:11 Сейчас в теме
Здравствуйте! Подключил свой ДО к сервису. Работает. Так 100 или 1000 бесплатных обращений? Интересно, а как этот лимит фиксируется за конкретным пользователем? Я могу быть уверенным, что моё ДО получит свои 100 склонений в сутки?
Оставьте свое сообщение