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

Число в строковом представлении, преобразование в число

Число в строковом представлении, преобразование в число
Я
   Злопчинский
 
09.10.20 - 14:30
Строка представления числа, например СтрокаЧисла "11 580", глде пробел - хз, то ли пробел, то ли НП, что-то что штатно 8-ка сует
1. РеквизитСТипомЧисло = СтрокаЧисла;
- в РеквизитСТипомЧисло - какое значение будет
2. ПеременнаяЧтоТо = Число(СтрокаЧисла);
- в ПеременнаяЧтоТо - какое значение будет (думаю аналогично как п.1 будет)

?
   Волшебник
 
1 - 09.10.20 - 14:31
Восьмёрка добавляет Символы.НПП
   ДенисЧ
 
2 - 09.10.20 - 14:33
Формат() придумали для трусов!
   polosov
 
3 - 09.10.20 - 14:44
(0) А = Формат(РеквизитСТипомЧисло, "ЧГ=0");
   Ботаник Гарден Меран
 
4 - 09.10.20 - 15:00
(Новый ОписаниеТипов("Число")).ПривестиЗначение(СтрЗаменить(ЧислоСтрокой,Символы.НПП,""))
   acht
 
5 - 09.10.20 - 15:07
(0) В обоих случаях - число 11580
Глобальный контекст (Global context)
    Число (Number)
Синтаксис:
    Число(<Значение>)
...
Описание:
    Преобразует полученный параметр в значение типа Число.
Значение типа Строка преобразуется в число в том случае, если параметр является строковым представлением литерала численного типа. При этом строковое представление анализируется как с учетом региональных установок информационной базы, так и без их учета. В противном случае будет выдано сообщение об ошибке выполнения функции.
   Злопчинский
 
6 - 09.10.20 - 15:50
(5) когда только появилась в-ка, и было уже не 8.0, а вполне нормальное - я тупо залез в какую-то демо базу и тупоу увидел что представление чисел никак нахер не связано с глобальными региональными устанвоками ОС. точно как 77. это была одна из прчин почему я послал 8-ку нхер. я ожидал от нее  более интеллекта..
   Rovan
 
7 - 09.10.20 - 16:11
Между строками и числами в 1С есть такое различие - двойной плюс:
6++7 можно делать, а "6"++"7" нельзя !
   polosov
 
8 - 09.10.20 - 16:15
(7) Наверное потому, что не бывает положительных и отрицательных строк?
   RomanYS
 
9 - 09.10.20 - 16:16
(7) Вставил в табло - работают оба варианта
   acht
 
10 - 09.10.20 - 16:17
(6)  > глобальными региональными устанвоками ОС
Это, кагбе, совсем не то же самое, что "региональные установки информационной базы"
   Ненавижу 1С
 
11 - 09.10.20 - 16:33
   Злопчинский
 
12 - 09.10.20 - 18:09
(10) Мне как пользователю - абсолютно похрен. я ожидаю что продвинутый продукт из коробки будет нормально и ожидаемо работать, Почему б! эксель  берет десятичный разделитель из ОС, а 1С - нет?
   hhhh
 
13 - 09.10.20 - 18:15
(12) пробелов в строке быть не должно. Убирайте, если она их увидит, пошлет вас куда подальше.
   b_ru
 
14 - 09.10.20 - 18:53
(12) Потому что эксель однопользовательский. А серверной восьмерке из какой ОС прикажешь брать разделитель? Из ОС сервера, ОС клиента или ОС программиста?
   Василий Алибабаевич
 
15 - 09.10.20 - 19:08
(14) "серверной восьмерке из какой ОС прикажешь брать разделитель?"
ГЫ. Из окружения клиента. Как это принято в профессиональных системах.
   hhhh
 
16 - 09.10.20 - 20:15
(15) ГЫ. Из окружения клиента не получится. Потому что у двух разных пользователей разные окружения. Один пользователь запишет число строкой в базу, а другой пользователь читает со своего окружения, и у него получается хрень.


но вообще-то 1с нормально обрабатывает десятичный разделитель. Она принимает и точку и запятую.
   b_ru
 
17 - 09.10.20 - 20:18
(15) Какого именно из сотни подключенных клиентов?
P.S. В профессиональных системах™ вопрос разделителя решен очень просто. Разделитель разрядов равен пустоте. Зачем 1С выпендрились и использовали неразрывный пробел - вопрос, конечно, интересный. Но из настроек системы определенно нельзя было его брать. Потому что это ненормально, когда
&НаКлиенте
А = 1000 + "";

&НаСервере
Б = 1000 + "";

Сообщить(А = Б); //ложь

   Злопчинский
 
18 - 10.10.20 - 03:10
(13) в (5) - с вами не согласны...
   palsergeich
 
19 - 10.10.20 - 03:21
ОписаниеТипов = новый описаниеТипов("Число")
ОписаниеТипов.ПривестиЗначение(Строка)
Попробуй так, в отличии от метода Число - в таком виде не будет исключений. если не может привести - будет пустое значение типа, в твоем случае 0

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