Имя: Пароль:
1C
1С v8
убрать нули стоящие слева
,
0 Ololosha
 
18.05.12
23:38
Доброй ночи всем. Нужны помощь... не могу понять:

СсылкаНаОбъект.ссылка.номер хранит строку типа "0000000001"

как мне получить строку типа "1"

документ РеализацияТоваровУслуг, УТ 10.2 под 8.1

подскажите пожалуйста
1 dimoff
 
18.05.12
23:39
Уууу, тут программировать надо!
2 Ololosha
 
18.05.12
23:40
что нибудь полезное плиз
3 Ololosha
 
18.05.12
23:41
функция СтрЗаменить() не подходит, так как меняет все нули даже в самом числе
4 ShoGUN
 
18.05.12
23:42
(3) Число("0000000001") и Формат() дальше
5 ShoGUN
 
18.05.12
23:43
+(4) Хотя в данном случае можно и без Формат()
6 dimoff
 
18.05.12
23:43
(4) А если вместо "1" будет "А" ?
7 Ololosha
 
18.05.12
23:43
(4) я же не знаю сколько символов под номер документа отводится... их сегодня 3 завтра 5
8 zak555
 
18.05.12
23:44
(0) для каких целей ?
9 dimoff
 
18.05.12
23:44
(3) Пока Лев(Номер, 1) = "0" Цикл Номер = Сред(Номер, 2); КонецЦикла

Полезно?
10 ShoGUN
 
18.05.12
23:44
(6) "Уууу, тут программировать надо!"(с)
11 YF
 
18.05.12
23:44
(0) В БП 2.0 Есть функция ПолучитьНомерНаПечать, там это реализовано
12 Ololosha
 
18.05.12
23:44
(6) А может быть вместо первого нуля
13 Лефмихалыч
 
18.05.12
23:45
everybody stand back!

RE = New COMObject("VBScript.RegExp");
RE.Global        = истина;
RE.IgnoreCase    = истина;
RE.Multiline    = истина;
RE.Pattern = "^0+";
СтарыйНомер = "0000000001020506";
НовыйНомер = RE.Replace(СтарыйНомер, "");
14 hhhh
 
18.05.12
23:45
(12) но ведь в любой типовой есть эта функция, неужели охота в 12 часов ночи заниматься дибелизмом?
15 Ololosha
 
18.05.12
23:45
(8) для учебы
16 ShoGUN
 
18.05.12
23:46
(7) В типовых есть функция ПолучитьНомерНаПечать, хотя кто мешает отсечь префикс, а потом (4) - нипанятна.
17 ShoGUN
 
18.05.12
23:47
(13) Жгешь. Хотя в более сложных случаях это единственный нормальный способ.
18 НикДляЗапросов
 
18.05.12
23:48
ПолучитьНомерНаПечать
19 zak555
 
18.05.12
23:48
(15) нахерТебеТакаяУчёба 7
20 Ololosha
 
18.05.12
23:48
(9) спасибо не догонял что Сред делает)
21 Ololosha
 
18.05.12
23:53
(9) не робит(
22 Ololosha
 
18.05.12
23:53
(11) у меня УТ 10.2
23 Лефмихалыч
 
18.05.12
23:54
(21) для копрокода это нормальное состояние
24 Ololosha
 
18.05.12
23:57
я просто не знаю что с (13) делать..
25 Лефмихалыч
 
19.05.12
00:00
(24) можешь распечатать и скурить. Или, например, под язык положить. Еще можно скопипастить в конфигуратор
26 Ololosha
 
19.05.12
00:03
(25) эта строчка СтарыйНомер = "0000000001020506"; нужна?
27 Лефмихалыч
 
19.05.12
00:05
(26) закрой конфигуратор, отойди от компьютера и позови родителей
28 Ololosha
 
19.05.12
00:06
(27) к сожалению родители понимают меньше..
29 pumbaEO
 
19.05.12
00:06
(13) вдруг у него сервер линуксовый?
30 Лефмихалыч
 
19.05.12
00:07
(29) подозреваю, что сервера тупо нет
31 Ololosha
 
19.05.12
00:07
(29) нет
32 pumbaEO
 
19.05.12
00:07
(28) достаточно просто отойти от компьютера.
33 Ololosha
 
19.05.12
00:08
(32) по твоему есть еще способы чему-либо научиться?
34 Лефмихалыч
 
19.05.12
00:09
(33) учиться и "сделайте за меня" - это намного более разные вещи
35 Ololosha
 
19.05.12
00:10
(33) так печатную форму я сам создал, не понимаю как сделать без нулей номер только
36 Ololosha
 
19.05.12
00:10
(35)*
37 Ololosha
 
19.05.12
00:11
(34)*блин
38 Лефмихалыч
 
19.05.12
00:13
(35) ты (13) внимательно прочитай и подумай, что там и зачем написано. Так же можешь скопировать этот код в обработку, выполнить и посмотреть, что получилось в переменной НовыйНомер.
39 pumbaEO
 
19.05.12
00:15
Только "^0+"; не будет работать для номера с префиксом буквенным.
40 Ololosha
 
19.05.12
00:16
(38) это понятно, но когда вместо старый номер подставляю не робит, тк префикс есть
41 Ololosha
 
19.05.12
00:16
(40)+ что поменять что бы отбор с 3го символа начинался?
42 Лефмихалыч
 
19.05.12
00:17
(39) префиксов в задаче нет
(40) что значит "не робит"?
43 pumbaEO
 
19.05.12
00:17
"^\w[а-я]*0+"
44 Ololosha
 
19.05.12
00:19
(43) не помогло
45 Ololosha
 
19.05.12
00:19
(42) сори, но надо спрефиксами учитывать
46 Лефмихалыч
 
19.05.12
00:21
(43) эх, ну мериться так мериться :)
не сработает твой регэксп - \w с ёжиком сожрет всю строку до последнего символа, потому как он greedy

правильно как-то так:
"^[а-я|a-z|-]*0+"
47 НикДляЗапросов
 
19.05.12
00:22
И всетаки ты посмотри как в типовые печатный формы (счета, накладные и т.д.) выводится номер, там вызывается функция которая возвращает номер на печать
48 Ololosha
 
19.05.12
00:23
(46) все робит! отлично спасибо
где про такие штуки почитать можно?
49 Ololosha
 
19.05.12
00:24
(47) не нащел
50 Сияющий Асинхраль
 
19.05.12
00:24
Все просто: сначала Стр3аменить меняешь все нули на пробелы, затем СокрЛ удаляешь пробелы слева (этим отсекаются все левые нули), к оставшемуся применяешь СтрЗаменить в обратную сторону, т.е пробелы на нули
51 dimoff
 
19.05.12
00:27
(50) "Все просто: сначала Стр3аменить меняешь все нули на пробелы, затем СокрЛ удаляешь пробелы слева..."

а потом думаешь почему вместо 102 у меня 12
52 Лефмихалыч
 
19.05.12
00:28
(51) не случится этого
53 dimoff
 
19.05.12
00:29
(52) Невнимательно прочитал, да ты прав
54 Ololosha
 
19.05.12
00:30
(50) вот доступно!)
55 Сияющий Асинхраль
 
19.05.12
00:30
И как СокрЛ убьет пробел внутри? Перечитай что ли
56 pumbaEO
 
19.05.12
00:30
куда префиксы денешь?
57 Лефмихалыч
 
19.05.12
00:31
(56) топку ими топить будет. А ты у кого спрашиваешь?
58 Kreont
 
19.05.12
00:32
Ответ:
Номер = 0000000001 * 1
59 Ololosha
 
19.05.12
00:33
(58) с префиксом прокатит?
60 zak555
 
19.05.12
00:34
(58) может тогда

1* 0000000001 ?
61 zak555
 
19.05.12
00:34
(59) 1с8 сама догадается
62 Kreont
 
19.05.12
00:35
(59) Нет префикс отдельно убрать, он что разный всегда?
63 Лефмихалыч
 
19.05.12
00:36
(62) был бы он одинаковый, нахер бы он был нужен?
64 Ololosha
 
19.05.12
00:41
(50) с префиксом не робит
65 zak555
 
19.05.12
00:43
> не робит

расшифруй ололоша
66 rs_trade
 
19.05.12
00:43
(46) ^([^\d]+)|(0+)?
67 Ololosha
 
19.05.12
00:43
(65) не работает
68 Живой Ископаемый
 
19.05.12
00:45
на каком изыге?
69 Ololosha
 
19.05.12
00:46
где про (13) можно почитать???
70 Ololosha
 
19.05.12
00:46
(68) не знаю, привязалось тупое выражение и все(
71 dimoff
 
19.05.12
00:48
Не понял, почему 9 не работает?
72 НикДляЗапросов
 
19.05.12
00:49
(70) нормальное выражение
73 Ololosha
 
19.05.12
00:50
(71) я попробовал набрал сообщить и ничего
74 Ololosha
 
19.05.12
00:50
(72) ок:D
75 dimoff
 
19.05.12
00:51
(73) Сообщить что?
76 Ololosha
 
19.05.12
00:52
(75) номер
77 rs_trade
 
19.05.12
00:56
(69) бери скорей пока я добрый http://dl.dropbox.com/u/20471596/friedl_regexp.pdf
78 НикДляЗапросов
 
19.05.12
00:57
И дважды всетаки сделай глобальный поиск по конфе по слову -ПолучитьНомерНаПечать
79 Ololosha
 
19.05.12
01:01
(77) спасибо
80 НикДляЗапросов
 
19.05.12
01:02
(79) Ну давай еще дисертацию защитим от неча делать
81 Ololosha
 
19.05.12
01:04
(78) нету это УТ 10.2
82 rs_trade
 
19.05.12
01:04
(78) так не интересно же. а тут глядишь и рег экспы освоит. для расширения кругозора.
83 rs_trade
 
19.05.12
01:05
(81) там есть подобная процедура. может немного по другому называтся.
84 Ololosha
 
19.05.12
01:05
(78) хотя через ctrl+пробел дописывает
85 zak555
 
19.05.12
01:05
(77) Norton commander кнопкой F3 не открывает
86 rs_trade
 
19.05.12
01:07
(85) это проблемы Norton commandera. с файлом все нормально.
87 Ololosha
 
19.05.12
01:11
книжка то клевая еще раз спасибо
88 zak555
 
19.05.12
01:13
(86) > это проблемы Norton commandera

так у меня Norton commander


+ PDF - это Portable Document Format [ wiki:Portable_Document_Format ]