Имя: Пароль:
1C
1С v8
Преобразовать фамилию.
0 wade25
 
24.11.11
11:55
Добрый день.

Иванов Иван Иваны = Иванов И.И. Как лучше сделать?
1 zzerro
 
24.11.11
11:57
(0) глянь как это в типовых делается, ну или вот тебе готовая функция

Функция ФИО(Сотрудник) Экспорт
   // Описание: возвращает имя сотрудника в формате Фамилия И.О.
   // Параметры: Сотрудник - Строка, СправочникСсылка.ФизическиеЛица, СправочникСсылка.Сотрудники
   // Возвращаемое значение: строка, предсатавление Имени сотрудника в формате Фамилия И.О.
   
   Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество;
   Перем ПозицияПервогоПробела, ПозицияВторогоПробела;
   
   Если НЕ ЗначениеЗаполнено(Сотрудник) Тогда
       Возврат "";
   КонецЕсли;
   
   Если ТипЗнч(Сотрудник) = Тип("Строка") Тогда
       ПолноеИмя = СокрЛП(Сотрудник);
   ИначеЕсли ТипЗнч(Сотрудник) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
       ПолноеИмя = СокрЛП(Сотрудник.Наименование);
   ИначеЕсли ТипЗнч(Сотрудник) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
       ПолноеИмя = СокрЛП(Сотрудник.ФизЛицо.Наименование);
   Иначе
       Возврат "";
   КонецЕсли;        

   ПозицияПервогоПробела = Найти(ПолноеИмя, " ");
   Если ПозицияПервогоПробела = 0 Тогда
       Возврат ПолноеИмя;
   Иначе
       Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела);
       ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1);
       ИмяОтчество = СокрЛ(ИмяОтчество);
       Имя = Лев(ИмяОтчество, 1)+".";

       ПозицияВторогоПробела = Найти(ИмяОтчество, " ");
       Если ПозицияВторогоПробела = 0 Тогда
           Возврат Фамилия+Имя;
       Иначе
           Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1);
           Отчество = СокрЛ(Отчество);
           Отчество = Лев(Отчество, 1)+".";
           Возврат Фамилия+Имя+Отчество;
       КонецЕсли;
   КонецЕсли;
КонецФункции  //ФИО
2 Wobland
 
24.11.11
11:57
ПолучитьСокращенноеФИО() поищи
3 wade25
 
24.11.11
13:37
Класс) А есть типовая функция которая адрес в строку преобразовывает?)
4 Wobland
 
24.11.11
13:37
(3) что есть адрес в этом случае?
5 Wobland
 
24.11.11
13:38
// Функция находит актуальное значение адреса в контакной информации.
//
// Параметры:
//  Объект - СправочникСсылка, объект контактной информации
//  ТипАдреса - тип контактной информации
//
// Возвращаемое значение
//  Строка - представление найденного адреса
//
Функция ПолучитьАдресИзКонтактнойИнформации(Объект, ТипАдреса = "") Экспорт
6 wade25
 
24.11.11
13:38
(4) Вот так вот вывести: 111625, Москва г, блабла ул, дом № 25, корпус 1
7 wade25
 
24.11.11
14:02
(5) ТипАдреса = "" .... что тут должно быть? Какой параметр?
8 Wobland
 
24.11.11
14:05
Если ТипАдреса="Фактический" Тогда
       Начало = "Факт";
   ИначеЕсли ТипАдреса="Регистрации"
         ИЛИ ТипАдреса="Юридический" Тогда
       Начало = "Юр";
   Иначе
       Возврат "";
   КонецЕсли;

...
ВидАдреса = Справочники.ВидыКонтактнойИнформации[Начало+"Адрес"+Окончание].ПолучитьОбъект().Ссылка;