Имя: Пароль:
1C
1С v8
Как работает Число (Стр) ?
0 zak555
 
30.07.12
10:34
Число("01 ") = 1
Число("0")   = 0
Число(" 1")  = 1

а вот
Число("00п")
Число("")

{(1)}: Преобразование значения к типу Число не может быть выполнено

т.е. пробелы умеет отбрасывать, а всё остальное нет ?
1 Maxus43
 
30.07.12
10:35
ну пробел - незначащий символ, а "п" как он тебе преобразует?
2 zak555
 
30.07.12
10:35
(1) 7ка его откидывала
3 Maxus43
 
30.07.12
10:36
Преобразует полученный параметр в значение типа Число.
Значение типа Строка преобразуется в число в том случае, если параметр является строковым представлением литерала численного типа. При этом строковое представление анализируется как с учетом региональных установок информационной
базы, так и без их учета. В противном случае будет выдано сообщение об ошибке выполнения функции.
(с) СП
(2) ну и хорошо что 8-ка не откидывает, надо нормально код писать
4 Рэйв
 
30.07.12
10:42
Функция ЧислоИзЛюбойСтроки(Строчка)
  СтрочкаЧисло="";
  Для н=1 По СтрДлина(Строчка) цикл
     Сим-Сред(Строчка,н,1);
     Если Найти("0123456789",Сим)>0 Тогда
        СтрочкаЧисло=СтрочкаЧисло+Сим;
     КонецЕсли;
  Конеццикла;
  Возврат Число(СтрочкаЧисло);
КонецФункции


//----------------
...
А=ЧислоИзЛюбойСтроки("00п");
5 zak555
 
30.07.12
10:43
(3) > ну и хорошо что 8-ка не откидывает, надо нормально код писать

это нужно для перенумерации документов с помощью штатной обработки УниверсальныеПодборИОбработкаОбъектов.epf
в номера документах ЗУПа есть "постфиксы", от которых нужно избавиться
дополнение строки символами, как функция общего модуля -- нашёл
а вот преобразование в число из строки, если там могут быть не числовые литералы - нет

просто не хочется велосипед изобретать
6 Рэйв
 
30.07.12
10:43
Сим-Сред(Строчка,н,1);
читать как
Сим=Сред(Строчка,н,1);
7 zak555
 
30.07.12
10:43
(4) это понятно, но в УниверсальныеПодборИОбработкаОбъектов.epf функцию не напишешь
8 Maxus43
 
30.07.12
10:45
(5) чтоб не изобретать - вытаскивай именно номер, без префиксов. общая функция - ПодготовитьНомерНаПечать() умеет
9 Maxus43
 
30.07.12
10:45
(7) что мешает?
10 zak555
 
30.07.12
10:49
(8) там номера типа

"000067 пр"
11 Maxus43
 
30.07.12
10:50
(10) ищи первую не цифру и обрезай тогда... частный случай решается таким образом, универсальными обработками никак
12 zak555
 
30.07.12
10:52
(11) так это самое простое решение )))
я то думал, что в зупе много универсальных функций в общих модулях, с помощью которых можно было бы решить эту простую задачу
13 i_rodionov
 
30.07.12
10:52
Кстати, интересная тема, как использовать регулярные выражения
14 pumbaEO
 
30.07.12
10:57
(13) http://snegopat.ru/forum/viewtopic.php?f=6&t=218&; регулярные тоже можно использовать.
15 i_rodionov
 
30.07.12
10:58
(14) Это я намекал автору на эту вещь
16 pumbaEO
 
30.07.12
10:59
(15) на linux версии не взлетит. :)
17 i_rodionov
 
30.07.12
11:01
(16) согласен, увы
18 zak555
 
30.07.12
11:11
да уж, фигню спросил
19 zak555
 
30.07.12
11:24
кстати, а в ЗУПе для документов ОтпускаОрганизаций префиксов в пользовательском режиме никак не назначишь ?