Имя: Пароль:
1C
1С v8
склонение фио
0 Proshka
 
16.01.12
09:20
конфигурация УПП 8.2 1.3.20.1. Делаю отчет из спарвочника СОтрудникиПредприятия. Нужно вывести не просто наименвание а склоненное в дательном падеже (кому, чему). Как в правке, "Дана, такому то человеку  т.д." Никто не подскажет как сделать? Есть ли типовые решения?
1 ДенисЧ
 
16.01.12
09:21
в зупе есть, однозначно.
2 3V
 
16.01.12
09:21
типовое что-то было, погугли
была и функция вроде где-то на семерке еще отдельная по склонению в разных падежах
3 Fish
 
16.01.12
09:22
Вот, имхо лучше всего склоняет: http://www.superjur.narod.ru/padeg.htm
4 marvak
 
16.01.12
09:22
(0) namedecl.dll вроде, погугли
5 Wobland
 
16.01.12
09:22
// Функция предназначена для склонения ФИО
//
// Входные параметры:
//    ФИО - ФИО
//    Падеж - номер падежа (2 - родительный, 3 - дательный, 4 - винительный, 5 - творительный, 6 - предложный)
//    Формат - флаги склонения ("1" - фамилия, "2" - имя, "3" - отчество), возможны комбинации флагов, например "123"
//    ПараметрСклонения - параметр склонения
//
// Возвращаемое значение:
//    Строка - Реузльтат склонения ФИО
//
Функция Просклонять(ФИО, Падеж = 2, Пол = 3, Формат = "123", ПараметрСклонения = 1) Экспорт
6 andrewks
 
16.01.12
09:23
(3)+1
7 KUBIK
 
16.01.12
09:23
namedecl.dll смотри
8 Proshka
 
16.01.12
09:26
ага, спс, как раз название длл-ки искал, спс всем:)
9 Proshka
 
16.01.12
09:26
не помню просто как она точно называется:)
10 Proshka
 
16.01.12
09:35
(5)-этьо в ЗУПе?
11 Wobland
 
16.01.12
09:37
(10) а не знаю, но не только у меня это есть
12 ThreeTONE
 
16.01.12
09:41
у нас эта компонента далеко не все ФИО склоняет правильно.
после месяца использования пришлось её отключить
13 Proshka
 
16.01.12
10:08
засада- тут оказывается еще и должность склонять надо...
14 Proshka
 
16.01.12
10:08
хотя...
15 Fish
 
16.01.12
10:13
(13) Пример в (3) умеет и должности склонять :))
16 Proshka
 
16.01.12
10:17
смотрите, делаю вот так:

Попытка
Компонента = "NameDecl.dll";
ЗагрузитьВнешнююКомпоненту(компонента);
КомпонентСклонения = Новый("AddIn.NameDeclension");    
Исключение
Сообщить("Не удалось загрузить внешнюю компоненту склонения имен по причине: " + ОписаниеОшибки());
//Возврат "");
КонецПопытки;  
   
НомерСклонения = 2; // Родительный падеж
ТекстВРодительном = КомпонентСклонения.Просклонять("Иванов Иван Иваныч",НомерСклонения);
Сообщить(ТекстВРодительном); // Выводит: Иванова Ивана Иваныча


пишет что не загружена внешняя компонента...регистрировал уже все равно не так...
17 Wobland
 
16.01.12
10:21
(16) не загружена и склоняет?
18 Proshka
 
16.01.12
10:24
да нет, сообщение выходит что не загружена и не склоняет
19 Wobland
 
16.01.12
10:26
(18) regsvr32 делал? что в ОписанииОшибки()?
20 Proshka
 
16.01.12
11:00
Не удалось загрузить внешнюю компоненту склонения имен по причине: {Форма.Отчет.Форма(104)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): Ошибка при загрузке внешней компоненты
21 Proshka
 
16.01.12
11:00
regsvr32 конечно делал
22 Fish
 
16.01.12
11:01
(21) скачай уже (3) и будет тебе щастье. И не надо никаких корявых компонент :)))
23 Proshka
 
16.01.12
11:05
(22) там для семерки
24 Fish
 
16.01.12
11:06
(23) Там код универсальный, в 8.х работает так же :)))
25 Fish
 
16.01.12
11:18
+(24) Скачивать надо по 4-й ссылке
26 Proshka
 
