Склонение по падежам на казахском
Разработка - Универсальные функции
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Добавляете в конфигурацию регистр сведений со следующей структурой:

В нужные места вставляете получение функции, которая принимает на вход строку и падеж, а затем возвращает строку с добавленным окончанием в зависимости от падежа и последних букв строки.
Функция ПолучитьСклонениеКаз(Строка, Падеж)
Последние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;а | Все, кроме |
Заполненный регистр выглядит так:

Вступайте в нашу телеграмм-группу Инфостарт