Зачем в 1С датчик случайных чисел - в каких задачах он может применяться?

1. ildarovich 7865 24.02.15 11:52 Сейчас в теме
Стало интересно: приходилось ли кому-либо использовать генератор случайных чисел ГСЧ в реальных практических задачах и что это были за задачи?
Вознаграждение за ответ
Показать полностью
Найденные решения
24. timeforlive 15 24.02.15 16:45 Сейчас в теме
1. выбор "дежурного" с обработкой исключения ранее выбранного в последующих "рулетках";
2. случайный "анекдот дня";
3. генерация текста (в разных формах, для создания впечатления "человеческого участия) для эл. писем клиентам об упоминании услуг своей компании (звучит строго, но подразумеваю: обновление, настройка, доработка, а также (внимание) обычное "мы о вас помним и готовы помочь).
4. в срм: случайный выбор клиентов
5. случайный товар (для продажников) и отправка эл. письма
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. AnryMc 849 24.02.15 12:29 Сейчас в теме
(1) ildarovich, Делал решение по методу Монте-Карло для расчета риска аренды основных средств...
17. InWith 26 24.02.15 13:48 Сейчас в теме
(1) Налоговая попросила копии оригиналов счетов-фактур за год. Объем документов впечатляет. Копировать не реально. Распечатать не проблема, проблема подписать все это хозяйство. Сделал порядка 30 вариантов png изображений Печать+Подпись и выводил их на печать с помощью ГСЧ.
28. Denis_CFO 48 24.02.15 16:56 Сейчас в теме
(1) ildarovich, с одним, "не полностью рассчитавшимся" по выданным значениям ГСЧ выдавал номер документа, который удалялся. Плохо, конечно....
30. Africa 24.02.15 17:11 Сейчас в теме
(1) ildarovich, Вывод времени до окончания работы отчета/обработки :)
53. Катя84 3 25.02.15 16:34 Сейчас в теме
(1) ildarovich, да. При создании печ.формы контрольной накладной потребовалось выбирать ГСЧ строку из документа.
Смысл в том, что склад отгружает продукцию. Нужно наугад выбрать продукцию и проконтролировать работу склада.
Запросом получала всю номенклатуру из ТЧ, далее с помощью ГСЧ любую строку. Пример из кода:

ВыборкаИтоги = Запрос.Выполнить().Выгрузить();
ГСЧ = новый ГенераторСлучайныхЧисел();
СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, ВыборкаИтоги.Количество()-1);

НаимТМЦ = ВыборкаИтоги[СлучайноеЧисло].Продукция.Наименование;
112. StBender 07.05.15 10:43 Сейчас в теме
(1) ildarovich, при прикручивании работы с файлами в томах на дисках ГСЧ использовался для формирования относительно уникального имени файла в томе, на основе исходного имени файла.
2. caponid 24.02.15 12:15 Сейчас в теме
На самом деле редко когда требуется именно числовые значения - приходилось использовать только для заполнения набора тестовых данных.
гораздо чаще Новый УникальныйИдентификатор() - все таки база данных это в основном работа по ссылочным/текстовым типам.
66. AlexO 135 26.02.15 23:32 Сейчас в теме
(2) caponid,
приходилось использовать только для заполнения набора тестовых данных.
При заполнении базы миллионами документов - генерировал случайное вариативное содержание документов (тестирование плавающей нагрузкой).
67. caponid 27.02.15 12:55 Сейчас в теме
(66) AlexO, да вот именно это и делал - потом отслеживал блокировки, узкие места и правил код - потому как на рабочей базе статистику собирать было нельзя - она и так загибалась.
удалось в результате очень серьезно разгрузить сервер бд и найти плавающие ошибки.
3. PetroP 24.02.15 12:20 Сейчас в теме
Чаще всего - генерация штрих-кодов. Также генерация различных коротких УИ для файлов нестандартного обмена.
4. spezc 782 24.02.15 12:23 Сейчас в теме
У нас с помощью генератора ежедневно определяется выборка людей, кого проверят алкотестером. генератору быть!
5. spezc 782 24.02.15 12:24 Сейчас в теме
давайте вознаграждение
baracuda; 1_C; dark_avenger; dusha0020; Taktic; IvanBoychuk123; wau8824ru; +7 Ответить
9. ildarovich 7865 24.02.15 12:45 Сейчас в теме
(5) spezc, мне вознаграждения не жалко, но хотелось бы узнать про как можно больше разнообразных задач.
18. spezc 782 24.02.15 15:38 Сейчас в теме
(9) ildarovich, так между всеми участниками все равно приз не разделить. так что предлагаю отдать вознаграждение тому, кто первый привез реальный пример использования ГСЧ (общий пример про ШК не в счет).
19. ildarovich 7865 24.02.15 16:14 Сейчас в теме
(18) spezc, давайте, я отмечу ваше участие - скачаю 3 ваших разработки. А призовой фонд пока оставлю для самых интересных применений. - Согласны?
21. spezc 782 24.02.15 16:35 Сейчас в теме
(19) ildarovich, спасибо за предложение, но не обязательно. это наверно было ближе к юмору)
так что пусть призовой фонд остается и пусть народ делиться своим опытом)
7. tarassov 112 24.02.15 12:29 Сейчас в теме
Применяется регулярно для установки случайных задержек в парсере яндекс-маркета и подобных ему сайтов
8. Boneman 298 24.02.15 12:39 Сейчас в теме
я дополнительный код генерировал им для подтверждения уникальности клиента, при приеме оборудования в ремонт.
Этот код клиент потом на сайте вводил для запроса инфы по своему аппарату.
Примитивная такая, но защита от дурака на шару.
10. Chameleon1980 24.02.15 12:53 Сейчас в теме
14. ildarovich 7865 24.02.15 13:22 Сейчас в теме
(10)(11) Chameleon1980, (12) HitGroove, (13) TimonPODmuzon, это все безделушки, а интересуют реальные задачи
11. Chameleon1980 24.02.15 12:53 Сейчас в теме
12. HitGroove 49 24.02.15 13:08 Сейчас в теме
Форма № 57-Т статистической отчетности!
hasan-rusel; stsasha87; AnryMc; +3 Ответить
34. AnryMc 849 24.02.15 17:15 Сейчас в теме
(12) HitGroove,
По моему ЭТО ЛУЧШИЙ ОТВЕТ! ;-))
36. timeforlive 15 24.02.15 17:26 Сейчас в теме
(34) AnryMc, я решил взять количеством :)
41. AnryMc 849 24.02.15 22:28 Сейчас в теме
(36) timeforlive,
я решил взять количеством :)

