Email or username:

Password:

Forgot your password?
stressmanagement

Вчера заменил подбор номера заявки с выбора из готового набора номеров с отметкой об использовании на генератор случайных чисел.

Правда, тут есть ограничение на 6 символов, при этом первая цифра не может быть равна нулю, а буквы не могут быть использованы. Надеюсь, уникальных чисел между 100000 и 999999 хватит на ~6000 заявок. Решил не увеличивать ограничение по количеству символов, чтобы людям было проще. На всякий случай поставил подсветку повторяющегося номера. Всё это сэкономит кучу операций в интегромате.

А еще укоротил сценарий на том же интегромате вдвое, заменив отрезанную половину сценария автоматизации на формулу с INDEX MATCH. Собрал скрипт, заменяющий формулу, выдающую галочку, на обычную галочку, чтобы снизить нагрузку при работе с таблицей.

Наверняка можно проще и без этого колхоза, но чем богаты, как говорится.

8 comments
Enigma Voice

@omgitsmishenka я, конечно, не в контексте, но почему нельзя подбирать номер заявки просто по порядку или создавать его из даты-времени получения заявки?

stressmanagement

@EnigmaVoice если будет по порядку, человек будет знать, которая это заявка по счёту, а это нежелательно. Да и негде хранить переменную с новым номером. Да, изначально пытался сделать с датой-временем, но для уникальности требовалось бы больше символов.

Enigma Voice

@omgitsmishenka достаточно ли хранить номер заявки в течение года и какова вероятность, что две заявки придут в течение минуты?
Если года достаточно и совпадение маловероятно, можно брать в качестве номера минуту с начала года (их примерно 525600), а начальные нули заменить девятками.

stressmanagement

@EnigmaVoice номера должны храниться только в рамках 2024 года. Иногда за одну минуту приходит несколько заявок, разница только в секундах.

Моя формула сейчас выглядит так:
[1-9][0-9][0-9][0-9][0-9][0-9]

Пробовал вставлять месяц и день, но тогда вероятность повтора даже выше.

Наверно без увеличения длины номера ничего лучше не придумать

make_sense

@omgitsmishenka
> На всякий случай поставил подсветку повторяющегося номера.

А почему бы пользователю просто не выдавать повторяющийся номер?

stressmanagement

@make_sense в общем, если коротко, то...

До этого у меня было так: есть база уникальных шестизначных номеров, разбросанных в случайном порядке. При поступлении заявки система берёт первый номер без отметки об использовании, присваивает номер заявке, затем ставит отметку об использовании напротив этого номера в базе.

При таком режиме вероятность повтора номера отсутствует, но в интегромате используется на 2 операции за одно выполнение больше. Мелочь, но при большом количестве выполнений это много.

Появилась необходимость в экономии операций, я решил сэкономить именно на этом. С генерацией случайных чисел операции экономятся, но хранить информацию об использованных номерах негде(

@make_sense в общем, если коротко, то...

До этого у меня было так: есть база уникальных шестизначных номеров, разбросанных в случайном порядке. При поступлении заявки система берёт первый номер без отметки об использовании, присваивает номер заявке, затем ставит отметку об использовании напротив этого номера в базе.

Ever Aftar

@omgitsmishenka советую найти в Википедии статью Парадокс дней рождения, и прочитать хотя бы параграф Применение.

stressmanagement

@ever интересная статья, во время прочтения я увлёкся и даже забыл, для чего мне это нужно)

Go Up