|
Генератор случайных чисел | ☑ | ||
---|---|---|---|---|
0
amadeus2010
28.10.13
✎
17:56
|
добрый вечер как правильно создать генератор случайных чисел в 1С? Я для справочника номенклатура создал код который должен генерировать случайные числа для элемента справочника Серийные номера. Вот код
///////////////////////////////////////////////////////////////////// Процедура ГенераторСерийныхНомеров() экспорт //Дима+ ГСЧ = Новый ГенераторСлучайныхЧисел(); СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0,1000000000); КонецПроцедуры Процедура СгенерироватьСерийныйНомерНажатие(Элемент) //Дима+ Если ПустаяСтрока(СерийныйНомер) тогда СерийныйНомер.ГенераторСерийныхНомеров(); КонецЕсли; КонецПроцедуры ////////////////////////////////////////////////////////////// При нажатии на кнопку выходит ошибка {Справочник.СерииНоменклатуры.Форма.ФормаЭлемента.Форма(330)}: Значение не является значением объектного типа (ГенераторСерийныхНомеров) СерийныйНомер.ГенераторСерийныхНомеров(); |
|||
1
Wobland
28.10.13
✎
17:57
|
СерийныйНомер=ГенераторСерийныхНомеров();
и на функцию рпереписать |
|||
2
K-5
28.10.13
✎
17:57
|
Может так лучше? СерийныйНомер=ГенераторСерийныхНомеров();
|
|||
3
Wobland
28.10.13
✎
17:59
|
только вот что будешь делать, когда у тебя для разных номенклатур сгенерится одинаковый серийник?
|
|||
4
Lama12
28.10.13
✎
18:00
|
(0) Серийники через ГСЧ делать?
Ведь дубли будут. |
|||
5
vhl
28.10.13
✎
18:01
|
(0) В чем преимущество случайного серийника перед последовательным?
|
|||
6
vhl
28.10.13
✎
18:03
|
Дима+ :)
|
|||
7
Wobland
28.10.13
✎
18:06
|
я тут себе картинки когда-то переименовывал...
Процедура КнопкаВыполнитьНажатие(Кнопка) ГСЧ=Новый ГенераторСлучайныхЧисел; Файлы=НайтиФайлы(Путь, "*.jpg"); ОбщееКоличество=Файлы.Количество(); Для й=0 По ОбщееКоличество-1 Цикл НовоеИмя=Путь+"\"+Формат(ГСЧ.СлучайноеЧисло(0, 99999999), "ЧЦ=8; ЧВН=; ЧГ=0")+".jpg"; ф=Новый Файл(НовоеИмя); Если ф.Существует() Тогда й=й-1; Продолжить; КонецЕсли; ПереместитьФайл(Файлы[й].ПолноеИмя, НовоеИмя); КонецЦикла; КонецПроцедуры |
|||
8
vhl
28.10.13
✎
18:10
|
(7) Так и не понял в чем преимущество случайного номера перед последовательным?
|
|||
9
vhl
28.10.13
✎
18:10
|
(8) Я не понял
|
|||
10
amadeus2010
28.10.13
✎
18:11
|
хорошо как избежать дублей при генерировании серийных номеров?
|
|||
11
Wobland
28.10.13
✎
18:14
|
(8) попытка сделать рандомное слайд-шоу на девайсе, не знающем о ГСЧ
(10) генерировать последовательно, начиная с максимального иммеющегося + 1 |
|||
12
echo77
28.10.13
✎
18:14
|
(10) Смотреть (7)
|
|||
13
vhl
28.10.13
✎
18:16
|
(10) Найти последний и прибавить 1
|
|||
14
vhl
28.10.13
✎
18:20
|
(10) А вот еще - сделать код справочника уникальным и просто копировать его в серийник :)
|
|||
15
Wobland
28.10.13
✎
18:26
|
guaranteed to be random
http://imgs.xkcd.com/comics/random_number.png |
|||
16
amadeus2010
28.10.13
✎
18:31
|
(10) код справочника и так уникален, нужно генерить серийный номер товара
|
|||
17
Wobland
28.10.13
✎
18:32
|
(16) вот тебе с твоим ГСЧ не пофих ли, будет он равен коду или нет?
|
|||
18
amadeus2010
28.10.13
✎
18:32
|
сейчас такая ситуация- я жму на кнопку сгенерировать код, но никакой операции не происходит-поле Серийный номер пустое как и прежде
|
|||
19
Wobland
28.10.13
✎
18:34
|
(18) ну если ты до сих пор не внял советам, то всё верно. заполняться не будет
|
|||
20
vhl
28.10.13
✎
18:35
|
(16) И в чем проблема? Серийный уникальный? Уникальный. То что он равен коду - тебе что от этого? Душевный дискомфорт испытываешь?
|
|||
21
amadeus2010
28.10.13
✎
18:37
|
(19) не совсем понял советы еще раз подробнее можно?
|
|||
22
amadeus2010
28.10.13
✎
18:37
|
если я правильно понял то Серийный номер = Код справочника так?
|
|||
23
Wobland
28.10.13
✎
18:38
|
(21) -> (1)
(22) предлагаем назначить серийником код |
|||
24
vhl
28.10.13
✎
18:42
|
(23) Еще можно просто на форме переименовать поле "Код" в "Серийный номер" :)
|
|||
25
amadeus2010
28.10.13
✎
19:33
|
(24) можно и так тем более что в справочник номенклатура по умолчании выводится только код справочника серийные номера и наименование товара. Но все же хочется генерировать серийные номера товара
|
|||
26
hhhh
28.10.13
✎
19:41
|
(25) ну вы нам объясните, в какой строчке вы записываете Поле Серийный номер? Пока видно, что вы его нигде не записываете. Поэтому поле пустое. Программа работает правильно.
|
|||
27
amadeus2010
28.10.13
✎
19:46
|
я кнопку поставил в справочнике Серии Номенклатуры, там есть поле Серийный номер туда я и пытаюсь сгенерировать серийный номер товара
|
|||
28
amadeus2010
28.10.13
✎
19:51
|
ситуация такая если заполнен серийный номер справочника серии номенклатуры то автоматически заполняется наименование серии и далее наименование отображается в справочнике номенклатура как серия товара. так что генерировать серийный номер все равно надо
|
|||
29
Rie
28.10.13
✎
19:52
|
(27) Тогда покажи код. И не забыл ли ты назначить кнопке обработчик?
|
|||
30
amadeus2010
28.10.13
✎
19:55
|
код указан в (0)
|
|||
31
amadeus2010
28.10.13
✎
19:55
|
обработчик принажатии()
|
|||
32
Rie
28.10.13
✎
19:57
|
(30) Код из (0) работать не может по определению.
У строк нет метода ГенераторСерийныхНомеров. Тут всё дело в ДНК. |
|||
33
Эмбеддер
28.10.13
✎
19:57
|
используй УникальныйИдентификатор, его тоже можно перевести из строки в число
|
|||
34
Rie
28.10.13
✎
19:57
|
+(32) Кстати, об этом тебе в посте (1) было сказано.
|
|||
35
Rie
28.10.13
✎
20:11
|
(28) И ещё. Не знаю, что там за конфигурация используется. Но обычно у серийных номеров нет наименования. А есть код - уникальный в пределах владельца (номенклатуры). А у объектов справочников есть метод УстановитьНовыйКод. Который сам всё, что надо сделает. Только не генератором псевдослучайных чисел, а найдёт максимальный - и поставит следующий за ним.
|
|||
36
amadeus2010
28.10.13
✎
20:25
|
(35) и вы предлагаете связать код справочника с серийным номером?
|
|||
37
amadeus2010
28.10.13
✎
20:26
|
Нашел такую функцию
//////////////////////////////////////////////// Функция Ранд(Парам=0) Если Парам<>0 Тогда Случай=Парам; КонецЕсли; Если Число(Случай)=0 Тогда Случай=Число(СтрЗаменить(""+ТекущееВремя(),":","")); Случай=(16807*Случай)%2147483647; КонецЕсли; Случай=(16807*Случай)%2147483647; Случай=макс(Случай,-Случай); Возврат(Случай/2147483647); КонецФункции ///////////////////////////////////////////////// можно ее будет применить в данном случае? |
|||
38
Rie
28.10.13
✎
20:28
|
(36) Какая конфигурация? В типовых они так и связаны.
(37) Если применять так, как в (0) - то нельзя. И эта функция ничем не лучше стандартного ГСЧ. |
|||
39
amadeus2010
28.10.13
✎
20:31
|
у меня УТ 10.3, также такое надо сделать в УНФ
|
|||
40
Rie
28.10.13
✎
20:33
|
(39) В УТ 10.3 серийный номер - это уникальный в пределах подчинения код элемента справочника.
|
|||
41
amadeus2010
28.10.13
✎
20:41
|
код справочника номенклатура и серийный номер справочника серийные номера все же разные вещи
|
|||
42
Rie
28.10.13
✎
20:52
|
(41) Используй УстановитьНовыйКод - и наступит счастье.
|
|||
43
Rie
28.10.13
✎
20:54
|
(42) Извини, невнимательно читал ветку. У тебя же Серии, а не СерийныеНомера.
|
|||
44
Rie
28.10.13
✎
21:01
|
+(43) Тем не менее - всё равно можешь использовать УстановитьНовыйКод через вспомогательный справочник при записи серии.
|
|||
45
amadeus2010
29.10.13
✎
12:11
|
после долгих усилий пришлось по нажатии на кнопку Сгенерировать Код() сделать такое УстановитьНовыйКод("AZ-"),переименовать реквизит Код в Серийный Номер на вкладке Серийные номера справочника Номенклатура. Получилось может не очень красиво и эстетично зато работает и не будет проблем с уникальностью кодов
|
|||
46
wuff
29.10.13
✎
12:22
|
(45) а чо ты, сразу гуид фигач!
|
|||
47
aka AMIGO
29.10.13
✎
12:24
|
когда-то я занимался расчетами с применением последовательностей СЧ.. знал наизусть машинный код генератора псевдослучайных чисел.. вроде б стартовое число определялось из комбинации системных дата+время.
или несколько цифр от дробной части деления чего-нибудь на что-нибудь.. правда, в любом случае глубоко такую последовательность применять нельзя, вырождается, и числа начинают повторяться. ЗЫ... ностальджи.. на вычислительной машине МИР-1 я делал перепрошивку логической матрицы под электронный генератор СЧ, источником СЧ был генератор белого шума на ПП-диоде.. |
|||
48
Wobland
29.10.13
✎
12:28
|
(47) на то они и случайные, чтоб повторяться. у меня вот периодически зачем-то возникает потребность получить серию неповторяющихся в диапазоне..
|
|||
49
aka AMIGO
29.10.13
✎
12:32
|
(48) видел такую последовательность: 5,3,5,3,5,3,5,3 и т.д.. это поле 5000 вполне нормальных СЧ
|
|||
50
aka AMIGO
29.10.13
✎
12:32
|
поле = после
|
|||
51
Wobland
29.10.13
✎
12:34
|
(49) тоже случайные. просто с другим распределением ;)
|
|||
52
aka AMIGO
29.10.13
✎
12:36
|
(51) ну.. не знаю :) был специальный алгоритм анализа случайности, так вот, машина начинала угадывать следующие числа из последовательности.. это уже совсем не случайные :)
|
|||
53
Wobland
29.10.13
✎
12:37
|
(52) а 6 из 36 спецалгоритм мог?
|
|||
54
aka AMIGO
29.10.13
✎
12:38
|
(53) не помню уже, друже.. вроде тоже диапазончик не очень широкий..
|
|||
55
Wobland
29.10.13
✎
12:40
|
(54) гм.. это был намёк на спортлото
|
|||
56
aka AMIGO
29.10.13
✎
12:41
|
(55) ааа.. а я-то разумничался :)
|
|||
57
aka AMIGO
29.10.13
✎
12:52
|
да, источником СЧ могла быть и заранее сгенерированная (созданная чем-нибудь) последовательность чисел, в виде массива.
был у нас и такой вариант, предложенный ведущим инженером-математиком предприятия :) |
|||
58
amadeus2010
29.10.13
✎
13:06
|
в справочнике номенклатура переименованое поле код в серийный номер отображается но при вызове обработки печать этикеток серийные номера не отображаются так как идет ссылка на регистр штрихкоды в котором реквизит серия ссылается на справочник серии номенклатуры
|
|||
59
Wobland
29.10.13
✎
13:06
|
ага, созданная кем-то последовательность...
а неплохо было. задача: у меня двое детей, один из них мальчик. какова вероятность того, что второй тоже мальчик? моделировалась с помощью монетки, бумажки, 500 подбрасываний и 5 литров пива |
|||
60
Wobland
29.10.13
✎
13:07
|
(58) вот видишь, сколько у тебя ещё работы
|
|||
61
Wobland
29.10.13
✎
13:09
|
+(60) а всё почему? потому что, как любой студент, придумал решение, не посоветовавшись со старшими
|
|||
62
amadeus2010
29.10.13
✎
13:10
|
да мало переименовать поля справочника надо еще в обработке поковыряться чтобы заполнялись поля тоже. Кстати никто не работал с УНФ, так как все эти навороты надо применить и в ней.
|
|||
63
amadeus2010
29.10.13
✎
13:10
|
(61) а что старшие посоветуют?
|
|||
64
Wobland
29.10.13
✎
13:11
|
(63) описать исходную задачу
|
|||
65
aka AMIGO
29.10.13
✎
13:19
|
(63) напиши свой алгоритм ГСЧ
|
|||
66
amadeus2010
29.10.13
✎
13:19
|
так задача такая надо генерировать серийные номера справочника серии номенклатуры,затем распечатать их на этикетках вместе с штрихкодом товара. Для решения задачи я подумал что лучше всего подойдет генерация чисел
|
|||
67
Wobland
29.10.13
✎
13:23
|
(66) задача не такая. необходимо организовать создание, хранение и вывод в ПФ серийных номеров номенклатуры. так лучше?
|
|||
68
amadeus2010
29.10.13
✎
13:29
|
(67) в принципе вы правы в итоге работа сводится к печати штрихкодов и серийных номеров на этикетки
|
|||
69
amadeus2010
29.10.13
✎
14:03
|
есть какие предложения от старших братьев?
|
|||
70
Wobland
29.10.13
✎
14:05
|
справочник про серии подходит? на печать он выводится? если так, то остаётся нагенерить элементов справочника и всего делов. если серий несколько, что бывает?
|
|||
71
amadeus2010
29.10.13
✎
14:24
|
я сейчас зашел по другому. При печати этикеток важны поля штрихкод и наименование из регистра штрихкоды. Я сделал небольшие изменения в самом справочнике серийные номера и теперь в поле наименование садится значение поля код под которым подразумевается серийный номер товара
|
|||
72
amadeus2010
29.10.13
✎
17:30
|
Добрый вечер заказчик изменил решение теперь он хочет чтобы штрихкод товара генерировался случайными числами. 1С дает последовательную систему выдачи номеров штрихкода, как можно сделать формирование штрихкода случайным образом чтобы не было как сейчас 2000077-2000078 и т.д а как-нибудь так 77adg5, и т.д.
Пишу здесь чтобы не открывать новую ветку |
|||
73
Wobland
29.10.13
✎
17:32
|
(72) рассказать тебе, как я картинки переименовывал? можно было и усложнить: генерить коды символов, а не голые числа
|
|||
74
amadeus2010
29.10.13
✎
17:49
|
(73) есть процедура формирования нового штрихкода, туда как-то можно добавить генерацию так как я описал?
|
|||
75
Wobland
29.10.13
✎
17:52
|
(74) это техническое любопытство или ты разрешения спрашиваешь? в обоих случаях ответ положителен
|
|||
76
Wobland
29.10.13
✎
17:53
|
//мне делать пока лениво, я наблюдаю и жду каких-то подвижек со стороны автора
|
|||
77
amadeus2010
29.10.13
✎
17:56
|
(75) это я совета спрашиваю
|
|||
78
Wobland
29.10.13
✎
18:02
|
х=ГСЧ.СлучайноеЧисло(0, 36);
х=х+?(х<10, 48, 65); стр=стр+Символ(х) это дело в цикл на длину строки, цикл повторять до уникальности. на здоровье |
|||
79
amadeus2010
29.10.13
✎
18:02
|
спасибо за совет
|
|||
80
Wobland
29.10.13
✎
18:06
|
Лев(СтрЗаменить(Ссылка.УникальныйИдентификатор(), "-", ""), НужнаяДлина)
|
|||
81
Wobland
29.10.13
✎
18:10
|
а задавался я как-то вопросом, как поиметь случайный элемент справочника. ничего лучше, чем брать случайную строку из запроса по всем элементам, не придумал. найдутся идеи у кого?
|
|||
82
miron25
29.10.13
✎
18:36
|
(79)УникальныйИдентификатор.
GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,4028?1038), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала. Чем тебе не штрихкод? |
|||
83
miron25
29.10.13
✎
18:41
|
В Википедий написано.
Код товара. Ранее было сказано, что 3-5 оставшихся цифр выделяется для кодировки самого товара. И длина этого поля зависит от политики регистратора, то есть, в зависимости от того, какую длину кода предприятия выбрал регистратор в качестве базовой. То есть, от одной до ста тысяч наименований. Вопреки сложившемуся мнению, цифровой код самого товара никакой смысловой нагрузки не несёт. <<<Ассоциация рекомендует последовательное присвоение кодов по мере выпуска нового вида продукции без вложения в этот код какой-либо дополнительной смысловой нагрузки>>>. То есть, это ни вес, ни цвет, ни цена, ни что бы то ни было ещё — это всего лишь порядковый номер товара, который компьютер терминала магазина просто берёт из своей компьютерной базы, где хранится как наименование, так и цена товара. |
|||
84
miron25
29.10.13
✎
18:42
|
Лучше последовательное штрихкодирование.Генератор всё таки не уникален,и при большом количестве продукций может совпасть.
|
|||
85
amadeus2010
30.10.13
✎
10:50
|
ясное дело что последовательное штрихкодирование лучше, но если заказчик хочет чтобы при выдаче штрихкода сам код формировался случайным образом, чтобы никто не смог отследить количество выпущенного товара при последовательном штрихкодировании
|
|||
86
Wobland
30.10.13
✎
10:51
|
(85) навеяло
Троим инженерам необходимо посчитать их общий средний оклад, но ни один из них категорически не хочет, чтобы двое других узнали, какой оклад у него. Вопрос: Как инженеры могут посчитать их средний оклад? |
|||
87
hhhh
30.10.13
✎
10:54
|
(85) тогда, текущаяДата() берите. Случайное число.
|
|||
88
Рэйв
30.10.13
✎
10:56
|
(0)А сделать из кода справочника серийный номер + уникальность кодов в справочнике не проще ли будет?
|
|||
89
Рэйв
30.10.13
✎
10:56
|
+(88)при генераторе есть маленькая но вероятность дублей
|
|||
90
Wobland
30.10.13
✎
10:58
|
(88) это ещё в начале ветки затерялось
|
|||
91
amadeus2010
30.10.13
✎
11:46
|
(88) у меня и так код справочника=серийный номер товара, в настройке справочника стандартная уникальность кода, только он последовательный. Я общался с нашими программистами они посоветовали сделать шифратор чтобы в момент создания штрихкода последняя цифра формировалась случайным образом и последующий штрихкод отличался от предыдущего например
2001145-2001134-2001156 У меня сейчас так выходит при печати этикеток Матрас AZ-0009 200000077 Матрас AZ-00010 200000078 А можно извините за повтор как-то так Матрас AZ-0009 200000077 Матрас AZ-00020 200000086 |
|||
92
Wobland
30.10.13
✎
11:47
|
(91) можно и как-то так, да
|
|||
93
amadeus2010
30.10.13
✎
12:07
|
дело в том сам штрихкод не дает последовательную комбинацию цифр к примеру несколько наименований товаров и такие штрихкоды
2000000000022,2000000000039,2000000000046,2000000000060,2000000000077. В программе только при печати этикеток серийные номера идут последовательно так как они привязаны к коду справочника. Можно ли сам код сделать случайными цифрами и буквами? |
|||
94
Wobland
30.10.13
✎
12:08
|
(93) благословляю
|
|||
95
amadeus2010
30.10.13
✎
12:13
|
так же есть предложение вместо 2000000000022,2000000000039,2000000000046,2000000000060,2000000000077 чтобы печатался случайный набор цифр и букв. Это можно как-то реализовать в УТ?
|
|||
96
Wobland
30.10.13
✎
12:14
|
(95) на 1Се даже сапёра можно реализовать
|
|||
97
Wobland
30.10.13
✎
12:15
|
поможет идея кода, выдающего строку, собранную из случайных букв и цифр?
|
|||
98
amadeus2010
30.10.13
✎
12:16
|
(97) можно по конкретнее?
|
|||
99
amadeus2010
30.10.13
✎
12:17
|
думаю что это было бы хорошо строка из случайных цифр и букв.
|
|||
100
Wobland
30.10.13
✎
12:17
|
(98) вот если я возьму и накидаю пару строк, которые будут возвращать последовательность случайных символов, тебе станет легче жить?
|
|||
101
Wobland
30.10.13
✎
12:17
|
(99) поищи в конце семидесятых постов
|
|||
102
Wobland
30.10.13
✎
12:18
|
сто два!
|
|||
103
amadeus2010
30.10.13
✎
12:18
|
(100) жить станет гораздо легче
|
|||
104
amadeus2010
30.10.13
✎
12:28
|
(101) нашел такую функцию
////////////////////////////////////////////////////// Функция ГенераторСерийныхНомеров() экспорт //вместо Randomize перем мин; перем макс; //вместо Randomize Для н = 1 По 100 Цикл Уник = Новый УникальныйИдентификатор; КонецЦикла; //генерируем GUID Уник = СокрЛП(Новый УникальныйИдентификатор); //оставляем только цифры Уник = СтрЗаменить(Уник,"-",""); Уник = СтрЗаменить(Уник,"a",""); Уник = СтрЗаменить(Уник,"b",""); Уник = СтрЗаменить(Уник,"c",""); Уник = СтрЗаменить(Уник,"d",""); Уник = СтрЗаменить(Уник,"e",""); Уник = СтрЗаменить(Уник,"f",""); //знаменатель должен иметь такое же количество нулей + 1 Знаменатель = 10; Для н = 2 По (СтрДлина(СтрЗаменить(Уник,Символы.НПП,""))) Цикл Знаменатель = Знаменатель * 10; КонецЦикла; Случ = Число(Уник) / Знаменатель; //здесь получается дробное случайное число от 0 до 1 ЧислоИзИнтервала = Цел(0.5 + (Макс - Мин + 1) * Случ) + Мин - 1; Если ЧислоИзИнтервала = Мин - 1 Тогда ЧислоИзИнтервала = Макс; КонецЕсли; Возврат ЧислоИзИнтервала; КонецФункции ////////////////////////////////////////////////// теперь есть элемент серийный номер, есть кнопка генератор. Есть процедура ГенераторПриНажатии() СерийныйНомер = ГенераторСерийныхНомеров(); КонецПрцедуры При таком ходе в поле серийный номер при нажатии кнопки сформируется число? И как можно будет вместо цифр штрихкода при печати указать случайный набор букв и цифр? |
|||
105
Wobland
30.10.13
✎
12:29
|
там, по-моему, первый же комментарий к этому коду: "чем штатный ГСЧ плох?"
|
|||
106
amadeus2010
30.10.13
✎
12:46
|
(105) я не говорю что штатный ГСЧ плох или хорош. У меня вопрос как сделать так чтобы при нажатии кнопки в нужном поле выходил результат выполнения команды. У меня еще вчера поле Серийный номер оставалось пустым при выполнении команды Генерировать
|
|||
107
Wobland
30.10.13
✎
12:50
|
(106) а я не призываю дискутировать на тему хорошести штатного ГСЧ. ответ в (1)
|
|||
108
amadeus2010
30.10.13
✎
13:09
|
(107) возвращаясь к (100) как можно закодировать надпись штрихкода и серийного кода набором случайных цифр и букв?
|
|||
109
amadeus2010
30.10.13
✎
13:09
|
(107) вы имели ввиду цикл в (78)?
|
|||
110
Wobland
30.10.13
✎
13:10
|
(109) да
|
|||
111
1dvd
30.10.13
✎
13:17
|
Функция ВернутьСлучайную36ричнуюСтроку(ДлинаСтроки)
Результат = ""; ГСЧ = НОвый ГенераторСлучайныхЧисел; Для Идн = 1 по ДлинаСтроки Цикл СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, 35); Если СлучайноеЧисло<10 Тогда Результат = Результат + СлучайноеЧисло; Иначе Результат = Результат + Символ(55 + СлучайноеЧисло); КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции |
|||
112
Wobland
30.10.13
✎
13:19
|
(111) не взлетит. надо переименовать в ГенераторСерийныхНомеров()
|
|||
113
1dvd
30.10.13
✎
13:21
|
(112) нет уж, пусть сам мозгами пораскинет
|
|||
114
amadeus2010
30.10.13
✎
13:27
|
да назвать можно как угодно главное чтобы работало
|
|||
115
Wobland
30.10.13
✎
13:31
|
(114) название уже придумал?
|
|||
116
Повелитель
30.10.13
✎
13:42
|
(95) Серийный номер = Новый УникальныйИдентификатор;
Точно уникальный будет |
|||
117
Wobland
30.10.13
✎
13:43
|
(116) было уже. пускай уж хоть как-нибудь сделает, я на всё согласен ;)
|
|||
118
amadeus2010
30.10.13
✎
17:07
|
Воспользовался подсказанной функцией
/////////////////////////////////////////// Функция ГенераторСерийныхНомеров() экспорт Парам = 0; Если Парам<>0 Тогда Случай=Парам; КонецЕсли; Если Число(Случай)=0 Тогда Случай=Число(СтрЗаменить(""+ТекущаяУниверсальнаяДатаВМиллисекундах(),":","")); Случай=(16807*Случай)%2147483647; КонецЕсли; Случай=(16807*Случай)%2147483647; Случай=макс(Случай,-Случай); Возврат(Случай/2147483647); КонецФункции ////////////////////////////////////////////////// сделал привязку СерийныйНомер =ГенераторСерийныхНомеров(); которая по нажатию на кнопку Генератор должна выполниться. но получаю ошибку {Справочник.СерииНоменклатуры.МодульОбъекта(146)}: Преобразование значения к типу Число не может быть выполнено Если Число(Случай)=0 Тогда СерийныйНомер имеет тип Строка |
|||
119
Wobland
30.10.13
✎
17:09
|
что только не придумают, лишь бы не работало...
|
|||
120
hhhh
30.10.13
✎
17:14
|
(118) вот здесь
Если Парам<>0 Тогда Случай=Парам; КонецЕсли; если Парам = 0 ты не определил чему равен Случай. |
|||
121
hhhh
30.10.13
✎
17:15
|
как-то так
Если Парам<>0 Тогда Случай=Парам; КонецЕсли; Если Парам=0 Тогда Случай=Парам; КонецЕсли; Если Парам<>1 Тогда Случай=Парам; КонецЕсли; Если Парам=1 Тогда Случай=Парам; КонецЕсли; |
|||
122
Wobland
30.10.13
✎
17:17
|
а завтра будем сюда буквы добавлять?
|
|||
123
amadeus2010
30.10.13
✎
17:41
|
подправил функцию серийный номер сгенерировался в таком виде
0,18773090848127887979209 0,19817088832993567377791 как можно избавиться от 0 в начале,т.е чтобы было целое число? |
|||
124
Wobland
30.10.13
✎
17:46
|
ГСЧ.СлучайноеЧисло(1, 99999999999999999999)
|
|||
125
amadeus2010
30.10.13
✎
18:01
|
(124) применительно к указанной функции куда вставить ГСЧ.СлучайноеЧисло(1, 99999999999999999999) ибо это уже другая функция
|
|||
126
Wobland
30.10.13
✎
18:02
|
Функция БолееДругаяФункция()
Возврат ГСЧ.СлучайноеЧисло(1, 99999999999999999999); КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |