В чём может быть проблема у Документооборота с контрагентом по фамилии "Марин"? Все фамилии склоняет, а эту нет! Он думает, что это женское имя Марина)))?
Код и скриншоты корректно склоняющихся фамилий прилагаю.
С Морфером, кстати, склоняет корректно, но мы его не используем, т.к. есть ограничение в 100 проверок, а дальше за деньги.
--
Документооборот 8 КОРП, редакция 2.1 (2.1.27.1)
1С:Предприятие 8.3 (8.3.17.1851)

```1c
    РезультатОбработки = ";
    Для Каждого Стрполучатели Из Файл.ВладелецФайла.Получатели Цикл
    Адресат = Стрполучатели.Адресат;
    ФИО = Адресат.Наименование;
    ФИО = СклонениеПредставленийОбъектов.ПросклонятьФИО(Адресат, 3);
    ФИО= СокрЛП(ФИО);
    ФИО = СтрЗаменить(ФИО, " ", Символы.ПС);

    //только иннициалы
    // Если СтрЧислоСтрок (ФИО) > 1 Тогда
    // ИМЯ = Лев(СтрПолучитьСтроку(ФИО, 2), 1)+ ".";
    // КонецЕсли;
    // Если СтрЧислоСтрок (ФИО) > 2 Тогда
    // ОТЧЕСТВО = Лев(СтрПолучитьСтроку(ФИО, 3), 1)+ "." ;
    // КонецЕсли;

    Если СтрЧислоСтрок (ФИО) > 0 Тогда
    ФАМИЛИЯ = " " + СтрПолучитьСтроку(ФИО, 1);
    КонецЕсли;

    Если СтрЧислоСтрок (ФИО) > 1 Тогда
    ИМЯ2 = СтрПолучитьСтроку(ФИО, 2) + " " ;
    КонецЕсли;
    Если СтрЧислоСтрок (ФИО) > 2 Тогда
    ОТЧЕСТВО2 = СтрПолучитьСтроку(ФИО, 3) ;
    КонецЕсли;

    РезультатОбработки = РезультатОбработки + ИМЯ2 + ОТЧЕСТВО2 + ФАМИЛИЯ + Символы.ПС;
    КонецЦикла;
```
---
Склонятор не отрабатывает на 100% корректно ... для этого придумали хранить в регистре значения склонений для каждого объекта
---
Если есть модуль СклонениеПредставленийОбъектов, то должен быть и регистр с фамилиями. Если карточку физ. лица открыть, нет ли там кнопки "Склонения"? Можно вручную поправить.
---
Регистр так и называется "СклоненияПредставленийОбъектов"
---
СклоненияПредставленийОбъектов

Модуль есть, регистр есть. Добавить не могу, т.к. нет возможности выбора объекта...
---
в Документообороте нет такой кнопки. В ЗУПе есть.
---
Склонятор не отрабатывает на 100% корректно ... для этого придумали хранить в регистре значения склонений для каждого объекта
---
, и конечно перед записью в регистр пользователь всегда может поправить по своему усмотрению.
---
Пожалуй, посмотрю в эту сторону.
---
На просторах интернета гуляет пара бородатых функций на встроенном языке еще с 7.7. При том, что код у них вырвиглазный, меня они полностью устраивают.
```1c
    // !№№!
    // !56! укратил
    // !55! Падежи - для оглы и кызы
    // !54!
    // !53! Очередное сокращение кода
    // !51! Прегромадное спасибо Олегу Дубровскому за оказанную моральную, информационную и материальную поддержку сего проекта.
    // Сергею Толкачёву за напоминание о том, что в русском языке всегда есть место исключениям!
    // !50! П:Ответственный за электрохозяйство Ф:Ацута Груша
    // !48! исправлена ошибка при склонении фамилий (спасибо, Mario).
    // !47! исправлена ошибка при склонении профессий ( спасибо, Павел Ковалев).
    // !46! оптимизация + четвертый параметр задает, что вернуть - фамилия, имя или отчество или всё сразу в нужном падеже
    // !42! Осел + Соловей + Воробей + Немец + Кормилец + Силиец
    // !41! отчества оканчивающиеся на "ы" считаются женскими ?

    // Функция для склонения одного слова!!!
    // z1 - само слово
    // z2 - номер падежа
    // z3 - пол
    // z4 - 1-склонять как фамилию, 2-имя, 3-отчество
    Функция ПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт

    z5=Найти(z1,"-");
    z6=?(z5=0,","-"+ПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4));
    z1=НРег(?(z5=0,z1,Лев(z1,z5-1)));
    z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
    z5=СтрДлина(z1);
    za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8);
    zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1));
    zc=Макс(z2,-z2);
    zd=?(za=4,5,Найти("айяь",z9));
    zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч",","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Прав(z1,4)<>"опой"))или((zb>10)и(za=16)),8,zd))),zd)));
    ze=Найти("лец вей бей дец пец мец нец рец вец аец иец ыец бер",z7);
    zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>45),",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,",?(ze<12,"ь"+?(ze=1,"ц","),?(ze<37,"ц",?(ze<49,"йц","р"))))))))));
    // zf=?((zd=9)или((z4=3)и(z3="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>"),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));
    zf=?((zd=9)или((z4=3)и(Прав(z1,1)="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>"),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));

    Возврат ?("=z1,",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6);

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

    // z1 - фамилия имя отчество например Железняков Юрий Юрьевич
    // z2 - Падеж ( по умолчанию = 2 - родительный)
    // 2 - родительный ( нет кого? ) Железнякова Юрия Юрьевича
    // 3 - дательный ( кому? ) Железнякову Юрию Юрьевичу
    // 4 - винительный ( вижу кого? ) Железнякова Юрия Юрьевича
    // 5 - творительный ( кем? ) Железняковым Юрием Юрьевичем
    // 6 - предложный ( о ком? ) Железнякове Юрии Юрьевиче
    // Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю.
    // z3 - параметр Пол может не указываться, но при наличии фамилий с
    // инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим
    // параметром 1 - мужской 2 - женский
    // ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ!
    // ---------------------------------------------------------------------------------------

    // Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей Капица-Метелица
    // Если Падеж(Фио ,1 ,3), то на выходе получим Фамилия Имя Отчество и т.д.
    // Если Падеж(Фио ,1 ,3,"1" ), то Фамилия
    // Если Падеж(Фио ,1 ,3,"2" ), то Имя
    // Если Падеж(Фио ,1 ,3,"3" ), то Отчество
    // Если Падеж(Фио, 1 ,3,"12" ), то Фамилия Имя
    // Если Падеж(Фио, 1 ,3,"23" ), то Имя Отчество
    // Если Падеж(Фио,-1 ,3,"231" ),то И. О. Фамилия
    // Если Падеж(Фио,-1 ,3,"23" ), то И. О.
    // 10-11-2003 3-20
    Функция Падеж(z1,z2=2,z3=3,z4="123",z5=1) Экспорт

    z6=Нрег(Прав(СокрП(z1),4));
    z7=Прав(z6,1);
    Возврат?(z5<4,Падеж(СокрЛП(СтрЗаменить(Сред(z1,Найти(z1+" "," ")+1),".",". ")),z2,z3,СтрЗаменить(z4,z5,ПадежС(?((z5=3)и(z7="ы"),z1,Лев(z1,Найти(z1+" "," ")-1)),z2,Сред("ча"+z7,?(z3=3,?(z6="оглы",1,?(z6="кызы",1,3)),z3),1),z5)+" "),z5+1),z4);

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

    // ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ
    Функция ПадежП(Знач z1,Знач z2,z3=0) Экспорт

    z1=СокрЛП(z1);z4=Найти(z1+" "," ")+1;z5=Лев(z1,z4-2);z6=Прав(z5,2);

    z7=?((Найти("ая ий ый",z6)>0)и(Найти("ющий нный",Сред(z1,z4-5,4))=0)и(z3=0),"1","*");

    Возврат ?((z6="ая")или(Прав(z6,1)="а"),ПадежС(z5,z2,z7,1)+" "+ПадежС(Сред(z1,z4),z2),ПадежС(z5,z2,"ч",1)+?((z6="ий")и(Найти(z1," ")=0),"," "+?(z7="1",ПадежП(Сред(z1,z4),z2,Число(z7)),Сред(z1,z4))));

    КонецФункции
```
---
вот же, кто-то заморочился))!!!
---
ну так склонятор это не волшебный ящик :) В нем тоже похожий алгоритм заложен.