|
Склонение фамилий в БП 2.0 | ☑ | ||
---|---|---|---|---|
0
Ната48
17.08.15
✎
22:28
|
Подскажите, пожалуйста, как можно (если можно)) в БП 2.0 реализовать склонение ФИО контрагентов в документе ПКО? (от: ФИО (кого?))
|
|||
1
trooba
17.08.15
✎
22:31
|
(0) использовать namedecl.dll и механизм склонения из ЗУП (например), хотя он не всегда корректно работает
|
|||
2
Ната48
17.08.15
✎
22:44
|
Спасибо, буду пробовать))) других, похоже, способов нет (или я не нашла)))
|
|||
3
Ната48
17.08.15
✎
23:43
|
Ну, вот я зарегистрировала эту компоненту. И что мне дальше с ней делать? Что бы в строке "от" было ФИО В Винительном падеже?
|
|||
4
Джинн
17.08.15
✎
23:47
|
(3) Посмотреть как это сделано в ЗУП не предлагать?
|
|||
5
Ната48
17.08.15
✎
23:51
|
))) спасибо за пинок в нужном направлении)))
|
|||
6
trooba
18.08.15
✎
10:11
|
(5) // Функция склоняет переданую фразу
// Параметры: // Фраза (обязательный), тип строка // Параметр должен содержать фразу. Каждое слово фразы будет просклонено отдельно // // Падеж (обязательный), тип число // Падеж, в который необходимо поставить ФИО. // 1 - Именительный // 2 - Родительный // 3 - Дательный // 4 - Винительный // 5 - Творительный // 6 - Предложный // Функция Просклонять(Компонента, Знач Фраза = "", Падеж = 1, Пол = Неопределено, Результат) Экспорт Если Компонента = Неопределено Тогда Возврат Ложь; КонецЕсли; Результат = ""; МассивСтрок = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(Фраза, " "); // Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов НомерНесклоняемогоСимвола = 4; Для Номер = 1 По Мин(МассивСтрок.Количество(), 3) Цикл Если Не ФИОНаписаноВерно(МассивСтрок[Номер-1], Истина) Тогда НомерНесклоняемогоСимвола = Номер; Прервать; КонецЕсли; Результат = Результат + ?(Номер > 1, " ", "") + МассивСтрок[Номер-1]; КонецЦикла; Если ПустаяСтрока(Результат) Тогда Результат = Фраза; Возврат Ложь; КонецЕсли; Попытка Если Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда Результат = Компонента.Просклонять(Результат, Падеж, 1) + " "; ИначеЕсли Пол = Перечисления.ПолФизическихЛиц.Женский Тогда Результат = Компонента.Просклонять(Результат, Падеж, 2) + " "; Иначе Результат = Компонента.Просклонять(Результат, Падеж) + " "; КонецЕсли; Исключение Результат = Фраза; Возврат Ложь; КонецПопытки; // Остальные символы добавим без склонения Для Номер = НомерНесклоняемогоСимвола По МассивСтрок.Количество() Цикл Результат = Результат + " " + МассивСтрок[Номер-1]; КонецЦикла; Результат = СокрЛП(Результат); Возврат Истина; КонецФункции // Просклонять() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |