Имя: Пароль:
1C
 
Отделение числа от символа управляемые формы
0 JuixyJes
 
06.06.19
17:34
Добрый вечер, форумчане! Помогите пожалуйста, нужна функция для управляемых форм для отделения числа от знака %
1 MakaMaka
 
06.06.19
17:35
что значит отделения числа? вам надо убрать символ из строки или что?
2 shuhard
 
06.06.19
17:38
(0 уже пятница ?
3 Кодер
 
06.06.19
17:39
Как у вас погода? Звали на большие деньги, холодного моря испугался.
Что пробовала сама сделать?
4 Фрэнки
 
06.06.19
17:39
как только заканчивается четверг, так уже начиналась пятница
5 Вафель
 
06.06.19
17:39
большие - это 300к?
6 Фрэнки
 
06.06.19
17:42
(0) если по существу вопроса:

дай пример данных из которых тебе что-то там отделить нужно ( вероятно, что это какая-то строка символов, в которой есть % ? )
7 JuixyJes
 
06.06.19
17:45
(6) Допустим "10%" из них мне нужно только число 10 , чтобы совершать арифметические действия с ним.

&НаКлиентеНаСервереБезКонтекста
Функция СтрокуВЧисло(СтрокаСЧислом)
    МассивСтрок = СтрРазделить(СтрокаСЧислом, "0123456789", Ложь);
    Для Каждого ТекСтрока из МассивСтрок Цикл
        СтрокаСЧислом = СтрЗаменить(СтрокаСЧислом, ТекСтрока, "");
    КонецЦикла;
    
    Возврат (СтрокаСЧислом);
КонецФункции
8 JuixyJes
 
06.06.19
17:45
(7) Пробовала вот так
9 JuixyJes
 
06.06.19
17:47
(3) Погода - прекрасная! Сегодня +19 завтра +20 а в субботу и вовсе +26-30
10 runoff_runoff
 
06.06.19
17:51
это очень сложный вопрос.. вряд ли кто-то поможет..
11 JuixyJes
 
06.06.19
17:52
(10) Ахахах, очень забавно)) Я и сама впринципе понимаю что нужно сделать, и даже как это сделать, но не получается
12 JuixyJes
 
06.06.19
17:52
(7) В этой функции даже вижу заветную "10", но дальше результат принимает пустое значение
14 Фрэнки
 
06.06.19
17:53
(12) А что мешает сделать

СтрЗаменить(СтрокаСЧислом, "%", "");

Это при условии, что там, в этой строке встречаются только лишний %
15 Кодер
 
06.06.19
17:53
На бумажке сделай, пойми - как ты хочешь это сделать.

Я бы читал по символу, если символ - не цифра или точка, то игнорировал. Если цифра, то умножила результат на 10 и добавил цифру. Если запятая, то чуть сложней.
16 MakaMaka
 
06.06.19
17:54
Ну или статично написать. если 10% тогда число/10
17 Кодер
 
06.06.19
17:54
потом бы вспомнил, что результат надо инициализировать.
18 MakaMaka
 
06.06.19
17:54
(15) ерунда, ваш метод из 15.15% сделает 1515, за это надо отбивать шурундулы
19 MakaMaka
 
06.06.19
17:55
Надо просто делить на 10
20 Кодер
 
06.06.19
17:56
Чего отбивать??? Это вообще безопасно гуглить?

ЗЫ Автор, может на этапе ввода данных не давать вводить фигню?
21 Фрэнки
 
06.06.19
17:57
(20) да не, она скорей всего разбирает какой-то перенос данных
22 MakaMaka
 
06.06.19
17:57
(20) автор не может, причем ничего.

(21) она разбирает, перенос данных? Тогда мы все в опасности
23 Фрэнки
 
06.06.19
18:02
(22) А если она только учится? Пусть учится - пострадают кошки и то, только те, которые она сама себе придумала.
24 MakaMaka
 
06.06.19
18:03
Ломать она уже умеет, раз не понимает что 10% это 0,1 в типе число. Так что ликвидатор готов к боевой задачи. Пусть крушит
25 MakaMaka
 
06.06.19
18:04
(23) Если она хочет вменяемости, то пусть кажет буфера
26 RomanYS
 
06.06.19
18:10
Интересный факт.
В большей части вопросов про формы на мисте не будет указан их тип (УФ/ОФ). А здесь есть))
27 MakaMaka
 
06.06.19
18:13
(26) значит за аватаркой мужик. он нас троллит.
28 novichok79
 
07.06.19
07:10
накидал за пару минут

&НаКлиентеНаСервереБезКонтекста
Функция СтрокуВЧисло(СтрокаСЧислом)

    Если СтрЗаканчиваетсяНа(СтрокаСЧислом, "%") Тогда
        Делитель = 100;
    Иначе Делитель = 1;
    КонецЕсли;

    РазрешенныеСимволы = "01234567890,.";
    НоваяСтрока = "";
    
    Для Счетчик = 1 По СтрДлина(СтрокаСЧислом) Цикл
        
        Символ = Сред(СтрокаСЧислом, Счетчик, 1);
        
        Если СтрНайти(РазрешенныеСимволы, Символ) > 0 Тогда
            
            НоваяСтрока = НоваяСтрока + Символ;
            
        КонецЕсли;
        
    КонецЦикла;
    
    Если Не ПустаяСтрока(НоваяСтрока) Тогда РезультатФункции = Число(НоваяСтрока) / Делитель;
    Иначе РезультатФункции = 0;
    КонецЕсли;

    Возврат РезультатФункции;
    
КонецФункции
29 Сияющий в темноте
 
07.06.19
08:42
Начнем с того,что строку нужно парсить.
то есть,мы читаем число из строки до первого кривого символа,а потом по нему решаем,что делать.
есть мнение,что если символ %,то надо умножать результат на 100.

ну и,сначала нужно понять,что мы хотим получить в следующих случаях
10%15
11+22
12/3
3а8