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