Имя: Пароль:
1C
1С v8
Склонение фраз в 1с
0 San4opa
 
29.10.15
23:13
ё! Подключил типовую компоненту, чтобы склонять ФИО и должности. Тестова Тестя Тестостероновича склоняет отлично, Но, "руководитель отела" в Родительном падеже - "руководителя отделЫ". "Доверенность" - "ДоверенностЯ". Пробовал как-то так:

ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаСклоненияФИО", "Decl");
Компонента = Новый("AddIn.Decl.CNameDecl");
ДолжностьПодписанта = ДопПараметр.Должность;
Фраза = "";
МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ДолжностьПодписанта, " ");
Для Каждого Слово из МассивСтрок Цикл
    Фраза = Фраза +" "+ Компонента.Просклонять(Слово,2);
КонецЦикла;
Результат = СокрЛП(Фраза);

Есть какие-то еще компоненты или прецеденты или абсорбенты или аплодисменты?
1 GROOVY
 
модератор
29.10.15
23:15
Есть пожелание формулировать вопрос, и читать документацию к "типовой компоненте".
2 San4opa
 
29.10.15
23:23
Для должности просто решил попробовать склонять каждое слово - не помогло, как-то можно с помощью этой компоненты корректно склонить фразы?
3 КонецЦикла
 
30.10.15
00:08
Никаких компонент не нужно
Поищи функцию
Склоняет ФИО и должности (по сути это то же самое почти)
4 romix
 
30.10.15
00:38
А я храню три падежа для ФИО и Должности:

Именительный (Кто?) Директор
Родительный (Кого?) Директора
Дательный (Кому?) Директору

Это подходит для всех случаев печатных форм.
Пользователю заполнять легко, копипаст с изменением окончания.

Удобно также хранить (скрыто) сокращенное ФИО (Иванов И.И.), чтобы сразу его запросом в печать извлекать.
5 romix
 
30.10.15
00:39
Можно наверное компонентами всякими это автозаполнять, но все равно результат надо хранить, чтобы пользователь мог поправить, в случае чего.
6 San4opa
 
30.10.15
01:30
(4) Для каждого контрагента хранить?
7 patria0muerte
 
30.10.15
02:20
(0) Че ты фразами то, сразу предложения в нее кидай, чтобы еще и орфографию исправляла и слог делала достойным Гёте и Маркеса.
8 San4opa
 
30.10.15
03:26
(7) Компоненту запили мне
9 romix
 
30.10.15
03:35
(6) У нас ответственные лица контрагентов (подчиненные контрагентам). Можно добавить окошки с падежами (2-3 падежа) и забыть на уровне программиста об этой проблеме, т.к. пользователи сами все введут. Можно им помочь заполнять пустое какими-нибудь значениями (угадать типичные падежи: Иван - Ивана - Ивану, Петров - Петрова - Петрову). Где программа не угадала (встретился, например, Д'Артаньян), там пользователь руками поправит.
10 cw014
 
30.10.15
07:57
Падёж скота ))))
КомпонентаСклоненияФИО - не даром в ней ФИО крупными буквами (не потому что это сокращение, а что бы понимали все, что она склоняет только именительный падеж только Фамилий имени и отчества
11 Поpyчик-4
 
30.10.15
08:36
У нас уже три года работает компонента склонения http://morpher.ru/1c/
Склоняет корректно достаточно сложные словосочетания.
12 hhhh
 
30.10.15
09:11
"руководитель отела" - это круто
13 фобка
 
30.10.15
09:22
(3) а должности + подразделения? :)))
Хотя все от задачи зависит..
В моей ретленке в каком-то виде реализован кадровый учет  и для печатных форм пришлось создавать отельные реквизиты к должностям (должности без отделов) и отдельные к подразделениям.. Можно было универсально на регистр сведений заточить, но мороки больше
14 zak555
 
30.10.15
09:22
15 San4opa
 
30.10.15
13:53
(11) Будем пробовать, спасиба!
16 EvgeniuXP
 
30.10.15
15:43
(15) она платная.
17 San4opa
 
30.10.15
15:52
Блин а никто не поделится?
18 zak555
 
30.10.15
16:06
(17) я ж тебе дал ссылку на функции
19 San4opa
 
30.10.15
16:21
(18) Не работают корректно, уже пробовал, "ДоверенностЯ!", хотя получше работает.
20 Поpyчик-4
 
30.10.15
16:47
(17) Блин, жаба душит? Мы заплатили.
21 LordCMEPTb
 
30.10.15
16:48
Не скажу за все должности, но стандартная компонента вполне неплохо их склоняет, если найти правильный подход.
Т.е. сначала надо отделить главные слова от зависимых и склонять главные:

// Функция склоняет переданую должность
//
// Параметры:
//    Должность    - Строка    - Должность, которую нужно просклонять
//    Падеж        - Число        - Падеж, в который необходимо просклонять
//                            -    1 - Именительный
//                            -    2 - Родительный
//                            -    3 - Дательный
//                            -    4 - Винительный
//                            -    5 - Творительный
//                            -    6 - Предложный
//    КомпонентаСклонения    - КомпонентаСклонения
//
// Возвращаемое значение:
//    Строка
//
Функция ПросклонятьДолжность(Знач Должность, Знач Падеж, Знач КомпонентаСклонения)
    
    Перем ВременныйРезультат;
    
    // Обнулим переменные
    Результат = "";
    ЕщеНужноСклонять = Истина;
    
    // Получим должность по словам
    МассивСлов = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Строка(Должность), " ");
    
    // Пройдем по каждому слову
    Для Каждого СловоИзМассива Из МассивСлов Цикл
        // Если мы все еще пытаемся просклонять должность, надо проверить на прилагательные
        Если ЕщеНужноСклонять Тогда
            // Просклоняем слово
            УниверсальныеМеханизмы.Просклонять(КомпонентаСклонения, СловоИзМассива, Падеж, Перечисления.ПолФизическихЛиц.Мужской, ВременныйРезультат);
            // Проверим окончание
            ОкончаниеСлова = Прав(СловоИзМассива, 2);
            ЕщеНужноСклонять =    ОкончаниеСлова = "ая"    // Генеральная
                            Или ОкончаниеСлова = "яя"    // Летняя
                            Или ОкончаниеСлова = "ый"    // Генеральный
                            Или ОкончаниеСлова = "ий"    // Летний
                            Или ОкончаниеСлова = "ой";    // Большой
        Иначе // Больше слов не нужно склонять, берем как есть
            ВременныйРезультат = СловоИзМассива;
        КонецЕсли;
        // Добавим в результат
        Результат = Результат + " " + ВременныйРезультат;
    КонецЦикла;
    
    Возврат СокрЛП(Результат);
    
КонецФункции
22 Fragster
 
гуру
30.10.15
16:50
23 Fragster
 
гуру
30.10.15
16:50
из (0)
24 zak555
 
30.10.15
16:51
(19) склоняй отделано должно, отдельно ФИО
далее конкатенация
25 San4opa
 
31.10.15
02:29
(20) Да ща купишь а она работает по-кривому.
26 EvgeniuXP
 
31.10.15
10:24
(25) сделай как в (4) остальное - колхоз - не оценят, а кучу времени и нервов потратишь - и камни будут еще кидать после такой работы.
27 EvgeniuXP
 
31.10.15
10:25
(26) дальше по служебкам - предоставляют алгоритм склонения - ты и делаешь, плохо будет работать - ссылка на служебку - ты хороший, а тот кто написал такую служебку - его проблемы :)
28 Поpyчик-4
 
02.11.15
09:30
(25) По-кривому она не работает. Мы как-то нашли ошибку в склонении, написали разработчику, он быстро исправил.