Имя: Пароль:
1C
1С v8
1с ФИО+инициалы
0 JaZDik
 
27.09.13
10:29
Ребят что у меня нехватает в коде и где, чтоб параметр РаботникИН вывелась Фамилия + Инициалы... Заранее спасибо!





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

Функция  Печать() Экспорт
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник КАК Работник,
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник КАК РаботникИН,
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.ДатаПриема КАК ДатаПриема,
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ТарифнаяСтавка КАК Оклад,
    |    ПаспортныеДанныеФизЛиц.ДокументСерия КАК СерияПР,
    |    ПаспортныеДанныеФизЛиц.ДокументНомер КАК НомерПР,
    |    ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи КАК ДатаПР,
    |    ПаспортныеДанныеФизЛиц.ДокументКемВыдан КАК КемвыданПР,
    |    КонтактнаяИнформация.Представление КАК АдресРаботника,
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.ФизЛицо.ИНН КАК ИННРаботника,
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.ФизЛицо.СтраховойНомерПФР КАК СНИЛСРаботника
    |ИЗ
    |    Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц
    |        ПО ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.Физлицо = ПаспортныеДанныеФизЛиц.ФизЛицо
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |        ПО ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.Физлицо = КонтактнаяИнформация.Объект
    |ГДЕ
    |    ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка = &ТекущийДокумент";

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
        
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриемНаРаботуВОрганизациюРаботникиОрганизации_ТрудовойДоговорРуководитель";
    
    Макет = ПолучитьМакет("ТрудовойДоговорРуководитель");
    
    ОбластьМакета = Макет.ПолучитьОбласть("ОбластьМакет");
    ОбластьМакета.Параметры.Работник = Шапка.Работник;
    ОбластьМакета.Параметры.РаботникИН = Шапка.РаботникИН;
    ОбластьМакета.Параметры.ДатаПриема = Шапка.ДатаПриема;
    ОбластьМакета.Параметры.Оклад = Шапка.Оклад;
    ОбластьМакета.Параметры.АдресРаботника = Шапка.АдресРаботника;
    ОбластьМакета.Параметры.СерияПР = Шапка.СерияПР;
    ОбластьМакета.Параметры.НомерПР = Шапка.НомерПР;
    ОбластьМакета.Параметры.ДатаПР = Шапка.ДатаПР;
    ОбластьМакета.Параметры.ИННРаботника = Шапка.ИННРаботника;
    ОбластьМакета.Параметры.КемвыданПР = Шапка.КемвыданПР;
    ОбластьМакета.Параметры.СНИЛСРаботника = Шапка.СНИЛСРаботника;
    ОбластьМакета.Параметры.РабочаяДата=ТекущаяДата();
    
    
    
    
    
    ТабДокумент.Вывести(ОбластьМакета);
    Возврат ТабДокумент;


КонецФункции
1 catena
 
27.09.13
10:33
(0)Не хватает присвоения параметру РаботникИН фаимилии+инициалы...
2 catena
 
27.09.13
10:33
Пожалуйста.
3 Молодой 1Снег
 
27.09.13
10:33
ОбластьМакета.Параметры.РаботникИН = РазложитьФИО(Шапка.РаботникИН);
4 catena
 
27.09.13
10:35
(3)Интересно, как будет выглядеть в макете структура?
5 Молодой 1Снег
 
27.09.13
10:37
(4) Да, чёто я фигню написал.
6 JaZDik
 
27.09.13
10:38
(1) Можете показать куда и как я просто еще только начинаю... много незнаю буду оч благадарен
7 JaZDik
 
27.09.13
10:38
(5) да не работает=)
8 Молодой 1Снег
 
27.09.13
10:40
ФИО = РазложитьФИО(Шапка.РаботникИН);
ОбластьМакета.Параметры.РаботникИН = ФИО.Фамилия + " " + Лев(ФИО.Имя,1) + "." + Лев(ФИО.Отчество,1) + ".";

как то так
9 Газебо
 
27.09.13
10:40
Мне одному кажется, что функция "Сред" должна иметь как минимум 3 параметра?
10 Газебо
 
27.09.13
10:41
А, не тупанул.
11 JaZDik
 
27.09.13
10:42
(8) Спасибо вам огромное
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.