Заметки из Зазеркалья

19.11.2018

Склонение словосочетаний с числительными

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.3.14.

Довольно часто при формировании различных документов возникает необходимость выводить словосочетания, согласованные с числительными и имеющие определенную падежную форму. Например, в акте приема-передачи товара нужно написать, что получено «3,5 метра медного провода».

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

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

Склонение

В самом простом случае вы можете использовать только возможности склонения, а числовое значение выводить одними цифрами:

001.png

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

Порядковые и количественные числительные

Чтобы итоговое словосочетание выглядело красивее, вы можете в явном виде указать, числительное какого разряда используется в вашем предложении: количественное или порядковое:

002.png

Тогда платформа автоматически добавит к порядковым числительным наращение (буквенное падежное окончание).

Представление числа

При желании вы можете самостоятельно управлять тем, как будет представлено число в итоговом словосочетании: прописью, с окончанием или как число. Единственное, о чём нужно помнить, что окончания не используются с количественными числительными и в некоторых других случаях:

003.png

Склонение единиц измерения

Довольно часто вместе с цифровым значением указываются единицы его измерения. И эти единицы тоже нужно склонять. Причём если значение дробное, то целая и дробная части обычно измеряются в разных единицах.

В такой ситуации вы можете указать те единицы, которые нужно использовать, а кроме этого можете указать ещё и количество разрядов дробной части, которое должно использоваться:

004.png

Сложные словосочетания

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

005.png

Склонение словосочетаний без числительных

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

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

010.png

Этот метод понимает несклоняемые фамилии и довольно хорошо склоняет сложные и иностранные имена. В сложных случаях вы можете «подсказать» ему, какой род следует использовать. Например, во втором примере имя Джайлан – женское, а значит склонять его не надо:

012.png

Однако и без «подсказок» метод ПолучитьСклоненияСтроки() правильно обрабатывает многие грамматические правила. Например, он:

- не склоняет мужские имена, оканчивающиеся на гласную,

013.png

- не склоняет женские имена, оканчивающиеся на некоторые гласные ...

014.png

... и склоняет остальные женские имена,

015.png

- в двойных именах склоняет только второй компонент,

016.png

- фамилии, оканчивающиеся на согласный, не склоняет у женщин ...

017.png

... и склоняет у мужчин.

018.png

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

Рассказать друзьям: