8.х Как сократить инициалы И. О.?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Korolev, 11 май 2010.

  1. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Всем привет!

    Создаю обработку впф, в макете необходимо указать Полные и сокращенные инициалы (Иванов Иван Иванович и Иванов И. И. соответственно).

    Код:
    Код:
    	Функция Печать() Экспорт
    ЭС = СсылкаНаОбъект;    // Элемент справочника   сотрудники
    
    ЗапросФЛ = новый Запрос;
    ЗапросФЛ.Текст ="ВЫБРАТЬ
    |	РаботникиОрганизацийСрезПоследних.Сотрудник,
    |	РаботникиОрганизацийСрезПоследних.Организация,
    |	РаботникиОрганизацийСрезПоследних.Должность
    |ИЗ
    |	РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, Сотрудник = &Сотрудник) КАК РаботникиОрганизацийСрезПоследних";	
    
    ЗапросФЛ.УстановитьПараметр("Период",ТекущаяДата());
    ЗапросФЛ.УстановитьПараметр("Сотрудник", ЭС);
    
    ВыборкаФЛ = ЗапросФЛ.Выполнить().Выбрать();
    ВыборкаФЛ.Следующий();
    
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    Макет.Параметры.Заполнить(ВыборкаФЛ);
    ТабДок.Вывести(Макет);
    
    Возврат ТабДок;
    КонецФункции
    
    Нашел такую тему для 7ки ( http://www.1c-pro.ru/index.php?showtopic=22685 ) , но не могу прикрутить функцию правильно.

    Суть вопроса: как правильно прикрутить функции из темы указанной выше или как правильно воспользоваться функцией Лев для моего Сотрудника?

    Пока сам мучаю код, ничего не получается. :unsure:

    Благодарю за помощь. :smile:
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не знаю вашу конфигурацию, поэтому может не заработать. Вот участок кода:
    Код:
    ФИО = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СокрЛП(Строка(Ответственный.ФизЛицо))," ");
    КоличествоПодстрок = ФИО.Количество();
    Фамилия = ?(КоличествоПодстрок > 0,ФИО[0],"");
    Имя		= ?(КоличествоПодстрок > 1,ФИО[1],"");
    Отчество= ?(КоличествоПодстрок > 2,ФИО[2],"");
    ФИООтветственного = ?(НЕ ПустаяСтрока(Фамилия), Фамилия + ?(НЕ ПустаяСтрока(Имя),"  " + Лев(Имя,1) + "." + ?(НЕ ПустаяСтрока(Отчество)," " + Лев(Отчество,1)+".", ""), ""), "");
    
    
    Где "Ответственный.ФизЛицо" элемент справочника "Физические лица".
  3. Legion
    Offline

    Legion Опытный в 1С

    Регистрация:
    3 мар 2009
    Сообщения:
    57
    Симпатии:
    1
    Баллы:
    29
    А что за конфигурация то? ОбщегоНазначения.ДанныеФизЛица() - не поможет? :)
  4. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    ЗУП ред. 2.5, только начинаю изучать 1C, поэтому такие "глупые" вопросы :)
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Или еще короче:
    Код:
    ФИООтпускПроизвел                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);
    
    
    
    Где ФамилияИмяОтчествоОтпускПроизвел - строка или ссылка на эл-т справочника ФизЛица.
  6. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Благодарю. Именно то что нужно. :unsure:

Поделиться этой страницей