В системе 1С есть возможность подключать внешние компоненты. Компонент "Склонение ФИО" предназначен для склонения фамилии, имени и отчества на русском языке. Данный компонент может склонять только строки из трёх слов. Многие типовые конфигурации содержат данный компонент в общих макетах и функции в общих модулях для работы с ним. Если в конфигурации присутствует данный механизм, то при создании внешних отчетов или обработок можно воспользоваться готовыми функциями склонения ФИО.
Например в типовой конфигурации "Зарплата и кадры бюджетного учреждения 1.0", компонента склонения хранится в общем макете "КомпонентаСклоненияФИО". Функция Просклонять() расположена в общем модуле "УниверсальныеМеханизмы".
Скачать компоненту Склонение ФИО
Компонента поставляется на дисках ИТС в папке 1CITSEXEAPPEXTCOMP. Если ИТС-диска нет, то свежую версию компоненты склонения ФИО можно скачать с сайта ИТС скачать appextcomp.zip.
Компонента Склонение ФИО
Объект компоненты содержит метод Просклонять (Decline). Данная функция на вход принимает три параметра: ФИО, Падеж, Пол. Возвращает строку содержащую результат склонения ФИО.
Параметр ФИО Обязательный параметр, тип Строка. Содержит фамилию имя отчество в именительном падеже единственного числа. Фамилия имя отчество должны быть разделены пробелами.
Параметр Падеж Обязательный параметр, тип Число. Номер падежа в котором необходимо просклонять ФИО.
1 - Именительный
2 - Родительный
3 - Дательный
4 - Винительный
5 - Творительный
6 - Предложный
Параметр Пол Необязательный параметр, тип Число. Рекомендуется указывать режим авто. При неправильном указании пола результат склонения будет не верным.
0 - авто
1 - мужской
2 - женский
После скачивания, архив appextcomp.zip необходимо распаковать. В папке APPEXTCOMP будет лежать архив с компонентой NameDecl.zip. В макет с типом двоичные данные помещается архив NameDecl.zip
Функция ПросклонятьФИО(ФИО, Падеж)
//Компонента в макете обработки Адрес = "Обработка.Обработка1.Макет.КомпонентаСклоненияФИО";
//ИЛИ
//Компонента в общем макете Адрес = "ОбщийМакет.Макет";
//ИЛИ
//Для внешней обработки, макет обязательно должен быть помещен во временное хранилище Макет = ПолучитьМакет("Макет"); Адрес = ПоместитьВоВременноеХранилище(Макет, Новый УникальныйИдентификатор);
Попытка ПодключитьВнешнююКомпоненту(Адрес, "NameDecl", ТипВнешнейКомпоненты.Native); Объект = Новый("AddIn.NameDecl.CNameDecl"); Исключение Сообщить("Не удалось подключить внешнюю компоненту: " + ОписаниеОшибки()); КонецПопытки;
Возврат Объект.Просклонять(ФИО, Падеж);
КонецФункции
Примечание: Чтобы использовать данную компоненту в "Обычном приложении" нужно чтобы в свойстве конфигурации "Режим использования синхронных вызовов расширений и внешних компонент" стояло "Использовать". Иначе будет появляется ошибка: Использование синхронных методов на клиенте запрещено!
Написал в примечании почему может возникать такая ошибка. В типовых конфигурациях свойство "Режим использования синхронных вызовов расширений и внешних компонент" по умолчанию включено.