Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Июл 2017, 13:42
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Разбить ФИО на отдельные строки  (Прочитано 1816 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Space_minus

  • **
  • Сообщений: 92
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-17
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте все :) Подскажите как правильно сделать:
Есть у меня фугкции:
Функция ВыделитьСлово(ИсходнаяСтрока)  
    Буфер = СокрЛ(ИсходнаяСтрока); 
    ПозицияПослПробела = Найти(Буфер, " "); 
    Если ПозицияПослПробела = 0 Тогда 
      ИсходнаяСтрока = ""; 
      Возврат Буфер;
    КонецЕсли;
 
    ВыделенноеСлово = СокрЛП(Лев(Буфер, ПозицияПослПробела));
    ИсходнаяСтрока  = Сред(ИсходнаяСтрока, ПозицияПослПробела + 1);
 
    Возврат ВыделенноеСлово; 
КонецФункции // ВыделитьСлово()
   
Функция ПолучитьФамилиюИО(ИсходнаяСтрока)   
    ФИО = ИсходнаяСтрока;
    Фамилия  = ВыделитьСлово(ФИО); 
    Имя = ВыделитьСлово(ФИО); 
    Отчество = ВыделитьСлово(ФИО);   
    Возврат Фамилия + " " + Лев(Имя,1) + ". " + Лев(Отчество,1)+".";
КонецФункции // ПолучитьФамилиюИО()
Через них пытаюсь Разбить ФИО на отдельные строки:
Функция  ПечатьЭкзаменационныйЛистТеорЭкзВГИБДД (МассивОбъектов,ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

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


  Запрос.УстановитьПараметр("Ссылка",МассивОбъектов);
  РезультатЗапроса = Запрос.Выполнить().Выбрать();
 
  НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;
   
  Макет = ПолучитьМакет("ЭкзаменационныйЛистТеорЭкзВГИБДД");
 
  ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
  РезультатЗапроса.Следующий();
  ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);
 
   ОбластьМакета.Параметры.Фамилия = ПолучитьФамилиюИО(РезультатЗапроса.Обучающийся); // Фамилия- параметр на ПФ,
   ОбластьМакета.Параметры.Имя = ПолучитьФамилиюИО(РезультатЗапроса.Обучающийся);//
     ОбластьМакета.Параметры.Отчество = ПолучитьФамилиюИО(РезультатЗапроса.Обучающийся);//
 
 
  РезультатЗапроса.Сбросить();
  ТабДок.Вывести(ОбластьМакета);

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


выводится в поля "Фамилия" "Имя" и "Отчество" фамилия с инсциаломи Иванов И.И.

Подскажите как правильно сделать 


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
надо не
Возврат Фамилия + " " + Лев(Имя,1) + ". " + Лев(Отчество,1)+".";

а вернуть например структуру из трех строк
и в соответствующие параметры раскладывать...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Space_minus

  • **
  • Сообщений: 92
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-17
  • Сайт: 
  • Профессия: Ученик 1С
Можно по подробнее, мысль понятна, как сделать не пойму

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
вы же в функции получаете отдельно фамилию, имя, отчество
теперь надо создать структуру, заполнить и вернуть
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Space_minus

  • **
  • Сообщений: 92
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-17
  • Сайт: 
  • Профессия: Ученик 1С
вы же в функции получаете отдельно фамилию, имя, отчество
теперь надо создать структуру, заполнить и вернуть

   ОбластьМакета.Параметры.Фамилия = ПолучитьФамилиюИО(РезультатЗапроса.Обучающийся); // Фамилия- параметр на ПФ, Обучающийся - из запроса
       ОбластьМакета.Параметры.Имя = ПолучитьФамилиюИО(РезультатЗапроса.Обучающийся);//
        ОбластьМакета.Параметры.Отчество = ПолучитьФамилиюИО(РезультатЗапроса.Обучающийся);//

я попробовал вернуть, смаху не получилось!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
кто вам сказал что если вы функцию с одинаковыми параметрами вызовите подряд 3 раза она вернет каждый раз разный результат????
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Space_minus

  • **
  • Сообщений: 92
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-17
  • Сайт: 
  • Профессия: Ученик 1С
А если подставить Фамилия, вместо Обучающийся, то ошибка "Поле объекта не обнаружено (Фамилия)"

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
соль не во входном параметре, а в том результате, который функция возвращает.
возвращать надо не строку, а структуру.
это тип данных такой.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Онлайн Kironten

  • *****
  • Сообщений: 810
  • РЕПУТАЦИЯ: 171
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
В свое время, кстати, Rasty выкладывал достаточной эффектный способ решения:
СтрЗаменить(Строка," ",Символы.ПС);
СтрПолучитьСтроку(Строка,<номерстроки>)

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Kironten, да тут пока до оптимизации - чесать и чесать...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Как при вставке текста запроса с консоли запроса ив программный код конфигурации автоматически добавлять прямую черту в начале каждой строки

Автор ktu78Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 1745
Последний ответ 16 Ноя 2015, 08:12
от KrivosheevEV
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 209
Последний ответ 29 Май 2017, 15:29
от alex0402
"Уникальность" строки таблиной части документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1573
Последний ответ 20 Авг 2014, 12:22
от has
как перебрать строки в табличной части документа в форме документа

Автор IaterРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 5772
Последний ответ 06 Май 2015, 23:03
от Iater
Изменение строки "Скидка" в чеке ККМ в Розница 2.2

Автор magnifico61Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 232
Последний ответ 06 Апр 2017, 08:40
от magnifico61

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
92 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
Dethmontt Dethmontt
22 Сообщений
lansy
22 Сообщений
xproh
21 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal