Склонение ФИО и должностей


Бесплатное склонение ФИО и должностей на языке 1С

 

Обработка предназначена для склонения ФИО и должностей.

Я решил сделать абсолютно бесплатную и свободную функцию склонения. Есть тестовая база, которая постоянно пополняется, чтобы вы были уверены, что функция работает правильно. Несложно адаптировать для 77.Учитывая, что для склонения нужен или словарь исключений, или ИИ, доступно простое ведение списка исключений.

Подобные проекты есть, но у них есть недостатки:

1.       Используется внешняя компонента, ее требуется зарегистрировать, для этого нужны права администратора (яркий пример – склонение в типовых конфигурациях)

2.       Отсутствует словарь исключений.

3.       Код на языке 1С запутанный и непрозрачный (Падеж «Крохотулька»)

4.       Некоторые разработки платные.

Обработка реализована в виде функции обСклонениеСтроки. В обработке «Тест склонения» можно протестировать мою функцию, обработку namedecl.dllот 1С и крохотульку.

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

Форма редактирования таблицы исключений

Можно использовать константу (строка неограниченной длины) с именем «КонстантаГения1СДляИсключенийСклонения» для хранения исключений.

Таблицу исключений можно редактировать обработкой: «РедакторТаблицыИсключенийСклонений.epf»

Данные в константе хранятся в виде XML-строки вида:

 

 

1

Иванов

Д

Фамилия

М

RU

Иванидзе

 

 

2

Иванов

Р

Фамилия

М

RU

Иванидзе1

 

 

В событии «При открытии формы» вызывается функция общего модуля «ХукерНастройкаРедактораТаблицыИсключений(П)». Вы можете объявить эту функцию и перенастроить форму, заполнить списки выбора и т.п.

Доступные поля структуры П:

  • СписокПадеж – список падежей
  • СписокПол – список полов
  • СписокЯзык – список языков
  • СписокВид – список видов
  • ЭтаФорма – ссылка на форму
  • ЭтотОбъект – сам объект обработки
  • ТЗИсключения – таблица исключений

25 Comments

  1. noprogrammer

    А почему склонение не сделать через регистры правил?! чем описание «доступа» http://infostart.ru/public/115906/ отличается от склонения? Зачем плодить сущности в виде исключений?

    Reply
  2. fixin

    (1) а почему автор «Крохотульки» не использовал регистры правил? Особенности реализации. Так и я — использовал реализацию в виде кода. Если быть точнее, то на момент реализации про регистры правил не знал, поэтому писал в коде. Но код более прозрачный чем Крохотулька. А исключения — для того, чтобы сделать не закрытый алгоритм, а устойчивый к реальной жизни (исключениям).

    Помимо этого у меня есть тестирование обработок склонения, что тоже не мало важно…

    Если хотите реализовать склонение через регистр правил — бог вам в помощью, я буду только за.

    Reply
  3. fomix

    Прикольное название zip файла для скачивания ))))

    Reply
  4. Boroda

    Хорошая, нужная, понятная вещица. Спасибо!

    Reply
  5. fixin

    (4) хорошая была бы, если бы на регистр правил переложить, а сами правила в XML закатать. 😉

    но как бесплатный и полностью контролируемый код тоже неплоха.

    Reply
  6. ВРедная

    Для склонения подразделений не предполагается использовать?

    Например, Администрация президента сколняется неправильно. А у Крохотульки правильно 🙂

    Reply
  7. fixin

    (6) не предполагается. Но можно занести в исключения. 😉

    Reply
  8. YuraVK

    украинский не поддерживает?

    Reply
  9. Belkin_Sergey

    А как просклоняется должность «Первый заместитель директора по корпоративным вопросам» или «Главный технический руководитель по охране труда и ТБ»?

    Reply
  10. Belkin_Sergey

    (9) geterosser, Вопрос снят

    Reply
  11. EarlyBird

    Я офигеваю с этих людей!

    Скачало 74 человека, сказали спасибо (в виде плюса) только 17.

    По ходу, 57 неблагодарных свиней детектед 🙂

    Reply
  12. fixin

    (11) ну может остальным не понравилось. спокойно.

    Reply
  13. sumixam

    спасибо полезнаю вещь да ещё и бесплатно )))

    Reply
  14. itt

    надо попробывать, а то в БП нет склонения ФИО и подразделений

    Reply
  15. fixin

    (14) Если бы делал счас, сделал бы через регистр правил, но и так недурно.

    Reply
  16. ponaroshku

    Спасибо за обработку

    Reply
  17. alsegor

    Спасибо за обработку. Склонение Гения 1С неправильно склоняет имя Ольга (может и другие).

    В проверке используется имя Анна, которое склоняется правильно.

    Для Ольги должно быть:

    И: Ольга

    Р: Ольги

    Д: Ольге

    В: Ольгу

    Т: Ольгой

    П: Ольге

    А Гений склоняет так:

    И: Ольга

    Р: Ольгы

    Д: Ольге

    В: Ольгу

    Т: Ольгой

    П: Ольге

    Усовершенствуйте, пожалуйста, проверку.

    Reply
  18. _n26__

    Спасибо, будем тестировать. Очень нужная вещь!

    Reply
  19. dedicated

    Спасибо! Помогло решить задачу вывода в Дательном падеже должности и ФИО в печатной форме «М2» документа Доверенность. Я использую в печатной форме таким образом:

    // Перевод Падежей встроенной функцией Гения
    С = обСлужРазбитьНаФИО(ФамилияИмяОтчествоДоверенного);
    Пол = Строка(Шапка.ФизЛицо.Пол);
    Если Пол = «Мужской» Тогда Пол = «М»;
    ИначеЕсли Пол = «Женский» Тогда Пол = «Ж»;
    КонецЕсли;
    
    НовоеФамилия = обСклонениеСтроки(С.Фамилия, «Д», «Фамилия»,Пол );
    НовоеИмя = обСклонениеСтроки(С.Имя,  «Д», «Имя»,Пол);
    НовоеОтчество = обСклонениеСтроки(С.Отчество,  «Д», «Отчество»,Пол);
    
    ФамилияИмяОтчествоДоверенного = НовоеФамилия+?(НовоеИмя=»»,»»,» «)+НовоеИмя+?(НовоеОтчество=»»,»»,» «)+НовоеОтчество;
    
    ДолжностьДоверенного = обСклонениеСтроки(ДолжностьДоверенного,  «Д», «Должность»);

    Показать

    Если кому то поможет прикрепил файл печ. формы.

    Reply
  20. TrinitronOTV

    (19) dedicated, спасибо большое

    Reply
  21. AlexO

    Сергей, а что так некорректно отозвались о Крохотульке, «уперев» оттуда 23 контента по примерам склонения? 🙂

    Reply
  22. fixin

    (21) AlexO, что именно я оттуда упер? дядя?

    мне пришлось разбирать алгоритмы склонения самому.

    и я взял за основу не крохотульку, а код на каком-то SQL-подобном языке с SQL.RU

    Ибо в крахотульке разобраться невозможно, код специалом так написан.

    Reply
  23. fr.myha
    Reply
  24. SotNick

    Спасибо, отличная обработка!

    Reply
  25. user766040

    Полезная обработка. Спасибо автору!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *