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

Автор Тема: Разбить  (Прочитано 4708 раз)

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

Оффлайн Игорь1c

  • *
  • Сообщений: 34
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-17
  • Сайт: 
  • Профессия: Программист 1С
Разбить
« Первое сообщение: 05 Дек 2014, 10:25 »
Задание - " В поле «ФИО» вводится фамилия, имя, отчество одной строкой. Причем регистр может не соблюдаться (первая буква имени с маленькой буквы, остальные с большой). Требуется «разобрать» ФИО на «Фамилию», «Имя», «Отчество» (и записать в соответствующие реквизиты). При этом нужно «исправить» регистры букв. "

Регистры букв переделать не проблема , но вот как разбить например такое - " иВАНОВиВАНсЕРГЕИЧ " на отдельные слова , что то даже не представляю . Кому не трудно опишите общий алгоритм как это сделать , если можно , то с названием функций по порядку .


Оффлайн freez1301

  • ***
  • Сообщений: 130
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2014-04-25
  • Сайт: 
  • Профессия: Ученик 1С
Re: Разбить
« Ответ #1: 05 Дек 2014, 10:35 »
иВАНОВиВАНсЕРГЕИЧ - такую строку так:
разбиваешь ее на символы, кладешь в массив, бегаешь по массиву - как только натыкаешься на букву в нРег - отрезаешь все, что было до нее

Оффлайн Игорь1c

  • *
  • Сообщений: 34
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-17
  • Сайт: 
  • Профессия: Программист 1С
Re: Разбить
« Ответ #2: 05 Дек 2014, 10:53 »
спасибо попробую
Добавлено: 05 Дек 2014, 10:54

как только натыкаешься на букву в нРег

только фио может быть любое , как быть то ?

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

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Разбить
« Ответ #3: 05 Дек 2014, 11:17 »
В поле «ФИО» вводится фамилия, имя, отчество одной строкой

может вводится все таки правильно, т.е. с пробелами?
а ваш пример "иВАНОВиВАНсЕРГЕИЧ" - это ваш домысел?
вы бы уточнили у постановщика задачи...

а в нашей типовой бухгалтерии делается так:
Процедура НаименованиеПриИзменении(Элемент)

   ФИО = Наименование;

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

КонецПроцедуры

// Функция выделяет первое слово в предложении.
//
Функция ВыделитьСлово(ИсходнаяСтрока, СчетчикВызова) Экспорт
   
   Буфер = СокрЛ(ИсходнаяСтрока);
   ПозицияПослПробела = Найти(Буфер, " ");

   Если (ПозицияПослПробела = 0)
       Или (СчетчикВызова >= 3) Тогда
      ИсходнаяСтрока = "";
      Возврат Буфер;
   КонецЕсли;
   
   ВыделенноеСлово = СокрЛП(Лев(Буфер, ПозицияПослПробела));
   ИсходнаяСтрока = Сред(ИсходнаяСтрока, ПозицияПослПробела + 1);
   
   Возврат ВыделенноеСлово;
   
КонецФункции // ВыделитьСлово()
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Игорь1c

  • *
  • Сообщений: 34
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-17
  • Сайт: 
  • Профессия: Программист 1С
Re: Разбить
« Ответ #4: 05 Дек 2014, 11:27 »
может вводится все таки правильно, т.е. с пробелами?

Да в том то и дело , что если бы с пробелами проблем бы не было .

а ваш пример "иВАНОВиВАНсЕРГЕИЧ" - это ваш домысел?

Это то как я понял задачу .

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

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

Оффлайн Игорь1c

  • *
  • Сообщений: 34
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-17
  • Сайт: 
  • Профессия: Программист 1С
Re: Разбить
« Ответ #6: 05 Дек 2014, 11:47 »
ну так уточните...

а что уточнять ? Формулировка точная на 100%

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Re: Разбить
« Ответ #7: 05 Дек 2014, 11:48 »
Задание - " В поле «ФИО» вводится фамилия, имя, отчество одной строкой. Причем регистр может не соблюдаться (первая буква имени с маленькой буквы, остальные с большой). Требуется «разобрать» ФИО на «Фамилию», «Имя», «Отчество» (и записать в соответствующие реквизиты). При этом нужно «исправить» регистры букв. "

То, что ФИО вводится одной строкой не означает, что нет разделителей. Предельно простая задача слегка усложнена неизвестным регистром слов. Т.е. "иВАНОВ Иван сергеевич" надо преобразовать в "Иванов", "Иван", "Сергеевич". Легкотня.

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

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Разбить
« Ответ #8: 05 Дек 2014, 11:50 »
В поле «ФИО» вводится фамилия, имя, отчество одной строкой

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

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Re: Разбить
« Ответ #9: 05 Дек 2014, 12:23 »
В поле «ФИО» вводится фамилия, имя, отчество одной строкой

и где тут сказано, что вводится без пробелов?

На самом деле, очень не трудно понять эту часть задания именно так, как понял ТС. Новичку пока трудно видеть в этой "строке" реквизит с типом "Строка" неограниченной длины.


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal