1CLenta.ru  

Компонент склонения ФИО (Native API)

Программирование системы     27.06.2016 16:21     10707

В системе 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");
Исключение
Сообщить("Не удалось подключить внешнюю компоненту: " + ОписаниеОшибки());
КонецПопытки;

Возврат Объект.Просклонять(ФИО, Падеж);

КонецФункции

Примечание:
Чтобы использовать данную компоненту в "Обычном приложении" нужно чтобы в свойстве конфигурации
"Режим использования синхронных вызовов расширений и внешних компонент" стояло "Использовать".
Иначе будет появляется ошибка: Использование синхронных методов на клиенте запрещено!

Комментарии (2)

1. kassbar  05.02.2017 17:38  
не работает
{ВнешняяОбработка.Договор.Форма.Форма.Форма(283)}: Поле объекта недоступно для записи (ФИО)
Возврат Объект.Просклонять(ФИО, Падеж);
2. Admin  08.02.2017 12:25  
Написал в примечании почему может возникать такая ошибка.
В типовых конфигурациях свойство "Режим использования синхронных вызовов расширений и внешних компонент" по умолчанию включено.