Имя: Пароль:
1C
1С v8
Склонение должностей
0 Толмачев
 
30.03.12
07:51
Подскажите, как просклонять должности сотрудников, например, в трудовом договоре. ФИО склоняется, а как просклонять должность? подразделение?
1 vicof
 
30.03.12
07:53
и каким образом у тебя ФИО склоняется?
2 Толмачев
 
30.03.12
07:57
УниверсальныеМеханизмы.ПросклонятьФамилиюИмяОтчество(глЗначениеПеременной("глКомпонентаСклоненияФИО"), РезультатЗапросаПоОтветственнымЛицам.Фамилия, РезультатЗапросаПоОтветственнымЛицам.Имя, РезультатЗапросаПоОтветственнымЛицам.Отчество, 2, РезультатЗапросаПоОтветственнымЛицам.Пол, РезультатСклонения);
ОбластьЧасть1.Параметры.ФИОГлавВрача = РезультатСклонения;
3 dva1c
 
30.03.12
08:06
(2) Результат на (0) получен?
4 vicof
 
30.03.12
08:10
(2) и что теперь нужно попытаться сделать?
5 andrewks
 
30.03.12
08:11
одна из самых безглючных: http://www.superjur.narod.ru/padeg20110728.rar
6 Толмачев
 
30.03.12
08:15
(5) спасибо
7 mikeA
 
30.03.12
08:21
(2) попробуй просклонять по словам

Функция ПросклонятьФразуПоСловам(Знач ИсходнаяСтрока, Падеж) Экспорт

   Результат = "";

   ИсходнаяСтрока = СокрЛП(ИсходнаяСтрока);
   Если СтрДлина(ИсходнаяСтрока) = 0 Тогда
       Возврат Результат;
   КонецЕсли;

   Поз = Найти(ИсходнаяСтрока, " ");
   Пока Поз > 0 Цикл

       СловоВПадеже = "";

       Слово = Лев(ИсходнаяСтрока, Поз-1);
       УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Слово, Падеж, , СловоВПадеже);

       Результат = СокрЛП(Результат + " " + НРег(СловоВПадеже));
       ИсходнаяСтрока = СокрЛП(Сред(ИсходнаяСтрока, Поз));

       Если ПустаяСтрока(ИсходнаяСтрока) Тогда
           Прервать; // Это перестраховка. Цикл и так должен прерваться
       КонецЕсли;

       Поз = Найти(ИсходнаяСтрока, " ");
   КонецЦикла;

   Если НЕ ПустаяСтрока(ИсходнаяСтрока) Тогда // добавляем заключительное слово
       СловоВПадеже = "";
       УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), ИсходнаяСтрока, Падеж, , СловоВПадеже);
       Результат = СокрЛП(Результат + " " + НРег(СловоВПадеже));

   КонецЕсли;
   
   Возврат Результат;

КонецФункции // ПросклонятьФразуПоСловам()
8 Толмачев
 
30.03.12
08:42
(7) Спасибо!