16.01.12
11:34
{Форма.Отчет.Форма(51)}: Преобразование значения к типу Число не может быть выполнено
 Возврат?(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);
27 Wobland
 
16.01.12
11:36
(26) z5? вроде только она
28 Proshka
 
16.01.12
11:38
в смысле?
29 Wobland
 
16.01.12
11:39
(28) смотри на з5 и думай, почему оно такое
30 Fish
 
16.01.12
11:39
А как вызываешь? Видимо напутал с параметрами. Строковый только первый, остальные должны быть числовые
31 Proshka
 
16.01.12
11:51
ФИО=Падеж(Результат1.Наименование,z2=3,z3=3,z4="123",z5=1);
32 Wobland
 
16.01.12
11:52
(31) то есть параметры со 2го по пятый булевские?
33 Fish
 
16.01.12
11:53
Жесть :))) Пиши так: ФИО=Падеж(Результат1.Наименование,3);
34 Proshka
 
16.01.12
11:54
блин, тупанул:) щас:)
35 Fish
 
16.01.12
11:54
Там же есть примеры:
Если Падеж(Фио ,1 ,3),       то на выходе получим Фамилия Имя Отчество и т.д.
// Если Падеж(Фио ,1 ,3,"1" ),  то                   Фамилия
// Если Падеж(Фио ,1 ,3,"2" ),  то                   Имя
// Если Падеж(Фио ,1 ,3,"3" ),  то                   Отчество
// Если Падеж(Фио, 1 ,3,"12" ), то                   Фамилия Имя
// Если Падеж(Фио, 1 ,3,"23" ), то                   Имя Отчество
// Если Падеж(Фио,-1 ,3,"231" ),то                   И. О. Фамилия
// Если Падеж(Фио,-1 ,3,"23" ), то                   И. О.
36 Proshka
 
16.01.12
11:56
да нет, я разобрался... Результат1.Наименование почему то пустой выходит....
37 Proshka
 
16.01.12
11:57
да глова уже кругом идет...сюда то написал после того как сам такую функцию написать пытался:)
38 V_V_V
 
16.01.12
12:12
39 Proshka
 
16.01.12
12:17
все нормально , должность не склоняет

пишу Дол=Падеж(Результат1.Должность,5); типа кем работает

В Справочнике "Специалист ОМ" выдает "1ом ом"...че может быть?
40 Cube
 
16.01.12
12:20
(39) Чем склоняешь-то? В любом случае и NameDecl.dll и (3) склоняют только ФИО...
41 Cube
 
16.01.12
12:21
Если интересно, то NameDecl.dll это очень ранняя версия морфера (http://morpher.ru ). Морфер для 1С сейчас платный.
42 Proshka
 
16.01.12
12:22
нет в разработке есть отдельная функция для склонения должности
43 Wobland
 
16.01.12
12:22
а функция ПадежС() вроде всё умеет, впрочем, не проверял
44 Cube
 
16.01.12
12:23
Ах да, забыл сказать - морфер-то умеет склонять и должности...
Испытать морфер можно тут: http://morpher.ru/Demo.aspx
45 Fish
 
16.01.12
12:23
(39) А почитать комментарии внимательно никак? Там же написано: "ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ!"
46 Proshka
 
16.01.12
12:24
да я и пишу блин Дол=ПадежП(Результат1.Должность,5); все равно так..
47 Fish
 
16.01.12
12:28
Дай емыл вышлю обработочку
48 Proshka
 
16.01.12
12:30
49 Fish
 
16.01.12
12:32
(48) ушло
50 Proshka
 
16.01.12
12:37
вижу..смотрел..не пойму что не так делаю...
51 Proshka
 
16.01.12
12:41
откуда подстановка в падежах берется?
52 Fish
 
16.01.12
12:43
какая подстановка?
53 Proshka
 
16.01.12
12:44
щас пиьсмо кину обратно...лови
54 Fish
 
16.01.12
12:49
Похоже ошибка здесь: Дол=ПадежП(Результат1.Должность,"5");
падеж должен быть числом, а у тебя строка :))
55 Proshka
 
16.01.12
13:02
я числом тоже пробовал, не канает
56 Fish
 
16.01.12
13:03
Странно, у меня в обработке всё работает нормально :)))
57 Proshka
 
16.01.12
13:04
все..догадался..., спс:) не там ошибка была