|
программно поменять номер у всех доков | ☑ | ||
---|---|---|---|---|
0
dvrk
19.04.21
✎
15:10
|
привет, у доков номер вида "0P0000001" нужно выбрать все доки и поменять на " 0P1" только не у 1, а у всех, Удалить нули после P и пробел перед 0 1ым поставить
подскажите как |
|||
1
Ненавижу 1С
гуру
19.04.21
✎
15:11
|
зачем?
|
|||
2
dvrk
19.04.21
✎
15:12
|
(1) ну такая задача
|
|||
3
d_monah
19.04.21
✎
15:14
|
(0) Ацки пишешь))))),собсно обормоток по перенумерации вагон и тележка.Быстрее найти чем обьяснять.Тока бэкап не забудь сделать)))
|
|||
4
acht
19.04.21
✎
15:14
|
(2) Привет. Нужно выбрать все доки с номером вида "0P0000001" и задать им номер типа " 0P1", удалить нули после P и поставить пробел перед 1ым 0 поставить.
|
|||
5
dvrk
19.04.21
✎
15:14
|
(3) ну в смысле.. мне нужно у всех номеров убрать нули после P а перед нулём который перед P поставить пробел
|
|||
6
dvrk
19.04.21
✎
15:15
|
(4) прив
|
|||
7
Aleksey
19.04.21
✎
15:16
|
(5) ты же понимаешь что ты неправильно понял задачу?
|
|||
8
Fish
19.04.21
✎
15:17
|
(5) Т.е. номер должен с пробела начинаться?
|
|||
9
1Сергей
19.04.21
✎
15:18
|
Задача "выстрели в ногу"?
|
|||
10
dvrk
19.04.21
✎
15:18
|
(8) да
|
|||
11
DGorgoN
19.04.21
✎
15:20
|
Насколько я помню там трим перед присвоением номер в базе, т.е. строка не может начинаться с пробела. Возможно скулем и возможно решить но я не копал.
|
|||
12
Fish
19.04.21
✎
15:22
|
(11) Вот и мне тоже что-то такое припоминается. А главное, непонятен смысл сего действа.
|
|||
13
dvrk
19.04.21
✎
15:22
|
(11) (12) ну руками то я могу сделать это
|
|||
14
d_monah
19.04.21
✎
15:23
|
(9) Я бы сказал что попахивает выстрелом в голову))
|
|||
15
программистище
19.04.21
✎
15:24
|
скоро появится тема, у меня последний номер " 0P9", и программа говорит что номер не уникален, что делать
|
|||
16
DGorgoN
19.04.21
✎
15:25
|
Реально дает, возможно что то в релизах подправили, но зачем? Попробуй через обработку, можно через Симв(34)
|
|||
17
Fish
19.04.21
✎
15:26
|
(13) Ну раз руками сможешь, то и обработкой тоже. Правда смысл сего действия так и останется в тайне.
|
|||
18
dvrk
19.04.21
✎
15:26
|
(16) ну я не могу догнать как мне поставить пробел перед номером + удалить все нули после P
|
|||
19
Fish
19.04.21
✎
15:32
|
(18) Например, так: Номер = " " + Номер;
|
|||
20
mikecool
19.04.21
✎
15:41
|
вангую - автору нужно избавиться от префиксов в номере на печать
|
|||
21
Бишбармак
19.04.21
✎
15:41
|
Все-таки я дам ему гранату.
Функция УбратьНулиИзСтроки(СтрокаИзКоторойУбираем) ВотЧтоВернем=""; СтрокаИзКоторойУбираем= СокрЛП(СтрокаИзКоторойУбираем); //Убираем пробелы в начале и в конце Пока Найти(СтрокаИзКоторойУбираем, "0") > 0 Цикл // " " <- тут ищем до упора СтрокаИзКоторойУбираем= СтрЗаменить(СтрокаИзКоторойУбираем, "0", "");//режем нули КонецЦикла; ВотЧтоВернем=" 0P1"+СтрокаИзКоторойУбираем; Возврат ВотЧтоВернем; КонецФункции; |
|||
22
программистище
19.04.21
✎
15:45
|
(21) если будет 0P0000108
она вернет " 0P118" это мина завернутая в конфетную обертку |
|||
23
Бишбармак
19.04.21
✎
15:48
|
Дык я читаю (0) и там написано "Удалить нули после P". Задача выполнена :)
|
|||
24
Бишбармак
19.04.21
✎
15:51
|
А, да "на коленке" сделал. Но, думаю, суть автор понял.
|
|||
25
Fish
19.04.21
✎
15:51
|
(21) Во-первых, (22) прав, ну а во-вторых, вангую, что номер "0P0000002" должен стать таки " 0P2", а у тебя получится " 0P12". :)
|
|||
26
Kigo_Kigo
19.04.21
✎
15:54
|
Следующая темы будет "Как вернуть нули" когда он в 0P99 упрется )))
|
|||
27
программистище
19.04.21
✎
16:14
|
(26) я уже в (15) ванговал
|
|||
28
d_monah
19.04.21
✎
16:23
|
(27) Я в (14)
|
|||
29
dvrk
19.04.21
✎
16:44
|
как нули то после п удалить...
|
|||
30
hhhh
19.04.21
✎
16:45
|
скорее всего это тестовая задача, и никуда он не упрется.
|
|||
31
dvrk
19.04.21
✎
16:45
|
(30) не тестовая
|
|||
32
программистище
19.04.21
✎
16:47
|
ну попробуй проверять Сред() = "0"
и добавлять символ в строку, а потом пробел получишь свою строку |
|||
33
Serg_1960
19.04.21
✎
17:10
|
Функция ПодаритьГранатуОбезьяне(Номер)
Номер = СокрЛП(СтрЗаменить(Номер,"Р","")); Пока Истина Цикл Если Лев(Номер,1) <> "0" Тогда Прервать КонецЕсли; Номер = Сред(Номер,2); КонецЦикла; Возврат " 0Р1-" + Номер; КонецФункции; |
|||
34
Kassern
19.04.21
✎
17:15
|
(33) а разве нельзя просто получить число из строки? Зачем в цикле обходить и срезать по нолику?
|
|||
35
Kassern
19.04.21
✎
17:16
|
(34) 1ска спокойно преобразует строку 000000001 в число 1...
|
|||
36
Serg_1960
19.04.21
✎
17:21
|
(34) У таких юзверей и номера могут быть чёрт знает какие не совсем цифровые Например, "0P0000001/1".
|
|||
37
Fish
19.04.21
✎
17:22
|
(34) Ну вот, испортил всю интригу.
|
|||
38
Kassern
19.04.21
✎
17:23
|
(36) ТС же пишет "у доков номер вида "0P0000001"
|
|||
39
Serg_1960
19.04.21
✎
17:28
|
ТС много чего пишет - ну не всему же стоит верить :)
Функция ТормозаТолькоДляТрусов(Номер) Возврат " 0Р1-" + Формат(Число(СокрЛП(СтрЗаменить(Номер,"Р",""))), "ЧГ="); КонецФункции |
|||
40
dvrk
19.04.21
✎
18:00
|
(39) сделал это и номера стали вместо " 0P241" " 0Р1-241"
|
|||
41
VladZ
19.04.21
✎
18:01
|
(31) Отлично! Не нужно это делать.
|
|||
42
dvrk
19.04.21
✎
18:01
|
(41) как из всех номеров удалить "1-" ?))
|
|||
43
dvrk
19.04.21
✎
18:02
|
(42) или 2 символа после "P"
|
|||
44
hhhh
19.04.21
✎
18:04
|
(43) СтрЗаменить("1-","")
|
|||
45
hhhh
19.04.21
✎
18:05
|
(44) СтрЗаменить( СтрокаНомера, "1-","")
|
|||
46
VladZ
19.04.21
✎
18:08
|
(42) Не трать своё время. Есть готовое решение.
Вот тут можешь почитать: https://www.1cbit.ru/blog/perenumeratsiya-dokumentov-v-1s-8-3-bukhgalteriya/ |
|||
47
dvrk
19.04.21
✎
18:19
|
(45) спасибо (46) буду знать..
|
|||
48
Злопчинский
19.04.21
✎
18:51
|
кпц. дожили.
в клюшках это делается штатной обормоткой с диска ИТС. |
|||
49
dvrk
19.04.21
✎
19:59
|
(48) ну видимо здесь тоже это так делается судя по (46)
|
|||
50
d_monah
20.04.21
✎
08:32
|
(49) Собсна в (3) я тебе это обьяснял,нет же надо было потратить целый раб день))
|
|||
51
Kassern
20.04.21
✎
09:05
|
(40) издеваешься?)) Тебе этот кусок кода ничего не говорит " 0Р1-" + Формат(Число(СокрЛП(СтрЗаменить(Номер,"Р",""))), "ЧГ="); ? из (39) . Даю тебе жирную подсказку, вместо " 0Р1-" напиши, то что тебе надо слева, к примеру " 0Р".
|
|||
52
d_monah
20.04.21
✎
09:09
|
(51) Давайте,давайте больше кода.Ведь точно запорет что нить серьезное))
|
|||
53
Kassern
20.04.21
✎
09:15
|
(52) ну хочется человеку свою нумерацию с блекджеком и пробелом перед номером, ну и пущай балуется)
|
|||
54
d_monah
20.04.21
✎
09:21
|
(53) Вряд ли человеку захотелось самому с номерами поиграться.Ему задачу поставили, он сказал так точно и вперед))),подумать о последствиях не надо,попробовать типовую обработку не надо,разобрать уже написанную строчку тоже не надо!!За державу обидно.Ну и документов у него всего 250,пог бы и руками поменять))
|
|||
55
Kassern
20.04.21
✎
09:28
|
(54) Мы же не знаем всей подноготной, может ТС оценил все риски, провел анализ и убедился, что имеет возможность сделать такого вида нумерацию. Может это требование для счет фактур из внешней системы, где именно такие номера. В противном случае ТС набьет себе шишек с этой нумерацией, попьет клиенту кровь, или клиент у него. В общем не удачный опыт - тоже опыт)
|
|||
56
d_monah
20.04.21
✎
09:34
|
(55) Ну или так)) dvrk,ты заходи почаще))
|
|||
57
Serg_1960
20.04.21
✎
09:36
|
Если у ТС типовая конфигурация - нам будет весело, а ТС получит бесценный (в прямом смысле слова) опыт.
|
|||
58
Kigo_Kigo
20.04.21
✎
09:37
|
что бы не накосячить в базе с номерами, а требуют именно как в (0) форматируй номер в печатную форму
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |