Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как убрать пробел в числовом значении?

Как убрать пробел в числовом значении?
Я
   JuixyJes
 
29.06.19 - 20:40
Добрый вечер! Возникла ситуация. Ввожу в поле ввода с типом значения "число" число, потом преобразую в строку, к примеру число 1010 преобразуется как "1 010". Так вот как убрать этот пробел? Пыталась через сокрЛП, не вышло, через СтрЗаменить, так же не вышло. Если пытаться через СтрЗаменить("1 010", " ", ""), значение выдается как 1010, а вот если с переменной, преобразованной в строку, не выходит, подскажите пожалуйста, что делаю не так?
 
 
   ДенисЧ
 
1 - 29.06.19 - 20:42
Не используешь Формат()
   Красный рассвет
 
2 - 29.06.19 - 20:42
Это не пробел, это другой невидимый символ.
Убрать как-то так СтрЗаменить(ТвояСтрока,Символы.НПП,"")
   JuixyJes
 
3 - 29.06.19 - 20:47
(2) сейчас попробую
   JuixyJes
 
4 - 29.06.19 - 20:52
(2) Точно, совсем забыла
   Лефмихалыч
 
5 - 29.06.19 - 20:53
(0) ФОрмат(123456789, "чг=0")
(2) плохой вариант
   Красный рассвет
 
6 - 29.06.19 - 21:09
(5) Не бывает плохих вариантов.
Бывают подходящие и неподходящие для конкретной задачи.
   rphosts
 
7 - 29.06.19 - 21:25
(6)способ из (2) формирует плохой стиль и его можно использовать только там, где другие способы не подходят (а это уже не про задачу из (0)).
   NorthWind
 
8 - 29.06.19 - 21:43
(2) называется "неразрывный пробел". В отличие от обычного пробела 0x20, редактирующий софт вроде ворда и т.п., встретив неразрывный пробел, не делает попыток выполнить перенос по нему. Код символа не помню, загуглите самостоятельно.
   Фокусник
 
9 - 29.06.19 - 21:56
1234567ая "жертва неразрывного пробела" ;)
   Фрэнки
 
10 - 29.06.19 - 22:08
Прикольный вопрос. Просто при выдаче числа в строку без форматирования почему-то платформа использует форматирование, причем, с использованием не простого пробела, а неразрывного, но явным образом об этом предупреждений не припомню.
 
 Рекламное место пустует
   PR
 
11 - 29.06.19 - 22:25
(10) Что тебя удивляет?
Что в 1С работают люди, которые стараются сделать свой продукт лучше и отображать по умолчанию пользователю число в более читабельном виде?
   palsergeich
 
12 - 29.06.19 - 22:31
(10) Я в первый раз с этим столкнулся еще в php в далеком детстве, там было то же самое
   NorthWind
 
13 - 29.06.19 - 22:39
(10) а что по стандарту в России является разделителем триал разрядов? Я честно сказать не знаю. Если пробел, то все они правильно сделали - должен быть неразрывный пробел.
   NorthWind
 
14 - 29.06.19 - 22:39
* триад
   Фрэнки
 
15 - 29.06.19 - 22:41
я бы вообще при преобразовании числа в строку не вставлял группировку разрядов.
   Фрэнки
 
16 - 29.06.19 - 22:42
Если это хотят сделать нарочно, тогда надо указывать явно, что группировка желательна. Когда не указано ничего - не группировать
   NorthWind
 
17 - 29.06.19 - 22:47
(16) в 7.7 так и было,но позже они стали исходить из того, что представление по умолчанию должно быть удобным человекочитаемым, а если надо для дальнейшего преобразования обратно в число, то надо подсуетиться. Оба подхода имеют право на существование.
   Фрэнки
 
18 - 29.06.19 - 22:50
все равно теперь только терпеть... вот выйдет вместо 8-ки уже 9-ка и обратно переделают. Чтоб жизнь медом не казалась и отличать мертвых от живых, ой, молодых от старперов
   PR
 
19 - 29.06.19 - 22:51
(15) Я и говорю, прекрасно, что ты не работаешь в фирме 1С
А то пришлось бы в охулиарде мест в явном виде прописывать формат, потому что разработчики мудаки
По факту конечно бы никто нигде бы не прописывал бы, потому что это просто пипец как заколебаться на ровном месте, просто в итоге пользователи считали бы 1С говном, в которой даже число показать по человечески не могут
   Фрэнки
 
20 - 29.06.19 - 22:53
(19) все всегда говорят, что PR лучше не вылазить из своих веток с набором рекрутов
Как хорошо, что PR не работает в 1С, а то хрен бы туда кого умного набрали.
   PR
 
21 - 29.06.19 - 22:54
(17) Раньше точно так же нужно было "подсуетиться" при преобразовании из строки в число
Потому что нормальные разработчики все-равно выводили 43243254.17 со всякими разделителями, только кто во что горазд, у кого пробел, у кого неразрывный пробел, у кого '
   PR
 
22 - 29.06.19 - 22:56
(20) Странное дело
Я говорю, хорошо, что в 1С умные работают
Ты говоришь, хорошо, что в 1С умные работают
Но в итоге обиделся что-то
   Фрэнки
 
23 - 29.06.19 - 22:56
(21) Нормальные разработчики просто знали, что число для вывода в строку надо форматировать. Т.е. форматную строку подставляли в параметры формата.
   PR
 
24 - 29.06.19 - 22:57
(23) Спасибо, Кэп
Я как бы поработал с семеркой, да
   EvgeniuXP
 
25 - 29.06.19 - 23:37
(0) не хочешь устроиться к нам на работу - мы тут ищем как раз программистку? (в твоем же городе)
   EvgeniuXP
 
26 - 29.06.19 - 23:44
Если что, пиши на почту, здесь я редко появляюсь.
   Красный рассвет
 
27 - 29.06.19 - 23:44
(25) По полу в вакансии Вашей дискриминация просматривается
   Web00001
 
28 - 30.06.19 - 05:54
(16)Я конечно не программист из фирмы 1с, но думаю, что по логике программистов из 1С, любое значение получает представление перед выводом. Число выводится в соответствии с региональными настройками. Которые ты можешь изменить в настройках своего компьютера. И с моей точки зрения это правильная логика. Число выводится для пользователя так как это настроено на его компьютере. Может быть имеет смысл подискутировать о том, что примитивные типы должны форматироваться или не должны(я считаю должны). Но в (0) другая проблема: человек в принципе не понимает, что такое форматирование значения перед выводом.
   Фрэнки
 
29 - 30.06.19 - 08:47
(28) Вот именно, что точно подмечено.

Происходит неявное форматирование при использовании переменных в коде. Просто произвольный код. Просто имена переменных.
Еще нет вывода значений в какие-то поля формы, а во внутреннем коде модуля уже произошло форматирование при присвоении.

Это древняя болезнь с присвоением типов, если переменная объявлена без явной декларации нужного ей типа значения.

Мне представляется так, что значения обязательно форматируются при присвоении в тех случаях, когда явно определен тип Приемника.

Это даже не подход такого характера "правильно так делать или нет", а вопрос стиля/подхода к написанию кода.
В платформе при ее развитии постоянно происходит переопределение - что является примитивным и дефолтным, а что нужно указывать явно.
... Просто не удивлюсь, когда очередной раз поведение кода придется определять дополнительно - раньше этих префиксов контекста не было, а теперь есть контекст НаСервере и НаКлиенте. А когда появится НаКлиенте более сторогий контроль типов, а при этом НаСервере примитивные типы потеряют свои прежние свойства дефолтных преобразований из одного типа в другой... Не удивлюсь.
   Лефмихалыч
 
30 - 30.06.19 - 09:54
(6) бывает. СтрЗменить - плохой. Завтра выйдет новый релиз платформы, который начнет подставлять обычный пробел вместо неразрывного, и хана твоему варианту
   Лефмихалыч
 
31 - 30.06.19 - 09:55
Стрзаменить здесь - это то же самое, что тип определять по его строковому представлению. Так делают только рукожопы.
   DomovoiAtakue
 
32 - 30.06.19 - 12:39
(19)Пока что мы почти всегда при переводе числа в строку вынуждены прописывать формат и убирать группировку. Сложно наверное даже придумать где нужна строка из цифр с группировками. Так что товарищ из (10) вполне правильно написал.
   ДенисЧ
 
33 - 30.06.19 - 12:53
(32) В отчётах и формах нужна. Трудно представить, где число в виде строки не должно форматироваться в локали компьютера.
 
 
   Злопчинский
 
34 - 30.06.19 - 13:49
(10) именно на это я сразу же напоролся при первом своем знакомстве с 8-кой много лет назад. и именно в этот момент 8-ка для меня стала "мертвой"
   DomovoiAtakue
 
35 - 30.06.19 - 14:51
(33)В отчетах когда вы выводите число, то выводите его числом, а не строкой. А преобразование в строку делают для вывода номера или при обменах для сравнения тех же номеров.
   DomovoiAtakue
 
36 - 30.06.19 - 14:54
+(35)Кстати преобразование в строку в принципе делают чтоб убрать группировку, поэтому глупо при переводе в строку оставлять группировку :)
   ДенисЧ
 
37 - 30.06.19 - 15:18
(35) В отчётах, ты таки не поверишь - выводится строка. Пусть неявно преобразованная, но строка.
   Pahomich
 
38 - 30.06.19 - 15:35
(37) Что вы спорите? В отчетах выводится изображение!
   NorthWind
 
39 - 30.06.19 - 15:36
(35) вообще-то нет. Число - это последовательность бит, и чтобы вывести его куда угодно в читабельном виде, вы или явно преобразуете его в строку, если вы пишете на ассемблере, или за вас это сделает библиотечная функция вашего языка, если вы пишете на чем-то более высокоуровневом. Так что вопрос не в том, будет преобразование или нет - оно будет в любом случае. Вопрос только в том, как именно будет выполнено преобразование - с дополнительным форматированием или без него. Как мне думается, и подход семерки, и подход восьмерки имеют право на существование. Нужно просто только иметь в виду особенности.
   DomovoiAtakue
 
40 - 30.06.19 - 17:33
(37)(39)Это уже дебри, которые нас не касаются. Я уже написал для чего программист пишет команду на перевод числа в строку - на 90% это для того чтобы убрать группировку, поэтому логично было бы по умолчанию при переводе числа в строку сразу убирать группировку. С данной темой сталкивались все и никто наверное не посчитал что так как сейчас это нормально. В числе у меня символы цифровые, а в такой же строке откуда-то берутся левое символы, с какой стати, если группировка это всего лишь формат отображения. Это явный косяк разработчиков, котоый по сей день создает доп работу программистам и не надо додумывать какие-то оправдания.
   ДенисЧ
 
41 - 30.06.19 - 18:18
(40) программист пишет команду на перевод числа в строку - на 90% это для того чтобы убрать группировку@

А думал, что бы показать юзерю "вы должны '2`234`456 долларев' ...
   Pahomich
 
42 - 30.06.19 - 18:30
(41) Мне это нужно было для переноса числа в другую программу, когда перенести можно только в виде строки.
   Провинциальный 1сник
 
43 - 30.06.19 - 18:35
(0) XMLСтрока() выдает нормально число строкой
   ДенисЧ
 
44 - 30.06.19 - 18:43
(42) Один случай на тыщщу?
   Pahomich
 
45 - 30.06.19 - 19:45
(44) Других проблем не было
   wowik
 
46 - 01.07.19 - 09:14
(5) +1
(31)+1
   wowik
 
47 - 01.07.19 - 09:15
(0) "ФОТО ВЫЛОЖУ НА ГОД СТАЖА))" - давай сейчас выкладывай, через год страшная станешь от 1с)
   Smile 8D
 
48 - 01.07.19 - 09:26
(0) (43) Так же предпочитаю использовать XMLСтрока() для избавления от неразрывных пробелов в числах.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует