- В этой теме 1 ответ, 2 участника, последнее обновление 5 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как правильно удалить пробелы из строки в 1С?
не заменяет пробел КПП=ТекСсылка.Особыеотметки;
ТекОбъект.Особыеотметки=СтрЗаменить(КПП, » «, «»);
сообщить(КПП);
ТекОбъект.Записать();
Проблема в том, что вы заменяете пробелы в переменной КПП, но при этом в сообщении выводите исходную переменную, а не результат замены. В итоге кажется, что пробелы не удаляются.
Правильно нужно так:
|
1 2 3 4 5 |
КПП = ТекСсылка.Особыеотметки; КППБезПробелов = СтрЗаменить(КПП, " ", ""); ТекОбъект.Особыеотметки = КППБезПробелов; Сообщить(КППБезПробелов); ТекОбъект.Записать(); |
Или сразу:
|
1 2 3 |
ТекОбъект.Особыеотметки = СтрЗаменить(ТекСсылка.Особыеотметки, " ", ""); Сообщить(ТекОбъект.Особыеотметки); ТекОбъект.Записать(); |
Если в Особыеотметки есть не только обычные пробелы, а, например, неразрывные пробелы (код 160) или другие похожие символы, то замените их тоже:
|
1 2 3 4 5 6 7 8 9 |
Функция УбратьПробелы(Строка) Результат = СтрЗаменить(Строка, " ", ""); Результат = СтрЗаменить(Результат, Символы.НеразрывныйПробел, ""); Возврат Результат; КонецФункции ТекОбъект.Особыеотметки = УбратьПробелы(ТекСсылка.Особыеотметки); Сообщить(ТекОбъект.Особыеотметки); ТекОбъект.Записать(); |
Проверьте, что именно в Особыеотметки — иногда пробелы могут быть не обычными, а другими символами, которые визуально похожи.
—
Если после этого пробелы не удаляются, сделайте отладку:
|
1 2 3 4 |
Для Индекс = 1 По СтрДлина(ТекСсылка.Особыеотметки) Цикл Символ = Сред(ТекСсылка.Особыеотметки, Индекс, 1); Сообщить(Строка(КодСимвола(Символ)) + " - '" + Символ + "'"); КонецЦикла; |
Это покажет коды символов, чтобы понять, какие именно пробелы там есть.