|
Как упростить генерацию ГосНомераМашины | ☑ | ||
---|---|---|---|---|
0
Antoha18rus
26.02.20
✎
21:52
|
Можно ли как-то проще сделать генерацию гос.номера?
|
|||
1
mikecool
26.02.20
✎
22:03
|
а где же мой гений дарит вам?
|
|||
2
Ненавижу 1С
гуру
26.02.20
✎
22:09
|
Что это за бред?
|
|||
3
Builder
26.02.20
✎
22:09
|
Мне кажется или в госномерах очень сильно ограничен набор букв?
Используются только совпадающие по начертанию с русскими. |
|||
4
DES
26.02.20
✎
22:09
|
Используй Символ(Код) например
|
|||
5
palsergeich
26.02.20
✎
22:10
|
Есть подозрения что результат ГСЧ 1 и ГСЧ2 будет постоянно одинаков.
По крайней мере раньше в платформе была такая багуля |
|||
6
palsergeich
26.02.20
✎
22:12
|
Ибо ГСЧ завязан на время и в пределах секунды ГСч с одинаковой инициацией выдавал одинаковый результат)
|
|||
7
Garykom
гуру
26.02.20
✎
22:12
|
Это новое поколение Y "программистов" или кто из старичков троллит?
Ну пипец же код пишет глазам больно. |
|||
8
vde69
26.02.20
✎
22:13
|
ниже самый короткий способ, только нужны специальные права
Функция НовыйНомер() Возврат = Новый HTTML("gbdd.ru").GetNubberToCach("1000$"); КонецФункции |
|||
9
mishaPH
модератор
26.02.20
✎
22:22
|
(2) для ВСД видимо
|
|||
10
Builder
26.02.20
✎
23:27
|
(9) ВСД - Вегетососудистая дистония?
|
|||
11
palsergeich
27.02.20
✎
00:19
|
1) все буквы в номере РФ - буквы русского алфавита, имеющие схожее написание в латинице. Но это русская раскладка!!!!.
2) с высокой долей вероятности 1 и 2 символ будут всегда совпадать ( не любят разрабы такие вещи фиксить ) 3) формат номера x999xxyyy генератору до этого далеко. Где yyy регион. Может быть 2, а может и 3 цифры, но не все из множества, причем первая цифра может быть 0. Вместо цикла до нужной буквы используй функцию Сред В общем поделию из (0) до генератора ещё как до луны. |
|||
12
Garykom
гуру
27.02.20
✎
00:21
|
(11) коды регионов https://pddmaster.ru/avtomobili/kody-regionov-na-avtomobilnyx-nomerax.html#2
|
|||
13
palsergeich
27.02.20
✎
00:26
|
Ахахаха, я вбил код автора.
ГСЧ по прежднему генерирует одно и тоже. аффтар по коду сделал сдвиг) |
|||
14
Garykom
гуру
27.02.20
✎
00:26
|
(11) >Вместо цикла до нужной буквы используй функцию Сред
МассивСимволов = Новый Массив; МассивСимволов .Добавить("А"); МассивСимволов .Добавить("В"); МассивСимволов .Добавить("С"); и т.д. Намного проще чем юзать МассивСимволов[N] чем со Сред извращаться и строками и главное шустрее должно работать. |
|||
15
Garykom
гуру
27.02.20
✎
00:27
|
(14)+ И с кодами регионов абсолютно аналогично
МассивРегионов = Новый Массив; МассивРегионов.Добавить("01"); МассивРегионов.Добавить("02"); МассивРегионов.Добавить("102"); ... |
|||
16
palsergeich
27.02.20
✎
00:27
|
(14) А что там со Сред извращатьсят ТО?
Сред(Строка, позиция, 1) |
|||
17
Garykom
гуру
27.02.20
✎
00:28
|
(16) Нахер см 15
|
|||
18
palsergeich
27.02.20
✎
00:28
|
(15) Тебе там за строчки кода платят что ли?
номера регионов вшить в макет,и руками точно не вбивать. (15) это очень плохой пример) |
|||
19
Garykom
гуру
27.02.20
✎
00:29
|
(18) Для студента это идеально, в макет это уже клюшечные извраты
|
|||
20
Garykom
гуру
27.02.20
✎
00:30
|
(19)+ Ладно в строку с разделителями, затем ее по разделителя в массив подстрок банально
|
|||
21
palsergeich
27.02.20
✎
00:31
|
Макет - табдок.
Табдок в ТЗ, можно сразу в массив. У ТЗ посчитать количество Потом ГСЧ(1, Количество) И все. то же самое с буквами. (19) Тыконечно парень хороший, но человека учить вбивать массивы прям в код - не лучшаяидея |
|||
22
Garykom
гуру
27.02.20
✎
00:32
|
(21) Ну можно в макет и в ТЗ/Массив
Судя по знаниям ТС ему с массивов начинать самое то. А уже потом переходить к строкам и ТабДок, перед этим освоив ТЗ и прочие Структуры |
|||
23
palsergeich
27.02.20
✎
00:33
|
(20) Строку с разделителями потом поддерживать затратно.
Уж пусть сразу делает как надо. Чувак с соображалкой, но прямолинейный. ГСЧ 2 раза одно и то же выдавал, наш герой не сдался и изобрел сдвиг |
|||
24
palsergeich
27.02.20
✎
00:35
|
(22) Хочешь проверить? Делай это не в отладке. В отладке все будет хорошо.
Сделай Сообщить(Длина) и Сообщить(Длина2) в коде прям - удивишся. я в первый раз тожеобомлел) |
|||
25
Garykom
гуру
27.02.20
✎
00:38
|
(23) Чувак странный зачем то два ГСЧ создал...
|
|||
26
Garykom
гуру
27.02.20
✎
00:39
|
(25)+ Я его логику не понимаю. А соображалки там нет есть копипаста тупая
|
|||
27
palsergeich
27.02.20
✎
00:44
|
(26) Я много чего видел, но такого нет
|
|||
28
palsergeich
27.02.20
✎
00:45
|
(27) хотя бы так, здесь номервпределах секунды будетболее случайный чем в (0)
|
|||
29
Garykom
гуру
27.02.20
✎
00:45
|
(27)
ГСС1 = Новый ГенераторСлучайныхЧисел(); Длина1 = ГСЧ.СлучайноеЧисло(001, 999); Ошибку выдышь? |
|||
30
Garykom
гуру
27.02.20
✎
00:46
|
Нахрена нужны несколько ГСЧ????
|
|||
31
palsergeich
27.02.20
✎
00:46
|
(29) Да) я балда)
|
|||
32
palsergeich
27.02.20
✎
00:48
|
(29) Поправил
|
|||
33
palsergeich
27.02.20
✎
00:48
|
(30) разные диапазоны, норм
|
|||
34
palsergeich
27.02.20
✎
00:50
|
(30) А и тут я ошибся), да достаточно 1го)
Устал, прости) |
|||
35
palsergeich
27.02.20
✎
00:51
|
|
|||
36
Garykom
гуру
27.02.20
✎
00:55
|
(35) Три буквы заверни в цикл и будет почти идеально
|
|||
37
Garykom
гуру
27.02.20
✎
00:55
|
(36)+ А потом вставь номер после первой буквы
|
|||
38
palsergeich
27.02.20
✎
01:05
|
(36) Бу
&НаКлиенте Процедура Команда1(Команда) Строка = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; ГСЧ = Новый ГенераторСлучайныхЧисел(); МассивНомера = Новый Массив; Для итератор = 0 по 3 Цикл Если Итератор <> 1 Тогда МассивНомера.Добавить(Сред(Строка, ГСЧ.СлучайноеЧисло(1,21),1)); Иначе МассивНомера.Добавить(Формат(ГСЧ.СлучайноеЧисло(1, 999) ,"ЧЦ=3; ЧВН=" )); КонецЕсли; КонецЦикла; Сообщить(СтрСоединить(МассивНомера,"")); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |