Вход | Регистрация
 

программно поменять номер у всех доков

программно поменять номер у всех доков
Я
   dvrk
 
19.04.21 - 15:10
привет, у доков номер вида "0P0000001" нужно выбрать все доки и поменять на " 0P1" только не у 1, а у всех, Удалить нули после P и пробел перед 0 1ым поставить
подскажите как
   Ненавижу 1С
 
1 - 19.04.21 - 15:11
зачем?
   dvrk
 
2 - 19.04.21 - 15:12
(1) ну такая задача
   d_monah
 
3 - 19.04.21 - 15:14
(0) Ацки пишешь))))),собсно обормоток по перенумерации вагон и тележка.Быстрее найти чем обьяснять.Тока бэкап не забудь сделать)))
   acht
 
4 - 19.04.21 - 15:14
(2) Привет. Нужно выбрать все доки с номером вида "0P0000001" и задать им номер типа " 0P1", удалить нули после P и поставить пробел перед 1ым 0 поставить.
   dvrk
 
5 - 19.04.21 - 15:14
(3) ну в смысле.. мне нужно у всех номеров убрать нули после P а перед нулём который перед P поставить пробел
   dvrk
 
6 - 19.04.21 - 15:15
(4)  прив
   Aleksey
 
7 - 19.04.21 - 15:16
(5) ты же понимаешь что ты неправильно понял задачу?
   Fish
 
8 - 19.04.21 - 15:17
(5) Т.е. номер должен с пробела начинаться?
   1Сергей
 
9 - 19.04.21 - 15:18
Задача "выстрели в ногу"?
   dvrk
 
10 - 19.04.21 - 15:18
(8)  да
   DGorgoN
 
11 - 19.04.21 - 15:20
Насколько я помню там трим перед присвоением номер в базе, т.е. строка не может начинаться с пробела. Возможно скулем и возможно решить но я не копал.
   Fish
 
12 - 19.04.21 - 15:22
(11) Вот и мне тоже что-то такое припоминается. А главное, непонятен смысл сего действа.
   dvrk
 
13 - 19.04.21 - 15:22
(11) (12) ну руками то я могу сделать это
   d_monah
 
14 - 19.04.21 - 15:23
(9) Я бы сказал что попахивает выстрелом в голову))
   программистище
 
15 - 19.04.21 - 15:24
скоро появится тема, у меня последний номер " 0P9", и программа говорит что номер не уникален, что делать
   DGorgoN
 
16 - 19.04.21 - 15:25
Реально дает, возможно что то в релизах подправили, но зачем? Попробуй через обработку, можно через Симв(34)
   Fish
 
17 - 19.04.21 - 15:26
(13) Ну раз руками сможешь, то и обработкой тоже. Правда смысл сего действия так и останется в тайне.
   dvrk
 
18 - 19.04.21 - 15:26
(16) ну я не могу догнать как мне поставить пробел перед номером + удалить все нули после P
   Fish
 
19 - 19.04.21 - 15:32
(18) Например, так: Номер = " " + Номер;
   mikecool
 
20 - 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
А, да "на коленке" сделал. Но, думаю, суть автор понял.
   Fish
 
25 - 19.04.21 - 15:51
(21) Во-первых, (22) прав, ну а во-вторых, вангую, что номер "0P0000002" должен стать таки " 0P2", а у тебя получится " 0P12". :)
   Kigo_Kigo
 
26 - 19.04.21 - 15:54
Следующая темы будет "Как вернуть нули" когда он в 0P99 упрется )))
   программистище
 
27 - 19.04.21 - 16:14
(26) я уже в (15) ванговал
   d_monah
 
28 - 19.04.21 - 16:23
(27) Я в (14)
   dvrk
 
29 - 19.04.21 - 16:44
как нули то после п удалить...
   hhhh
 
30 - 19.04.21 - 16:45
скорее всего это тестовая задача, и никуда он не упрется.
 
 
   dvrk
 
31 - 19.04.21 - 16:45
(30) не тестовая
   программистище
 
32 - 19.04.21 - 16:47
ну попробуй проверять Сред() = "0"
и добавлять символ в строку, а потом пробел
получишь свою строку
   Serg_1960
 
33 - 19.04.21 - 17:10
Функция ПодаритьГранатуОбезьяне(Номер)
   Номер = СокрЛП(СтрЗаменить(Номер,"Р",""));
   Пока Истина Цикл
      Если Лев(Номер,1) <> "0" Тогда Прервать    КонецЕсли;
      Номер = Сред(Номер,2);
   КонецЦикла;
   Возврат " 0Р1-" + Номер;
КонецФункции;
   Kassern
 
34 - 19.04.21 - 17:15
(33) а разве нельзя просто получить число из строки? Зачем в цикле обходить и срезать по нолику?
   Kassern
 
35 - 19.04.21 - 17:16
(34) 1ска спокойно преобразует строку 000000001 в число 1...
   Serg_1960
 
36 - 19.04.21 - 17:21
(34) У таких юзверей и номера могут быть чёрт знает какие не совсем цифровые Например, "0P0000001/1".
   Fish
 
37 - 19.04.21 - 17:22
(34) Ну вот, испортил всю интригу.
   Kassern
 
38 - 19.04.21 - 17:23
(36) ТС же пишет "у доков номер вида "0P0000001"
   Serg_1960
 
39 - 19.04.21 - 17:28
ТС много чего пишет - ну не всему же стоит верить :)

Функция ТормозаТолькоДляТрусов(Номер)
   Возврат " 0Р1-" + Формат(Число(СокрЛП(СтрЗаменить(Номер,"Р",""))), "ЧГ=");
КонецФункции
   dvrk
 
40 - 19.04.21 - 18:00
(39) сделал это и номера стали вместо " 0P241"           " 0Р1-241"
   VladZ
 
41 - 19.04.21 - 18:01
(31) Отлично! Не нужно это делать.
   dvrk
 
42 - 19.04.21 - 18:01
(41) как из всех номеров удалить "1-" ?))
   dvrk
 
43 - 19.04.21 - 18:02
(42) или 2 символа после "P"
   hhhh
 
44 - 19.04.21 - 18:04
(43) СтрЗаменить("1-","")
   hhhh
 
45 - 19.04.21 - 18:05
(44)  СтрЗаменить( СтрокаНомера, "1-","")
   VladZ
 
46 - 19.04.21 - 18:08
(42) Не трать своё время. Есть готовое решение.
Вот тут можешь почитать: https://www.1cbit.ru/blog/perenumeratsiya-dokumentov-v-1s-8-3-bukhgalteriya/
   dvrk
 
47 - 19.04.21 - 18:19
(45)  спасибо (46) буду знать..
   Злопчинский
 
48 - 19.04.21 - 18:51
кпц. дожили.
в клюшках это делается штатной обормоткой с диска ИТС.
   dvrk
 
49 - 19.04.21 - 19:59
(48) ну видимо здесь тоже это так делается судя по (46)
   d_monah
 
50 - 20.04.21 - 08:32
(49) Собсна в (3) я тебе это обьяснял,нет же надо было потратить целый раб день))
   Kassern
 
51 - 20.04.21 - 09:05
(40) издеваешься?)) Тебе этот кусок кода ничего не говорит " 0Р1-" + Формат(Число(СокрЛП(СтрЗаменить(Номер,"Р",""))), "ЧГ="); ? из (39) . Даю тебе жирную подсказку, вместо " 0Р1-" напиши, то что тебе надо слева, к примеру " 0Р".
   d_monah
 
52 - 20.04.21 - 09:09
(51) Давайте,давайте больше кода.Ведь точно запорет что нить серьезное))
   Kassern
 
53 - 20.04.21 - 09:15
(52) ну хочется человеку свою нумерацию с блекджеком и пробелом перед номером, ну и пущай балуется)
   d_monah
 
54 - 20.04.21 - 09:21
(53) Вряд ли человеку захотелось самому с номерами поиграться.Ему задачу поставили, он сказал так точно и вперед))),подумать о последствиях не надо,попробовать типовую обработку не надо,разобрать уже написанную строчку тоже не надо!!За державу обидно.Ну и документов у него всего 250,пог бы и руками поменять))
   Kassern
 
55 - 20.04.21 - 09:28
(54) Мы же не знаем всей подноготной, может ТС оценил все риски, провел анализ и убедился, что имеет возможность сделать такого вида нумерацию. Может это требование для счет фактур из внешней системы, где именно такие номера. В противном случае ТС набьет себе шишек с этой нумерацией, попьет клиенту кровь, или клиент у него. В общем не удачный опыт - тоже опыт)
   d_monah
 
56 - 20.04.21 - 09:34
(55) Ну или так)) dvrk,ты заходи почаще))
   Serg_1960
 
57 - 20.04.21 - 09:36
Если у ТС типовая конфигурация - нам будет весело, а ТС получит бесценный (в прямом смысле слова) опыт.
   Kigo_Kigo
 
58 - 20.04.21 - 09:37
что бы не накосячить в базе с номерами, а требуют именно как в (0) форматируй номер в печатную форму


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.