Предложенные варианты(Морфер с ИТС/БСП) не умеют восстанавливать именительный падеж даже примерно.
На 100% точно врядли удастся решить данную задачу, но я бы попробовал следующее решение. Если подключить анализ исходного справочника (ФизическиеЛица или какой там у вас), выгружая данные в компоненту, можно добиться высокой точности.
4.
ASKiselev
309.09.19 13:39 Сейчас в теме+0.15 $m
Я сделал так:
ФамилияПоставщика=СокрЛП(Лев(СокрЛП(СсылкаНаДокумент.ПредПоставщика),Найти(СсылкаНаДокумент.ПредПоставщика," "))); ///Находим фамилию Поставщика
ИмяОтПоставщика=Прав(СсылкаНаДокумент.ПредПоставщика,СтрДлина(СсылкаНаДокумент.ПредПоставщика)-СтрДлина(СокрЛП(ФамилияПоставщика))-1); //Получаем Имя и Отчетсво
ИмяПоставщика=СокрЛП(Лев(СокрЛП(ИмяОтПоставщика),Найти(СокрЛП(ИмяОтПоставщика)," "))); /// Находим Имя
ОтчествоПоставщика=СОкрЛП(Сред(СсылкаНаДокумент.ПредПоставщика,(СтрДлина(СокрЛП(ФамилияПоставщика))+СтрДлина(СокрЛП(ИмяПоставщика))+2),(СтрДлина(СсылкаНаДокумент.ПредПоставщика)-СтрДлина(СокрЛП(ФамилияПоставщика))-СтрДлина(СокрЛП(ИмяПоставщика))-1))); //ну и Отчество
//переводим ФамилияПоставщика из родительного падежа в именительный - 4 варианта: "а"=""; "ой"="а"; "ого"="ий"; "ой"="ая"
12.
acces969
36602.10.19 15:16 Сейчас в теме+0.1 $m
Название компоненты не помню, поэтому закинул ее на диск https://yadi.sk/d/Y3LP6-qswakHJA. Вот функция:
Просьба добавить рейтинг если возможно, нету на аккаунте ничего.
Функция Просклонять(Текст, Падеж)
Попытка
// Подключаем внешнюю компоненту
ПодключитьВнешнююКомпоненту("ОбщийМакет.Падежи", "NameDecl",ТипВнешнейКомпоненты.Native);
Компонента = Новый("AddIn.NameDecl.CNameDecl");
Исключение
Попытка
//УстановитьВнешнююКомпоненту("ОбщийМакет.Падежи"); - выполнить на клиенте 1 раз
ПодключитьВнешнююКомпоненту("ОбщийМакет.Падежи", "NameDecl",ТипВнешнейКомпоненты.Native);
Компонента = Новый("AddIn.NameDecl.CNameDecl");
Исключение
// Не удалось выполнить операции с внешней компонентой
Сообщить("Не удалось подключить внешнюю компоненту по причине: " + ОписаниеОшибки());
Сообщить("Выполните код на клиенте: ""ПодключитьВнешнююКомпоненту(""ОбщийМакет.Падежи"", ""NameDecl"",ТипВнешнейКомпоненты.Native);""");
КонецПопытки;
КонецПопытки;
Возврат Компонента.Просклонять(Текст, Падеж);
КонецФункции
Предложенные варианты(Морфер с ИТС/БСП) не умеют восстанавливать именительный падеж даже примерно.
На 100% точно врядли удастся решить данную задачу, но я бы попробовал следующее решение. Если подключить анализ исходного справочника (ФизическиеЛица или какой там у вас), выгружая данные в компоненту, можно добиться высокой точности.
(7) В моем случае в справочнике "Контактные лица" изначально заведены ФИО в родительном падеже только в одном справочнике. Что с этим можно сделать в таком случае?