Имя: Пароль:
1C
1С v8
Как прибавить число к числу строкового типа
,
0 zippygrill
 
20.12.16
13:26
Всем привет!
Туплю короче
Дано "018446483". Как прибавить ей 1 чтобы она стала "018446484"?
Приведение к типу числу и форматирование приводит к потере лидирующих нулей

ФОрмат(Число(НачалоДиапазона), "ЧВН=; ЧГ=0")
1 1dvd
 
20.12.16
13:27
конструктор форматной строки в помощь
2 zippygrill
 
20.12.16
13:29
А это ФОрмат(Число(НачалоДиапазона), "ЧВН=; ЧГ=0") что по твоему?
3 1dvd
 
20.12.16
13:33
(2) ЧЦ=9; ЧВН=; ЧГ=0
4 CMblCL
 
20.12.16
13:34
(0) ЧЦ=9; ЧВН=; ЧГ=
5 Fish
 
20.12.16
13:35
(0) 1. Преобразовать строку в число
2. Прибавить число
3. Применить к числу формат
6 Fish
 
20.12.16
13:36
+(5) А можно проще:
сначала: 1+"018446483", а потом формат.
7 zippygrill
 
20.12.16
13:38
(6) Ну так уже интереснее. Спасибо!
8 Fish
 
20.12.16
13:43
(7) Так ещё лучше: формат(1+"018446483","ЧЦ=9; ЧВН=; ЧГ=0")
9 solarcold
 
20.12.16
13:59
А можно
Строка(Число("9"+"018446483")+1)
и лидирующую девятку потом убрать
10 SUA
 
20.12.16
14:12
(0)(9)а нельзя
всем подумать про "999999999"+1
11 solarcold
 
20.12.16
14:15
(10) Добавлять девятку только в том случае, если первая цифра - ноль)
12 bodri
 
20.12.16
14:28
(0) длина строки всегда одинакова или нет?
13 bolobol
 
20.12.16
15:34
(11) Добавить единицу, и неважно, ноль ли первая цифра.
14 bolobol
 
20.12.16
15:36
*хинт: число в строке с лидирующими нулями, кагбе, намекает нам о том, что ширина числа - величина постоянная.
15 Serg_1960
 
20.12.16
15:58
(10) Можно подумать :)

Предыдущий = "018446483";
Следующий = СтрЗаменить(1 + Предыдущий, Символы.НПП, "");
Пока СтрДлина(Следующий) < СтрДлина(Предыдущий) Цикл
   Следующий = "0" + Следующий;
КонецЦикла;
16 Serg_1960
 
20.12.16
16:08
"И тут Остапа понесло..."(с)
Индусский код, но он работает... как ни странно :)

Предыдущий = "018446483";
Следующий = СтрЗаменить(1 + Предыдущий, Символы.НПП, "");
Следующий = Лев(Предыдущий, СтрДлина(Предыдущий) - СтрДлина(Следующий)) + Следующий;