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

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