Генератор случайных чисел #686063


#0 by amadeus2010
добрый вечер как правильно создать генератор случайных чисел в 1С? Я для справочника номенклатура создал код который должен генерировать случайные числа для элемента справочника Серийные номера. Вот код ////////////////////////////////////////////////////////////// При нажатии на кнопку выходит ошибка {Справочник.СерииНоменклатуры.Форма.ФормаЭлемента.Форма}: Значение не является значением объектного типа (ГенераторСерийныхНомеров)          СерийныйНомер.ГенераторСерийныхНомеров;
#0 by amadeus2010
добрый вечер как правильно создать генератор случайных чисел в 1С? Я для справочника номенклатура создал код который должен генерировать случайные числа для элемента справочника Серийные номера. Вот код ////////////////////////////////////////////////////////////// При нажатии на кнопку выходит ошибка {Справочник.СерииНоменклатуры.Форма.ФормаЭлемента.Форма}: Значение не является значением объектного типа (ГенераторСерийныхНомеров)          СерийныйНомер.ГенераторСерийныхНомеров;
#1 by Wobland
и на функцию рпереписать
#2 by K-5
Может так лучше? СерийныйНомер=ГенераторСерийныхНомеров;
#3 by Wobland
только вот что будешь делать, когда у тебя для разных номенклатур сгенерится одинаковый серийник?
#4 by Lama12
Серийники через ГСЧ делать? Ведь дубли будут.
#5 by vhl
В чем преимущество случайного серийника перед последовательным?
#6 by vhl
Дима+ :)
#7 by Wobland
я тут себе картинки когда-то переименовывал...
#8 by vhl
Так и не понял в чем преимущество случайного номера перед последовательным?
#9 by vhl
Я не понял
#10 by amadeus2010
хорошо как избежать дублей при генерировании серийных номеров?
#11 by Wobland
попытка сделать рандомное слайд-шоу на девайсе, не знающем о ГСЧ генерировать последовательно, начиная с максимального иммеющегося + 1
#12 by echo77
Смотреть
#13 by vhl
Найти последний и прибавить 1
#14 by vhl
А вот еще - сделать код справочника уникальным и просто копировать его в серийник :)
#15 by Wobland
guaranteed to be random
#16 by amadeus2010
код справочника и так уникален, нужно генерить серийный номер товара
#17 by Wobland
вот тебе с твоим ГСЧ не пофих ли, будет он равен коду или нет?
#18 by amadeus2010
сейчас такая ситуация- я жму на кнопку сгенерировать код, но никакой операции не происходит-поле Серийный номер пустое как и прежде
#19 by Wobland
ну если ты до сих пор не внял советам, то всё верно. заполняться не будет
#20 by vhl
И в чем проблема? Серийный уникальный? Уникальный. То что он равен коду - тебе что от этого? Душевный дискомфорт испытываешь?
#21 by amadeus2010
не совсем понял советы еще раз подробнее можно?
#22 by amadeus2010
если я правильно понял то Серийный номер = Код справочника так?
#23 by Wobland
-> предлагаем назначить серийником код
#24 by vhl
Еще можно просто на форме переименовать поле "Код" в "Серийный номер" :)
#25 by amadeus2010
можно и так тем более что в справочник номенклатура по умолчании выводится только код справочника серийные номера и наименование товара. Но все же хочется генерировать серийные номера товара
#26 by hhhh
ну вы нам объясните, в какой строчке вы записываете Поле Серийный номер? Пока видно, что вы его нигде не записываете. Поэтому поле пустое. Программа работает правильно.
#27 by amadeus2010
я кнопку поставил в справочнике Серии Номенклатуры, там есть поле Серийный номер туда я и пытаюсь сгенерировать серийный номер товара
#28 by amadeus2010
ситуация такая если заполнен серийный номер справочника серии номенклатуры то автоматически заполняется наименование серии и далее наименование отображается в справочнике номенклатура как серия товара. так что генерировать серийный номер все равно надо
#29 by Rie
Тогда покажи код. И не забыл ли ты назначить кнопке обработчик?
#30 by amadeus2010
код указан в
#31 by amadeus2010
обработчик принажатии
#32 by Rie
Код из работать не может по определению. У строк нет метода ГенераторСерийныхНомеров. Тут всё дело в ДНК.
#33 by Эмбеддер
используй УникальныйИдентификатор, его тоже можно перевести из строки в число
#34 by Rie
+ Кстати, об этом тебе в посте было сказано.
#35 by Rie
И ещё. Не знаю, что там за конфигурация используется. Но обычно у серийных номеров нет наименования. А есть код - уникальный в пределах владельца (номенклатуры). А у объектов справочников есть метод УстановитьНовыйКод. Который сам всё, что надо сделает. Только не генератором псевдослучайных чисел, а найдёт максимальный - и поставит следующий за ним.
#36 by amadeus2010
и вы предлагаете связать код справочника с серийным номером?
#37 by amadeus2010
Нашел такую функцию ///////////////////////////////////////////////// можно ее будет применить в данном случае?
#38 by Rie
Какая конфигурация? В типовых они так и связаны. Если применять так, как в - то нельзя. И эта функция ничем не лучше стандартного ГСЧ.
#39 by amadeus2010
у меня УТ 10.3, также такое надо сделать в УНФ
#40 by Rie
В УТ 10.3 серийный номер - это уникальный в пределах подчинения код элемента справочника.
#41 by amadeus2010
код справочника номенклатура и серийный номер справочника серийные номера все же разные вещи
#42 by Rie
Используй УстановитьНовыйКод - и наступит счастье.
#43 by Rie
Извини, невнимательно читал ветку. У тебя же Серии, а не СерийныеНомера.
#44 by Rie
+ Тем не менее - всё равно можешь использовать УстановитьНовыйКод через вспомогательный справочник при записи серии.
#45 by amadeus2010
после долгих усилий пришлось по нажатии на кнопку Сгенерировать Код сделать такое УстановитьНовыйКод("AZ-"),переименовать реквизит Код в Серийный Номер на вкладке Серийные номера справочника Номенклатура. Получилось может не очень красиво и эстетично зато работает и не будет проблем с уникальностью кодов
#46 by wuff
а чо ты, сразу гуид фигач!
#47 by aka AMIGO
когда-то я занимался расчетами с применением последовательностей СЧ.. знал наизусть машинный код генератора псевдослучайных чисел.. вроде б стартовое число определялось из комбинации системных дата+время. или несколько цифр от дробной части деления чего-нибудь на что-нибудь.. правда, в любом случае глубоко такую последовательность применять нельзя, вырождается, и числа начинают повторяться. ЗЫ... ностальджи..  на вычислительной машине МИР-1 я делал перепрошивку логической матрицы под электронный генератор СЧ, источником СЧ был генератор белого шума на ПП-диоде..
#48 by Wobland
на то они и случайные, чтоб повторяться. у меня вот периодически зачем-то возникает потребность получить серию неповторяющихся в диапазоне..
#49 by aka AMIGO
видел такую последовательность: 5,3,5,3,5,3,5,3 и т.д.. это поле 5000 вполне нормальных СЧ
#50 by aka AMIGO
поле = после
#51 by Wobland
тоже случайные. просто с другим распределением ;)
#52 by aka AMIGO
ну.. не знаю :) был специальный алгоритм анализа случайности, так вот, машина начинала угадывать следующие числа из последовательности.. это уже совсем не случайные :)
#53 by Wobland
а 6 из 36 спецалгоритм мог?
#54 by aka AMIGO
не помню уже, друже.. вроде тоже диапазончик не очень широкий..
#55 by Wobland
гм.. это был намёк на спортлото
#56 by aka AMIGO
ааа.. а я-то разумничался :)
#57 by aka AMIGO
да, источником СЧ могла быть и заранее сгенерированная  (созданная чем-нибудь) последовательность чисел, в виде массива. был у нас и такой вариант, предложенный ведущим инженером-математиком предприятия :)
#58 by amadeus2010
в справочнике номенклатура переименованое поле код в серийный номер отображается но при вызове обработки печать этикеток серийные номера не отображаются так как идет ссылка на регистр штрихкоды в котором реквизит серия ссылается на справочник серии номенклатуры
#59 by Wobland
ага, созданная кем-то последовательность... а неплохо было. задача: у меня двое детей, один из них мальчик. какова вероятность того, что второй тоже мальчик? моделировалась с помощью монетки, бумажки, 500 подбрасываний и 5 литров пива
#60 by Wobland
вот видишь, сколько у тебя ещё работы
#61 by Wobland
+ а всё почему? потому что, как любой студент, придумал решение, не посоветовавшись со старшими
#62 by amadeus2010
да мало переименовать поля справочника надо еще в обработке поковыряться чтобы заполнялись поля тоже. Кстати никто не работал с УНФ, так как все эти  навороты надо применить и в ней.
#63 by amadeus2010
а что старшие посоветуют?
#64 by Wobland
описать исходную задачу
#65 by aka AMIGO
напиши свой алгоритм ГСЧ
#66 by amadeus2010
так задача такая надо генерировать серийные номера справочника серии номенклатуры,затем распечатать их на этикетках вместе с штрихкодом товара. Для решения задачи я подумал что лучше всего подойдет генерация чисел
#67 by Wobland
задача не такая. необходимо организовать создание, хранение и вывод в ПФ серийных номеров номенклатуры. так лучше?
#68 by amadeus2010
в принципе вы правы в итоге работа сводится к печати штрихкодов и серийных номеров на этикетки
#69 by amadeus2010
есть какие предложения от старших братьев?
#70 by Wobland
справочник про серии подходит? на печать он выводится? если так, то остаётся нагенерить элементов справочника и всего делов. если серий несколько, что бывает?
#71 by amadeus2010
я сейчас зашел по другому. При печати этикеток важны поля штрихкод и наименование из регистра штрихкоды. Я сделал небольшие изменения в самом справочнике серийные номера и теперь в поле наименование садится значение поля код под которым подразумевается серийный номер товара
#72 by amadeus2010
Добрый вечер заказчик изменил решение теперь он хочет чтобы штрихкод товара генерировался случайными числами. 1С дает последовательную систему выдачи номеров штрихкода, как можно сделать формирование штрихкода случайным образом чтобы не было как сейчас 2000077-2000078 и т.д а как-нибудь так 77adg5, и т.д. Пишу здесь чтобы не открывать новую ветку
#73 by Wobland
рассказать тебе, как я картинки переименовывал? можно было и усложнить: генерить коды символов, а не голые числа
#74 by amadeus2010
есть процедура формирования нового штрихкода, туда как-то можно добавить генерацию так как я описал?
#75 by Wobland
это техническое любопытство или ты разрешения спрашиваешь? в обоих случаях ответ положителен
#76 by Wobland
//мне делать пока лениво, я наблюдаю и жду каких-то подвижек со стороны автора
#77 by amadeus2010
это я совета спрашиваю
#78 by Wobland
это дело в цикл на длину строки, цикл повторять до уникальности. на здоровье
#79 by amadeus2010
спасибо за совет
#80 by Wobland
Лев(СтрЗаменить(Ссылка.УникальныйИдентификатор, "-", ""), НужнаяДлина)
#81 by Wobland
а задавался я как-то вопросом, как поиметь случайный элемент справочника. ничего лучше, чем брать случайную строку из запроса по всем элементам, не придумал. найдутся идеи у кого?
#82 by miron25
УникальныйИдентификатор. GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,4028?1038), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала. Чем тебе не штрихкод?
#83 by miron25
В Википедий написано. Код товара. Ранее было сказано, что 3-5 оставшихся цифр выделяется для кодировки самого товара. И длина этого поля зависит от политики регистратора, то есть, в зависимости от того, какую длину кода предприятия выбрал регистратор в качестве базовой. То есть, от одной до ста тысяч наименований. Вопреки сложившемуся мнению, цифровой код самого товара никакой смысловой нагрузки не несёт. <<<Ассоциация рекомендует последовательное присвоение кодов по мере выпуска нового вида продукции без вложения в этот код какой-либо дополнительной смысловой нагрузки>>>. То есть, это ни вес, ни цвет, ни цена, ни что бы то ни было ещё — это всего лишь порядковый номер товара, который компьютер терминала магазина просто берёт из своей компьютерной базы, где хранится как наименование, так и цена товара.
#84 by miron25
Лучше последовательное штрихкодирование.Генератор всё таки не уникален,и при большом количестве продукций может совпасть.
#85 by amadeus2010
ясное дело что последовательное штрихкодирование лучше, но если заказчик хочет чтобы при выдаче штрихкода сам код формировался случайным образом, чтобы никто не смог отследить количество выпущенного товара при последовательном штрихкодировании
#86 by Wobland
навеяло Троим инженерам необходимо посчитать их общий средний оклад, но ни один из них категорически не хочет, чтобы двое других узнали, какой оклад у него. Вопрос:     Как инженеры могут посчитать их средний оклад?
#87 by hhhh
тогда, текущаяДата берите. Случайное число.
#88 by Рэйв
А сделать из кода справочника серийный номер + уникальность кодов в справочнике не проще ли будет?
#89 by Рэйв
+при генераторе есть маленькая но вероятность дублей
#90 by Wobland
это ещё в начале ветки затерялось
#91 by amadeus2010
у меня и так код справочника=серийный номер товара, в настройке справочника стандартная уникальность кода, только он последовательный. Я общался с нашими программистами они посоветовали сделать шифратор чтобы в момент создания штрихкода последняя цифра формировалась случайным образом и последующий штрихкод отличался от предыдущего например 2001145-2001134-2001156 У меня сейчас так выходит при печати этикеток Матрас AZ-0009 200000077 Матрас AZ-00010 200000078 А можно извините за повтор как-то так Матрас AZ-0009 200000077 Матрас AZ-00020 200000086
#92 by Wobland
можно и как-то так, да
#93 by amadeus2010
дело в том сам штрихкод не дает последовательную комбинацию цифр к примеру несколько наименований товаров и такие штрихкоды 2000000000022,2000000000039,2000000000046,2000000000060,2000000000077. В программе только при печати этикеток серийные номера идут последовательно так как они привязаны к коду справочника. Можно ли сам код сделать случайными цифрами и буквами?
#94 by Wobland
благословляю
#95 by amadeus2010
так же есть предложение вместо 2000000000022,2000000000039,2000000000046,2000000000060,2000000000077 чтобы печатался случайный набор цифр и букв. Это можно как-то реализовать в УТ?
#96 by Wobland
на 1Се даже сапёра можно реализовать
#97 by Wobland
поможет идея кода, выдающего строку, собранную из случайных букв и цифр?
#98 by amadeus2010
можно по конкретнее?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

В этой группе 1С