Имя: Пароль:
1C
 
v8 Как убрать пробелы в середине значения
Ø
0 молодой2000
 
09.02.06
10:46
Есть значение 55 111 тип Строка , нужно преобразовать 55111 без пробела , плиз подскажите как ?
1 2115
 
09.02.06
10:48
НоваяСтрка = СтрЗаменить("55 111", " ", "");
2 код263
 
09.02.06
10:49
СтрЗаменить(ТвояСтрока,Символы.НПП,"")
3 молодой2000
 
09.02.06
10:52
Делал так:
ТекущийКод = 55 111;
ДоПробела = Лев(ТекущийКод,Найти(ТекущийКод," ")-1);
ПослеПробела = Сред(ТекущийКод,Найти(ТекущийКод," ")+1,100);
Итог = ДоПробела+ПослеПробела;
Отрабатывает только "После пробела" в таком виде = 55 111;
Где я не прав?
4 молодой2000
 
09.02.06
10:58
Попробывал и (1) и (2) не отробатывает - через отладчик "переменная не определена".
5 код263
 
09.02.06
10:58
есть обычный пробел " "
и есть необычный пробел - неразрывный (Символы.НПП или Символ(160))
6 balamut
 
09.02.06
11:15
Пока найти(значение," ")>0 цикл
  стрзаменить(значение," ","");
конеццикла;
результат=число(значение);
7 Mitrich
 
09.02.06
11:18
(3)Что, в самом деле: "ТекущийКод = 55 111"?
Напиши тогда "ТекущийКод = 55111" и будет щастье :)
А если без шуток, текущий код небось так получал:
ТекущийКод = Строка(ЧисловойКод)
Если да, измени на (это связано с нац.установками в 1С):
ТекущийКод = Строка(Формат(ЧисловойКод, "ЧГ=0")
8 ТелепатБот
 
09.02.06
11:23
<><>–ЈиЮ“ияэ‹®фН™ьДрѕЧЖ№ЁэЌяч?™ыДҐѕ‚Е±ЁшЪшфК™сЗ¤ѕ„Е№яэЌъ НљшЗ§ЅЦЕмЁ¬Ћы ћОщЗҐѕЦЕѕЁщЌэчџ™сЗ§ѕУЕл«®ЪшчОљщЗ¦ѕЂЕпяэЋшчН™юЗҐЅЂЕЅЁЁЌъЎћКы–§иѓ–±ъщЯьҐНПЁ“уйЂ—ѕъъЯя ?К«—§йѓ–ныфЯыҐЙКш“рмФ—јя«ЮщҐПЛэ—¬нХ–кышЪ­ҐНКс–ҐиЂ–°ыщЫ¬ЎКПяЎ•Ыж ‰ННиИ’эьЙе
9 Mitrich
 
09.02.06
11:31
(8) ОФФ Классно :( Меня посчитали. А если так:
"Не преобразовывается дата в строку! Помогите, люди добрые!!!"
Отреагируем?
10 молодой2000
 
09.02.06
11:32
Да Mitrich именно так:ТекущийКод = Строка(СокрЛП(Строка.КодТМЦ));
Попробывал:
ТекущийКод = Строка(Формат(СокрЛП(Строка.КодТМЦ),"ЧГ=0"));
//в отладчике число как было так и осталось без искажений
НоваяСтрока = СтрЗаменить(ТекущийКод,Символы.НПП,"");
//переменная не определена , к сожалению
Раскажу предисторию может поможет понять, есть обработка, в ней есть табличная часть , есть колонка КодТМЦ - тип строка , заполняю эту табличную чать из DBFIII файла , а затем во второй фазе после ее заполнения начинаю искать нужное мне значение, сравниваю КодТМЦ , с Кодом справочника Номенклатура ,находит только значения 4-999, как только 1 000 все каюк из-за пробела любое значение от 1 000 до 99 000 не находит хотя по кодам в справочнике присутствуют все значения в поле код соответственно только в виде 1000 до 99000. Вот и вся сказка !!
11 Mitrich
 
09.02.06
11:36
(10)ТекущийКод = СокрЛП(Формат(Строка.КодТМЦ,"ЧГ=0"));
"Почувствуйте разницу!!!"
Объяснять?
12 2115
 
09.02.06
11:37
НоваяСтрока = СтрЗаменить(ТекущийКод,Символы.НПП,"")
или
НоваяСтрока = СтрЗаменить(ТекущийКод," ","")
Это не может не работать!!!
А для поиска потом что используешь? Поди ТекущийКод? А надо НоваяСтрока
13 Волшебник
 
09.02.06
11:37
<><>–ч—ц–ц–яЗЄБ«–яБЄВэВяБъБяБьБчВяБЄБэБяБ­–яБ«Бъ–яБ«Бя–яВэБэБЄБъ–яВюБЄБЄБюВцБъБ«БчБъ–¬–яБя–яБ«Бя–яБэБЄБ©ВяБЄВю–яБяБэВэБЄВяБя–яБэБъВэБ®Бч–Є¤ПЯ
14 Mitrich
 
09.02.06
11:38
<><>ѕМн№‹шљЭкЫОџ—¬ЎЁйА»мЭыљЃкЫОџА­Ў¬ѕД»јЮшН‡ЅЫИНАюхъй’»нЭшН†ѕШИМ—ҐЎшк—ё№Ю­љФЅ?ИК—«ў®й‘мнЉ®љЃкЫОЛ”®хъйМмёЭ©НФЅЯИЛ—шхЇЊфЮ?ёЛЁдШл­ЇтќЗКж
15 молодой2000
 
09.02.06
11:48
ОГРОМНЫЙ ВСЕМ РЕСПЕКТ,Mitrich,2115,ТелепатБот,balamut,Код263 - но хочу заменить все это время когдая я применял, советы включая (11) находясь в режиме отладки и через точку останова тестил в табло, в котором я видел неопределенное значение строки, вышел из отладчика , начал тестить через Сообщить все "ООК" . Почему же в табло мне не выдавался искомый результат ?
Или это камень в сторону разработчиков платформы , у меня последняя,
1С:Предприятие 8.0 (8.0.13.32).
16 НикПод Давлением
 
09.02.06
11:51
что это вас так расперло
в (2) же дали правильное решение я правда писал так:
стр = СтрЗаменить(стр,Символ(160),"");
работает 100%
17 молодой2000
 
09.02.06
11:56
(16) наверно, без Б , может и так , наверно толи по своей глупости или неопытности я все время сиде в режиме отладки , но зато очень и очень эфективно, многое понял , например если все окончилось на (2) то я бы не узнал о (8), вот и все.
18 Волшебник
 
09.02.06
12:07
(17) Странно, но правильный ответ в (8) на вопрос автора ветки был удален.
19 Волшебник
 
09.02.06
12:13
На всякий случай дам официальную ссылку на решение этой проблемы:
http://www.v8.1c.ru/predpriyatie/typical_problems_Types.htm#2
---
При преобразовании числа из 4 цифр в строку количество символов в строке равно 5. Почему?
.
При стандартных региональных настройках для русского языка при приведении числа к строке между группами разрядов чисел вставляется неразрывный пробел (Символы.НПП), например:
.
Год = 2003;
Строка1 = Строка(Число1); //Строка1 = "2 003", длина строки - 5 символов, включая неразрывный пробел
.
Чтобы преобразовать число к строке без вставки символа-разделителя групп (неразрывного пробела), нужно применить функцию Формат с параметром ЧГ=0:
.
Строка1 = Формат(Число1,"ЧГ=0");
.
Чтобы изменить преобразование чисел к строке по умолчанию, нужно для информационной базы установить региональные настройки (например, параметр "Группировка" установить в 0).
.
Для получения строкового представления года следует не получать числовое значение года, а использовать функцию Формат. Например:
.
Формат(ТекущаяДата(), "ДФ=yyyy")
.
Смотрите также на ИТС "Особенности форматирования значений".
20 0xFFFFFF
 
09.02.06
12:23
(не читая ветку)
Фигасе! Удаление пробелов в строке - 19 постов! Пропало все желание браться за восьмерку...
21 Волшебник
 
09.02.06
12:27
(20) Смешной ты...
22 Mitrich
 
09.02.06
12:37
(2) - правильный ответ на неверно поставленный вопрос
(8), (19) - развернутый правильный ответ на верно переформулированный вопрос
(7), (11) - (скромно) То, что собственно хотел автор (я чуть-чуть телепат :)).
Мораль: учитесь правильно формулировать вопросы.
23 ТелепатБот
 
09.02.06
12:41
(15) Спасибо за благодарность. Для меня это особенно приятно.