Вы поосторожнее здесь с количеством (даже по теме) а то "старички" могут подумать что новичёк $m так зарабатывает и поставят кучу "-" и вы в дауне на месяц и воспользоваться заработанным не получиться ;-)
44. timeforlive 15 25.02.15 06:45 Сейчас в теме
(41) AnryMc, СМ я зарабатываю исключительно предоставлением полезной инфы в постах (примеры кода и т.д.), тут тема похоже на LIFE, почему бы не поучаствовать.

Свои публикации выложу в ближайшем будущем, пока что много работы, чтобы завершить идейные начала.
13. TimonPODmuzon 24.02.15 13:11 Сейчас в теме
Делал девчонкам на работе обработку-шутку "Убегающая кнопка", где кнопка (при наведении на неё) меняет координаты, заданные ГСЧ.
15. ololoanonim 3 24.02.15 13:23 Сейчас в теме
я делал обработку, которая "шифровала" текст. Ключом было как раз число случайное из ГСЧ.
16. Ponommax 24.02.15 13:34 Сейчас в теме
Была задача по имеющимся начальным остаткам и документам поступления и текущим остаткам на складе создать отчеты по розничным продажам на каждый день за год для предстоящей проверки.
20. Mi4man 173 24.02.15 16:28 Сейчас в теме
При программном создании пользователя требовалось сгенерировать пароль. Вот Вам и ГСЧ в помощь
22. Ёпрст 1063 24.02.15 16:39 Сейчас в теме
(0) Распределение накладных по дням, прогон(размазыввание) оборота за год, распределение водил в накладные в зависимости от веса..
Да много чего, что без рандома не сделал бы.
23. Ёпрст 1063 24.02.15 16:41 Сейчас в теме
+22 +всякие "рисованные" отчеты дистрибуторам размазать по точкам, для увеличения абс, к примеру или, чтоб sku "правильно" размазывалось
24. timeforlive 15 24.02.15 16:45 Сейчас в теме
1. выбор "дежурного" с обработкой исключения ранее выбранного в последующих "рулетках";
2. случайный "анекдот дня";
3. генерация текста (в разных формах, для создания впечатления "человеческого участия) для эл. писем клиентам об упоминании услуг своей компании (звучит строго, но подразумеваю: обновление, настройка, доработка, а также (внимание) обычное "мы о вас помним и готовы помочь).
4. в срм: случайный выбор клиентов
5. случайный товар (для продажников) и отправка эл. письма
31. AnryMc 849 24.02.15 17:13 Сейчас в теме
(24) timeforlive, (1) ildarovich,
Пример http://infostart.ru/public/66181/
Режим "Случайный порядок"
33. timeforlive 15 24.02.15 17:15 Сейчас в теме
(31) AnryMc, прикольно. Ни что не ново под луной (с) Шекспир.
любые идеи уже существуют.
25. Boneman 298 24.02.15 16:48 Сейчас в теме
)))
как вариант, рандомное начисление зарплаты
avto1c; Xershi; +2 Ответить
27. timeforlive 15 24.02.15 16:54 Сейчас в теме
6. несколько случайных товаров (из списка допустимых для случайного выбора) для продажи по категориям АВС для продаванов в рознице, по которым начисляются дополнительные проценты при продаже.(25) Boneman, я описал пример, можно сказать :)
26. timeforlive 15 24.02.15 16:53 Сейчас в теме
6. несколько случайных товаров (из списка допустимых для случайного выбора) для продажи по категориям АВС для продаванов в рознице, по которым начисляются дополнительные проценты при продаже.
29. timeforlive 15 24.02.15 17:07 Сейчас в теме
7. из той же АВС: несколько случайных товаров для продажи (в зависимости от отдела, в котором работает продавец - категория и тип товара).
8. вопросы для тестирования тех же продавцов (другой категории сотрудник). Для офис менеджеров я бы поставил неск. случайных вопросов по безопасности ПО (например, нельзя открывать исполнительные файлы в эл. письмах)
32. It-developer 24 24.02.15 17:14 Сейчас в теме
35. timeforlive 15 24.02.15 17:23 Сейчас в теме
9. продолжу идею с вопросами и тестированием - повышение знаний сотрудников - предоставление случайной задачи (например, в одной фирме есть система поощрения за изучение англ. языка, тогда можно сделать словарик, из которого случайные слова / фразы будут предоставляться, а сотрудник должен дать перевод, используя гугл и вводя перевод на русском в поле ввода).
в сбербанке, например, существует система премий по 5 признакам, одна из них - саморазвитие. Обязательно раз в месяц нужно подготовить тему для выступления (в юридическом отделе обычно по изменениям в законодательстве). в сбере хоть и не используют 1с, но некоторые фирмы таеже заинтересованы в развитии своих сотрудников.
генерация случайностей - только в пользу этому
37. Obvious 24.02.15 17:42 Сейчас в теме
Генерил изи пароли, для "сложных" срезал первых 10 вроде с новый УИД.
Но потом одному ОЧЕНЬ неуверенному бухгалтеру апнул на "Меджик Ball 8".
Н вариантов - "Хорошие перспективы";"Знаки говорят — «да»";"Пока не ясно, попробуй снова";
Причем добавил еще парочку своих 1сных фраз) он стал так отчетность сдавать х)
Внимание - НЕ для економистов с фин. резом!!!

назвал: ОбработкаДляПринятияРешения)
38. ATA 2 24.02.15 18:34 Сейчас в теме
Дважды приходилось юзать
Первый раз - случайным образом выбиралась картинка печати. Печать+Подпись. Разные подписи.
Второй раз - розыгрыш на 1 апреля с произвольно-устанавливающимся временем закрытия формы. Чуть не погиб от рук бухов ))
39. ATA 2 24.02.15 18:38 Сейчас в теме
еще был раз... устанавливалась случайная наценка на печать. Широкий формат и сольвентная печать. Себестоимость копеечная, но директор хотел, что бы разным клиентам циферки чучуть отличались. Так и не смог объяснить зачем. Но рандомная поправка +/-5% до сих пор работает ))
40. rostov011 14 24.02.15 22:04 Сейчас в теме
Генератор случайных чисел ГСЧ используется при создании контейнера закрытого ключа для отправки 1С отчетности через оператора
42. ildarovich 7865 24.02.15 23:14 Сейчас в теме
На данный момент предложены следующие варианты:

Заполнение набора тестовых данных
Генерация ШК
Генерация коротких уникальных УИ
Выборочный контроль сотрудников
Расчет риска методом Монте-Карло
Определение интервалов обращения к сервисам
Одноразовые пароли
Выбор аттестационных вопросов
Азартные игры
Эмуляция отчетности
Розыгрыши
Ключи шифрования
Формирование недостающих документов
Моделирование деятельности
Генерация паролей
Распределение накладных по водителям
Моделирование отчетности
Выбор исполнителя
Выбор анекдота
Диверсификация текстов
Выбор клиентов для акций
Выбор товаров для акций
Розыгрыш премий
Выбор товаров для стимулирования продаж
Имитация ошибок и искажений информации
Магический шар
Криптография

Это все?
45. AnryMc 849 25.02.15 09:52 Сейчас в теме
(42) ildarovich,
Ну "Методом Монте-Карло" можно не только риски...
В совке (ещё на "Примусе" - диалоговая система для ОС ЕС) я монте-карлил оптимизацию фазированной акустической антенны...

