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

Автор Тема: Удалить лишние пробелы  (Прочитано 12248 раз)

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

Оффлайн malvina_l

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-08
  • Сайт: 
  • Профессия: Программист 1С
привет, подскажите пожалуйста как удалить пробелы в середине строки , например "12582   наименование" нужно удалить пробелы между кодом и наименованием начала писать запрос а дальше что- то туплю:
Запрос= Новый Запрос;
      Запрос.Текст= "ВЫБРАТЬ
      |справочник.Наименование
      | ИЗ
      | Справочник. КАК справочник
      |ГДЕ
      | справочник= &справочник";
      Результат=Запрос.Выполнить();
      Выборка=Результат.Выбрать();
      Пока выборка.Следующий() цикл
      НоваяСтрока=
         Если  Найти(Лев(наименование),5);


Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Если в Наименовании только один пробел то:
НовоеНаименование = СтрЗаменить(ТекущееНаименование, " ", "");
иначе:
ПозицияПробела = Найти(ТекущееНаименование, " ");
НовоеНаименование = Лев(ТекущееНаименование, ПозицияПробела-1) + Сред(ТекущееНаименование, ПозицияПробела + 1);

Оффлайн malvina_l

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-08
  • Сайт: 
  • Профессия: Программист 1С
Если в Наименовании только один пробел то:
НовоеНаименование = СтрЗаменить(ТекущееНаименование, " ", "");
иначе:
ПозицияПробела = Найти(ТекущееНаименование, " ");
НовоеНаименование = Лев(ТекущееНаименование, ПозицияПробела-1) + Сред(ТекущееНаименование, ПозицияПробела + 1);
вр=Сред(Наименование,6);
             Если  Лев(вр,1) = " "       тогда
                 вр=СокрЛП(вр);
                Наименование=Лев(Наименование,5)+" "+вр;
           КонецЕсли;
сделала так во внешней обработке а теперь как обратиться к наименованию справочника и перебрать все значения??

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Какие-то странные пляски с пробелом...
Наименование = ?(Наименование[6]= " ", Лев(Наименование, 5) + " " + СокрЛП(Прав(Наименование, СтрДлина(Наименование) - 6)), Наименование);

Оффлайн knopodav

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-11
  • Сайт: 
  • Профессия: Программист 1С
Если в Наименовании только один пробел то:
Код: [Выделить]
НовоеНаименование = СтрЗаменить(ТекущееНаименование, " ", "");

Да пофик сколько пробелов в "НовоеНаименование"! Конструкция уберёт их все.

Встроенные функции языка (Script functions)
СтрЗаменить (StrReplace)
Синтаксис:

СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Исходная строка.
<ПодстрокаПоиска> (обязательный)

Тип: Строка.
Искомая подстрока.
<ПодстрокаЗамены> (обязательный)

Тип: Строка.
Подстрока, на которую будет заменена подстрока поиска.
Возвращаемое значение:

Тип: Строка.
Строка, полученная в результате замены.
Описание:

Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Оффлайн LordWizard

  • "Иди учи бухгалтерский учет и не беспокой просьбами господа Бога!"
  • *****
  • Сообщений: 1463
  • РЕПУТАЦИЯ: 221
  • КПД: 15%
  • Пишу, консультирую, да и так - по клавишам...
  • Регистрация: 2011-07-25
    • Skype: warlock02121968
  • Сайт: 
  • Профессия: Консультант 1С
мне одному кажется, что эта тема - ДеЖавю? :xfbnsdfb:
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Оффлайн DmitriyF

  • *****
  • Сообщений: 741
  • РЕПУТАЦИЯ: 48
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
а может там вообще непрерывный пробел

Оффлайн knopodav

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-11
  • Сайт: 
  • Профессия: Программист 1С
Маловероятно, хотя...
НовоеНаименование = СтрЗаменить(ТекущееНаименование, Символы.НПП, "");

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Да пофик сколько пробелов в "НовоеНаименование"! Конструкция уберёт их все.
Конечно, но с ситуацией, когда из двух пробелов необходимо сделать один (или из трёх - два),  конструкция не справится.

Оффлайн Luzer1C

  • ****
  • Сообщений: 455
  • РЕПУТАЦИЯ: 57
  • КПД: 13%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
 
Цитировать
конструкция не справится.
В таком случае придётся обработку запустить несколько раз.
Халамбалам.


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
161 Сообщений
alex0402
76 Сообщений
oleg-x
68 Сообщений
AIFrame AIFrame
60 Сообщений
buketov.av buketov.av
44 Сообщений
wise wise
39 Сообщений
KOI8-R
35 Сообщений
Анюта17
29 Сообщений
Alter
29 Сообщений
ilyay ilyay
29 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal