|
v8: Склонение по падежам | ☑ | ||
|---|---|---|---|---|
|
0
iceman2112
16.01.12
✎
18:28
|
Кто подскажет модуль или может в ЗиУП есть какие то стандартные функции для склонения по падежам?
|
|||
|
1
rbcvg
16.01.12
✎
18:35
|
// Функция склоняет переданую фразу
// Параметры: // Фраза (обязательный), тип строка // Параметр должен содержать фразу. Каждое слово фразы будет просклонено отдельно // // Падеж (обязательный), тип число // Падеж, в который необходимо поставить ФИО. // 1 - Именительный // 2 - Родительный // 3 - Дательный // 4 - Винительный // 5 - Творительный // 6 - Предложный // Функция Просклонять(Компонента, Знач Фраза = "", Падеж = 1, Пол = Неопределено, Результат) Экспорт Если Компонента = Неопределено Тогда Возврат Ложь; КонецЕсли; Результат = ""; МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Фраза, " "); // Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов НомерНесклоняемогоСимвола = 4; Для Номер = 1 По Мин(МассивСтрок.Количество(), 3) Цикл Если Не РегламентированнаяОтчетность.ФИОНаписаноВерно(МассивСтрок[Номер-1], Истина) Тогда НомерНесклоняемогоСимвола = Номер; Прервать; КонецЕсли; Результат = Результат + ?(Номер > 1, " ", "") + МассивСтрок[Номер-1]; КонецЦикла; Если ПустаяСтрока(Результат) Тогда Результат = Фраза; Возврат Ложь; КонецЕсли; Попытка Если Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда Результат = Компонента.Просклонять(Результат, Падеж, 1) + " "; ИначеЕсли Пол = Перечисления.ПолФизическихЛиц.Женский Тогда Результат = Компонента.Просклонять(Результат, Падеж, 2) + " "; Иначе Результат = Компонента.Просклонять(Результат, Падеж) + " "; КонецЕсли; Исключение Результат = Фраза; Возврат Ложь; КонецПопытки; // Остальные символы добавим без склонения Для Номер = НомерНесклоняемогоСимвола По МассивСтрок.Количество() Цикл Результат = Результат + " " + МассивСтрок[Номер-1]; КонецЦикла; Результат = СокрЛП(Результат); Возврат Истина; КонецФункции // Просклонять() |
|||
|
2
iceman2112
16.01.12
✎
18:39
|
Спасибо!
|
|||
|
3
V_V_V
16.01.12
✎
18:45
|
:))
Кто сегодня не склонял никого и ничего - отзовитесь!!! |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |