Добавляете в конфигурацию регистр сведений со следующей структурой:
В нужные места вставляете получение функции, которая принимает на вход строку и падеж, а затем возвращает строку с добавленным окончанием в зависимости от падежа и последних букв строки.
Функция ПолучитьСклонениеКаз(Строка, Падеж)
Последние2БуквыФИО = Прав(Строка,2);
ПоследняяБуква = Прав(Последние2БуквыФИО,1);
ПредпоследняяБуква = Лев(Последние2БуквыФИО,1);
//Получить по последним 2 буквам
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Падеж", Падеж);
Запрос.УстановитьПараметр("ПоследняяБуква", ПоследняяБуква);
Запрос.УстановитьПараметр("ПредпоследняяБуква", ПредпоследняяБуква);
Запрос.Текст =
"ВЫБРАТЬ
| mega_ПравилаСклонения.Окончание КАК Окончание
ИЗ
| РегистрСведений.mega_ПравилаСклонения КАК mega_ПравилаСклонения
ГДЕ
| mega_ПравилаСклонения.Падеж = &Падеж
| И mega_ПравилаСклонения.ПредпоследняяБуква ПОДОБНО ""%"" + &ПредпоследняяБуква + ""%""
| И mega_ПравилаСклонения.ПоследняяБуква ПОДОБНО ""%"" + &ПоследняяБуква + ""%"";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Строка + Выборка.Окончание;
КонецЕсли;
//Получить по последней букве
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Падеж", Падеж);
Запрос.УстановитьПараметр("ПоследняяБуква", ПоследняяБуква);
Запрос.Текст =
"ВЫБРАТЬ
| mega_ПравилаСклонения.Окончание КАК Окончание
ИЗ
| РегистрСведений.mega_ПравилаСклонения КАК mega_ПравилаСклонения
ГДЕ
| mega_ПравилаСклонения.Падеж = &Падеж
| И mega_ПравилаСклонения.ПоследняяБуква ПОДОБНО ""%"" + &ПоследняяБуква + ""%"";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Строка + Выборка.Окончание;
КонецЕсли;
Возврат Строка;
КонецФункции
Во вложении - Excel-файл для заполнения регистра. Позволяет получать окончание по предпоследней и последней букве слова. Структура файла следующая:
Падеж | Предпоследняя буква | Последняя буква | Окончание | Правило |
---|---|---|---|---|
БарысСептік | |1; }7; w9; і е э и | б в г u1; д к u9; п т ф y1; ц ч ш щ | ке | глухие / (б в г д) |
БарысСептік | |1; }7; w9; і е э и я | ж з л м н v7; р ю у | ге | Все, кроме |
БарысСептік | а о x1; ы у | б в г u1; д к u9; п т ф y1; ц ч ш щ | u9;а | глухие / (б в г д) |
БарысСептік | а о x1; ы у | ж з л м н v7; р ю у | u1;а | Все, кроме |
Заполненный регистр выглядит так: