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

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

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

Оффлайн Space_minus

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

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


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

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


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

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


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

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

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

Оффлайн Space_minus

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

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

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

Оффлайн Space_minus

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

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

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

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

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

Оффлайн Space_minus

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

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

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

Оффлайн Kironten

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

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

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
86 Сообщений
alex0402
49 Сообщений
AIFrame
43 Сообщений
Oldman06
31 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
30 Сообщений
vitasw
29 Сообщений
Golickoff Golickoff
28 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений
BuhRust
13 Сообщений

* Кто онлайн

  • Точка Гостей: 195
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal