Имя: Пароль:
1C
 
программно поменять номер у всех доков
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) форматируй номер в печатную форму