Например им же можно решать задачи методом графов - например оптимизация маршрута...
Да вообще практически любая оптимизация (укладки, расстояний...)
48. tarassov 112 25.02.15 11:02 Сейчас в теме
(42) ildarovich,
Стандартная БП 3.0 использует ГенераторСлучайныхЧисел для вывода информации (т.е рекламы) при старте
43. пользователь 25.02.15 02:47
Сообщение было скрыто модератором.
...
46. mkalimulin 1171 25.02.15 10:27 Сейчас в теме
ГСЧ - очень полезная вещь. Он позволяет получить максимум информации при минимуме действий, развернуть один бит в любой, сколь угодно большой объем. В связи с этим, сфера его применения неопределенно широка.
С таким же успехом вы могли бы спросить про условный оператор.
47. Dem1urg 387 25.02.15 10:36 Сейчас в теме
Использовал для задачи моделирования системы управления запасами.
Суть в том, что объем (спроса) расхода со склада нельзя спрогнозировать точно. Всегда будут отклонения. Для адекватного имитационного моделирования нужно использовать ГСЧ с заданной функцией распределения.
49. Cerberdm 42 25.02.15 13:32 Сейчас в теме
Автоматическое распределение товара по покупателям в условиях спроса превышающего предложение, с учетом различного приоритета покупателей. Товар штучный, автомобили в данном случае, покупатели - оптовики (дилеры).
50. ATA 2 25.02.15 14:02 Сейчас в теме
Еще как-то сваял конфу для спортсменов - прием результатов на финице, расстановка на старте. Так вот расстановка на старте рандомная опционально
51. Kinestetik 23 25.02.15 15:28 Сейчас в теме
Банально, но - генерация паролей для той же 1С-ки :)

Особенно в случае, если у базы стоит галка "сложный пароль" и не короче N символов

вот примитивный вариант:

Пароль = "";
	ГСЧ = Новый ГенераторСлучайныхЧисел(Число(Формат(ТекущаяДата(), "ДФ=yyyyMMddHHmmss")));
	МинимальнаяДлинаПаролейПользователей = ПолучитьМинимальнуюДлинуПаролейПользователей();
	Если МинимальнаяДлинаПаролейПользователей = 0 Тогда
		МинимальнаяДлинаПаролейПользователей = 7;
	КонецЕсли;	
	Сч = 0;
	Пока СтрДлина(Пароль) < МинимальнаяДлинаПаролейПользователей Цикл		
		Сч = Сч + 1;
		Если Сч <= 5 Тогда
			Пароль = Пароль + Символ(ГСЧ.СлучайноеЧисло(48, 57)); // цифры
		ИначеЕсли Сч = 6 Тогда
			Пароль = Пароль + Символ(ГСЧ.СлучайноеЧисло(1073, 1103)); // строчная кириллица
		ИначеЕсли Сч = 7 Тогда
			Пароль = Пароль + Символ(ГСЧ.СлучайноеЧисло(1040, 1072)); // прописная кириллица
		КонецЕсли;			
	КонецЦикла;
Показать
52. dusha0020 1107 25.02.15 15:47 Сейчас в теме
Я как-то при распределении бонуса по подразделению рандомно выбирал "счастливчика" и закидывал не распределившийся после вычислений остаток. Копейки, конечно, но почему все должно доставаться последнему по списку?:)
54. hibico 267 25.02.15 17:04 Сейчас в теме
Программная эмуляция набора текста из случайных букв с случайной задержкой между нажатиями и случайной паузой между набором слов (ну скажем, для тестирования "CrocoTime").
55. Alalexey 25.02.15 17:33 Сейчас в теме
Использовал для назначения уникального кода пользователям.
56. olga1512 6 25.02.15 22:10 Сейчас в теме
Приходилось в обработке заполнять массив случайными числами с помощью этой функции
57. slavikss 26.02.15 06:22 Сейчас в теме
Приходилось как-то генерить фиктивные документы за период на общую сумму, разбивка случайным образом.
58. ben19791010 26.02.15 06:26 Сейчас в теме
Нет ни чего более закономерного, чем случайное событие в заданном диапазоне. Использовалась для исключения последовательностей в заданном интервале определенных чисел. Как говорил препод по теории вероятности и комбинаторики область применения сиих предметов достаточно обширна и с этими словами он начал выкидывать в почтовую щель зачетки - мол, чья вылетела, тому 5 за экзамен...Про статистику понравилось - прям в точку ;)
59. ildarovich 7865 26.02.15 15:31 Сейчас в теме
В общем, тему закрываю.
Наиболее полезными мне показались использования, связанные со случайными выборками из справочников и документов: для выборочного контроля, вознаграждения, назначения.
Интересен метод Монте-Карло, но, вероятно, схема использования сильно зависит от самой задачи, поэтому без ее подробного описания оценить полезность сложно. Интересна бы была подробная статья на эту тему, если был практический эффект.
Генерация фактуры прошлой деятельности как-то не вдохновляет, разве что для тестирования.
В генерации паролей нет никакой 1С-специфики.
Поэтому вознаграждение, на мой взгляд, заслуживает timeforlive, предложивших больше всех полезных примеров.
60. AnryMc 849 26.02.15 15:49 Сейчас в теме
(59) ildarovich,
Интересен метод Монте-Карло, но, вероятно, схема использования сильно зависит от самой задачи, поэтому без ее подробного описания оценить полезность сложно. Интересна бы была подробная статья на эту тему, если был практический эффект.

Литературы много
Использование метода Монте-Карло для расчета риска http://baguzin.ru/wp/?p=3467
Как я считал время прибытия методом Монте-Карло http://habrahabr.ru/post/192448/

ЗЫ Его подобие есть в Екселе как инструмент "Поиск решения"...
62. ildarovich 7865 26.02.15 16:40 Сейчас в теме
(60) AnryMc, тут проблема не в литературе. Ее действительно много. Проблема в том, что в ней рассматриваются ученические, учебные задачи. Да и из головы задачу не проблема придумать. А хотелось бы увидеть ту реальную задачу, за которую заплатил (готов заплатить) заказчик.
63. AnryMc 849 26.02.15 17:05 Сейчас в теме
(62) ildarovich,

;-)
Тогда - "приниматель решений", типа Да-Нет_ОтложитьРешениеДоЗавтра...
61. AnryMc 849 26.02.15 16:35 Сейчас в теме
Генератор псевдослучайных чисел
https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел
Современная информатика широко использует псевдослучайные числа в самых разных приложениях — от метода Монте-Карло и имитационного моделирования до криптографии. При этом от качества используемых ГПСЧ напрямую зависит качество получаемых результатов. Это обстоятельство подчёркивает известный афоризм математика ORNL Роберта Кавью: «генерация случайных чисел слишком важна, чтобы оставлять её на волю случая».
64. AlexO 135 26.02.15 23:28 Сейчас в теме
По-моему, вознаграждение выдано ни за что.
В 60 сообщениях не названо ни одного серьезного применения, либо - игрушки, либо - игралки разработчика, изнывающего от безделья )
Когда мне нужен был генератор случайных чисел в 1С - его не было.
Рамдомная выборка из большого массива данных для формирования статистики, и последующего анализа на основе полученной презентативной выборки.
65. AlexO 135 26.02.15 23:30 Сейчас в теме
68. SemenovaMarinaV 27.02.15 15:47 Сейчас в теме
Главное чтобы зарплата начислялась не через генератор случайных чисел
timchenko1997@mail.ru; +1 Ответить
69. пользователь 27.02.15 22:46
Сообщение было скрыто модератором.
...
70. AlexO 135 28.02.15 16:35 Сейчас в теме
ildarovich, для спама "Именно <тема топика> я лично почти не использую, но сама программа мне жизненно необходима..." есть кнопка "спам". Минусовать не обязательно ))
71. Infector 201 11.03.15 14:37 Сейчас в теме
Полагаю, что ГСЧ может использоваться при планировании/прогнозировании наряду со статистическими данными или при недостаточности таковых. Просторы для применения тем выше, чем ближе объектная область к сложным техническим устройствам, для которых зависимость числа отказов (поломок т.е.) технари описывают формулами из теории вероятностей, но заранее дать точный прогноз по времени простоя и объемам ремонтных работ не могут.
Нечто подобное можно соотнести и с чрезвычайными ситуациями и планированием мероприятий по их ликвидации и предупреждению.

Не из области учета и 1С но все-таки - моделирование случайных нагрузок (ветер в строительстве, проезжающий по мосту транспорт и т.д.)
72. AlexO 135 11.03.15 16:35 Сейчас в теме
(71) Infector,
Не из области учета и 1С но все-таки - моделирование случайных нагрузок
Каким образом вы моделируете случайные нагрузки - на мост? На балку? На дорогу?
Т.е. смоделировали через ГСЧ нагрузку "танк" - рассчитан мост на "танк". А "случайно" смоделировали нагрузку только на велосипед - нагрузка "танк" уже обвалит мост??
73. Infector 201 12.03.15 09:05 Сейчас в теме
(72) AlexO, Ну здесь речь уже не о первоначальном расчете по учебнику сопромата, а о сложных системах, призванных проверить уже посчитанное в динамике. (Что скрывать - живьем такие не видел и не щупал, но они есть) ГСЧ в таком случае должен выдавать величины нагрузок от "велосипеда до танка" с определенным законом распределения, которые начинают двигаться по мосту со случайной же скоростью. Дует случайный ветер и т.д. по множествк параметров
Ну да, - бывает и так, что 2 танка безопаснее, чем один. Зависит все от того где они находтся :)
77. AlexO 135 20.03.15 17:35 Сейчас в теме
(73) Infector,
Ну да, - бывает и так, что 2 танка безопаснее, чем один. Зависит все от того где они находтся
В любом случае - мост, рссчитанный на танк, не нуждается в отдельном просчете для велосипеда.
Или "зависит от того, где находится танк, а где - велосипед"? ))
Тогда грош цена и расчету, и мосту.
79. Infector 201 22.03.15 12:22 Сейчас в теме
(77) AlexO, Я про то, что расчет крупного моста в современных условиях обязательно проверяют моделированием. Кроме статической нагрузки (велосипед/танк, по которой считают изначально) есть колебания под действием ветров, проходящего транспорта и т.д. (инач говоря окружающей среды в целом). Про Тахому же наверняка слышали? Сегодня такие объекты стараются моделировать еще до начала строительства. Для статического расчета опасны "танки" в определенных точках конструкции. Для колебательной системы это может оказаться и велосипед, и легковушка, и фура в сочетании с сильным ветром, даже при условии, что танк с тем же ветром дает удовлетворительный результат.
74. ELAM 38 12.03.15 09:50 Сейчас в теме
Выбор кто остается на трубке, когда все идут обедать. Выручает.
75. timeforlive 15 12.03.15 13:08 Сейчас в теме
Вот еще одна реализация ГСЧ:
http://infostart.ru/public/79727/

Используется для генерации надписи (далее преобразование текста в картинку).
76. timeforlive 15 20.03.15 16:35 Сейчас в теме
Ребят, а я вот хочу спросить в тему. Есть ли возможность использовать в 1С не встроенный ГСЧ, а сторонний, например, код C#? Я для своих ма-а-леньких приложений использую вот такой вот код, что очень помогает создать ГСЧ без повторений:
 public void RandomSkill()
        {
            Console.WriteLine("случайное число запущено");
            long time1 = DateTime.Now.Ticks;
            long time2 = DateTime.Now.Ticks;
            long time3 = time1;
            int intTime = 0;
            int i_ = 0;
            int startIndex = 0;
            int result = 0;
            int[] massResult = new int[2001];
            int indexMassResult = 0;
 
 
            while (i_ < 10000)
            {
                while ((time2 == time1) || (time2 == time3))
                {
                    time2 = DateTime.Now.Ticks;
                }
                time3 = time2;
                time1 = DateTime.Now.Ticks;
                try
                {
                    startIndex = Convert.ToString(time2).Length;
                    startIndex = (startIndex % 2 == 0) ? startIndex / 2 : (startIndex + 1) / 2;
                    intTime = Int32.Parse(Convert.ToString(time2).Substring(startIndex));
                }
                catch { intTime = startIndex; };
                Random rnd = new Random(intTime);
                if (i_ % 5 == 0)
                {
                    result = rnd.Next(1, 10);
                    Console.WriteLine("Итерация ({3}): {2}; result = {0}; intTime = {1}", result, intTime, i_ / 5, i_);
                }
                indexMassResult = (i_ % 5 == 0) ? indexMassResult + 1 : indexMassResult;
                massResult[indexMassResult] = result;
                i_++;
            }
            Console.WriteLine("случайное число завершено успешно.");
 
            // проверяем, есть ли совпадения в 4 итерациях подряд (i_ кратно 5)
            if (1 == 1) // поставьте 0, если не нужно проверять на совпадения
            {
                Console.WriteLine("Начало проверки на совпадение чисел (на каждые 4 числа подряд)");
                i_ = 3;
                while (i_ < 2000)
                {
                    bool b_ = true;
                    while (b_)
                    {
                        int indexIn = i_ - 3;
                        int IndexOut = i_ - 2;
                        int on eNumberRepeat = 0;
                        int twoNumberRepeat = 0;
                        int threeNumberRepeat = 0;
                        while (indexIn <= 2)
                        {
                            while (IndexOut <= 3)
                            {
                                on eNumberRepeat = ((massResult[indexIn] == massResult[IndexOut]) && indexIn == 0) ? oneNumberRepeat + 1 : oneNumberRepeat;
                                twoNumberRepeat = ((massResult[indexIn] == massResult[IndexOut]) && indexIn == 1) ? twoNumberRepeat + 1 : twoNumberRepeat;
                                threeNumberRepeat = ((massResult[indexIn] == massResult[IndexOut]) && indexIn == 2) ? threeNumberRepeat + 1 : threeNumberRepeat;
                                IndexOut++;
                            }
                            indexIn++;
                            IndexOut = indexIn + 1;
                        }
                        int bothFirst = oneNumberRepeat+twoNumberRepeat;
                        int bothSecond = twoNumberRepeat + threeNumberRepeat;
                        int bothThird = oneNumberRepeat + threeNumberRepeat;
                        int bothAll = oneNumberRepeat + twoNumberRepeat + threeNumberRepeat;
                        /* 
                        if ((oneNumberRepeat != 0) && (twoNumberRepeat != 0) && (threeNumberRepeat != 0)) // например, такая последовательность: 1 1 2 3
                        {
                            Console.WriteLine("Количество совпадения на 4 итерации подряд\n Числа: {0} {1} {2} {3}\n ---------------", massResult[0], massResult[1], massResult[2], massResult[3]);
                        }
                        else { Console.WriteLine("Нет совпадений"); }
                        /* */
                        if ((oneNumberRepeat > 1) || (twoNumberRepeat > 1)) // например, такая последовательность: 1 1 1 3
                        {
                            Console.WriteLine("Есть совпадения 3х чисел в одной последовательности.\n Числа: {0} {1} {2} {3}\n ---------------", massResult[i_ - 3], massResult[i_ - 2], massResult[i_ - 1], massResult[i_]);
                        }
                        else { Console.WriteLine("Нет совпадений"); }
                        /* */
                        /* */
                        if ((bothFirst > 1) || (bothSecond > 1) || (bothThird> 1)) // например, такая последовательность: 1 1 2 2 
                        {
                            Console.WriteLine("Есть совпадения 2х пар чисел в одной последовательности.\n Числа: {0} {1} {2} {3}\n ---------------", massResult[i_ - 3], massResult[i_ - 2], massResult[i_ - 1], massResult[i_]);
                        }
                        else { Console.WriteLine("Нет совпадений"); }
                        /* */
 
                        b_ = false;
                    }
                    i_++;
                }
                Console.WriteLine("Проверка на совпадения чисел - завершена.");
            }
        } // end RandomSkill
Показать
78. AlexO 135 20.03.15 17:36 Сейчас в теме
(76) timeforlive, использовать можно все - запускать как будете? 1С не компиллирует и не понимает С#.
80. timeforlive 15 23.03.15 09:47 Сейчас в теме
(78) я и спрашиваю, как в 1с запускать? через сом объект? а запускать исполнительный (ехе) файл.
тогда остается вопрос (который выходит за рамки данной темы) как данные, полученные в виндовс приложении, перенести в 1с. Вероятно, танец с бубном и нужные dll файлы...
81. AlexO 135 23.03.15 10:02 Сейчас в теме
(80) timeforlive,
я и спрашиваю, как в 1с запускать? через сом объект?
Никак, кроме указанного способа. И к 1С из С# - по COM, и из 1С - к C# тоже по COM-технологии (предварительно создать COM-сервер в C#).
как данные, полученные в виндовс приложении, перенести в 1с.
Капсулируйте в COM данные.
82. AlexO 135 23.03.15 10:05 Сейчас в теме
(80) timeforlive,
а запускать исполнительный (ехе) файл.
Напрямую нельзя, а COM-технология в 1С - то еще развлечение: написано студентами - и для студентов. Что-то сложнее "лабораторной работы" в виде примитивов 1С получить от такого COM практически нельзя.
87. cool.vlad4 2 23.03.15 17:27 Сейчас в теме
(80) timeforlive, определите сначала четко задачу, что из чего нужно получать. я уже запутался, что из чего получать надо и что у вас имеется на руках))). если у вас есть готовое windows-приложение , то по идее уже нужна ВК на C# , которая при генерации данных , будет передавать их через внешнее событие (есть еще вариант записи данных через некое общее хранилище, будь-то файл, БД или что-нибудь еще). но это если есть некое готовое приложение. если нужно генерировать просто случайные числа, то выше я написал как.
89. Serginio 938 23.03.15 17:46 Сейчас в теме
(87) Не обязательно использовать ВК для вызова события
http://www.forum.mista.ru/topic.php?id=689926&page=1#36
Используя ДобавитьОбработчик
cool.vlad4; +1 Ответить
90. cool.vlad4 2 23.03.15 17:56 Сейчас в теме
(89) Serginio, это я знаю. я не про то. я имел в виду, если у него есть готовое standalone -приложение код которого он менять не может или не хочет, но хочет передать оттуда данные в 1С.
91. cool.vlad4 2 23.03.15 17:57 Сейчас в теме
(89) Serginio, странно если б не знал. (например вот поиск дает http://forum.infostart.ru/forum24/topic56245/message623428/#message623428 ) ))))
93. Serginio 938 23.03.15 18:45 Сейчас в теме
(91) Я к тому, что в 8 ке ВК как таковая не нужна. Достаточно COM. Просто в http://infostart.ru/public/238584/
есть возможность использовать любых сборок .Net в том числе и Netовские события
83. Serginio 938 23.03.15 12:35 Сейчас в теме
(76)
Использование сборок .NET в 1С 7.x b 8.x
http://infostart.ru/public/238584/
84. saiten 246 23.03.15 12:54 Сейчас в теме
(76) Одно число можно взять через ЗапуститьПриложение, если приложение отдаст его как код возврата. Массив, однако, так не передать.
85. cool.vlad4 2 23.03.15 17:16 Сейчас в теме
(76) timeforlive, вы уж простите , но код ваш безобразен. если вам нужно генерировать криптостойкие псевдослучайные числа, лучше не делать своего велосипеда(тем более что он страшный), а использовать https://msdn.microsoft.com/ru-ru/library/system.security.cryptography.rngcryptoserviceprovider(v=vs.110).aspx .
тогда генерация в диапазоне чисел int32 например будет так

using System;
using System.Security.Cryptography;

private static int NextInt(int min, int max)
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buffer = new byte[4];

rng.GetBytes(buffer);
int result = BitConverter.ToInt32(buffer, 0);

return new Random(result).Next(min, max);
}
Показать

чтобы использовать это в 1С - есть два пути. один сделать COM сервер (в дотнете это очень легко, по сути достаточно для простых случае пометить класс как COMVisible) , либо (и это вариант я также использовал, но он пригоден только для SQL Server) , написать SQL CLR сборку, написать stored function и через внешние источники в 1С использовать.
88. cool.vlad4 2 23.03.15 17:41 Сейчас в теме
(85) cool.vlad4, в дополнение - класс RNGCryptoServiceProvider к тому же [ComVisibleAttribute(true)]. не удивлюсь если его напрямую можно создать в 1С. (хотя возможно что и нет. не знаю, не пробовал)
94. timeforlive 15 24.03.15 05:52 Сейчас в теме
(85) Согласен. Проверил на 2000 итераций. Вполне подходит для генерации случайных чисел.
Мой код отличается тем, что из 2000 итераций отсутствует совпадение 4х чисел подряд (т.е., например, 1 1 2 3 - есть одно совпадение).
Числа брал от 1 до 99.

Код msdn имеет 98 совпадений из 2000. Для разных компьютеров по разному, но на моем 98, вот так вот.
Кстати, совпадения происходят в такой (так похожей на ГСЧ) последовательности:
96, 47, 93, 47
1, 46, 1, 96
83, 84, 44, 84

Видно, что через один происходит повторение - а это не есть хорошо в некоторых случаях... Теория вероятности говорит, что и такое бывает, но не 1:20 это должно быть...

Я написал в (76), что использую "ГСЧ без повторений". Мой код не красив и груб, кто-то скажет, что это Анти-паттерн (см. http://lurkmore.to/Анти-паттерн), а я скажу, что это Грязный Хак (см. http://lurkmore.to/Грязный_хак).
Работает? да. При необходимости можно и параметры засунуть дополнительные и прочее. Если приложение в народ давать с исходным кодом, то, вероятно, я бы занялся рефакторингом, но я преследовал иной цели - выполнить ту задачу, которую я поставил в кратчайшее время (этот пост я писал дольше) ^_^
95. cool.vlad4 2 26.03.15 08:07 Сейчас в теме
(94) timeforlive, у ГПСЧ вроде есть специальные тесты . там надо распределение чисел смотреть, а не повторяемость каких-то чисел. в любом случае собственные исследования это похвально , я серьезно.
96. Serginio 938 26.03.15 12:20 Сейчас в теме
(94) Если хочешь без повторения то создавай список и удаляй из него выбранный элемент.
Второй вариант это перетасовка дпнных. https://msdn.microsoft.com/ru-ru/library/bb982398.aspx
86. cool.vlad4 2 23.03.15 17:18 Сейчас в теме
(76) и я себе слабо представляю зачем в 1С-у Console.WriteLine. Короче в текущем виде код использовать нельзя.
92. audion 23.03.15 18:22 Сейчас в теме
Еще одно применение ГСЧ - аудиторская выборка. Для случайного отбора среди больших массивов однородных документов.
ildarovich; +1 Ответить
97. timeforlive 15 27.03.15 03:58 Сейчас в теме
спасибо за ссылки.
наадо на досуге почитать:
Дональд Э. Кнут Глава 3. Случайные числа // Искусство программирования.
98. ildarovich 7865 27.03.15 13:46 Сейчас в теме
В статье "Расчет хэш-функции в запросе" приведен Пример 3, который показывает, как можно непосредственно В ЗАПРОСЕ выбирать записи справочника СЛУЧАЙНЫМ (псевдослучайным образом) образом.
Это может помочь решению многих из упомянутых здесь задач, при необходимости использования для решения языка запросов.
99. AlexO 135 27.03.15 14:37 Сейчас в теме
(98) ildarovich,
В статье "Расчет хэш-функции в запросе" приведен Пример 3
Опять же, имитация. Нужно поле Дата, да еще в Справочнике, да еще и заполнять надо ))
А Дата сама по себе - "случайная вещь", если обновляется постоянно. А если нет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот