8.х Генератор случайных чисел - есть ли он

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем WWW123, 5 май 2009.

  1. TopicStarter Overlay
    WWW123
    Offline

    WWW123 Опытный в 1С

    Регистрация:
    23 фев 2009
    Сообщения:
    181
    Симпатии:
    0
    Баллы:
    26
    Скажите пожалуйста какя команда позволяет генерировать случайные числа в пределах от 0 до 1
    Заранее благодарен.
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
  3. TopicStarter Overlay
    WWW123
    Offline

    WWW123 Опытный в 1С

    Регистрация:
    23 фев 2009
    Сообщения:
    181
    Симпатии:
    0
    Баллы:
    26
    Мне надо в 8.0!
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    В 8.0 только извращенно через ГУИД
  5. TopicStarter Overlay
    WWW123
    Offline

    WWW123 Опытный в 1С

    Регистрация:
    23 фев 2009
    Сообщения:
    181
    Симпатии:
    0
    Баллы:
    26
    Дорогой BabySG Вы конечно умный не по годам, но нельзя ли поподробнее - не все такие сообразительные...
  6. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    WWW123 о версии платформы нужно было сообщить еще в первом посте. Не нужно сарказма. Первая же ссылка выданная яндексом по запросу "1С 8 генератор случайных чисел" выдала замечательную статью, где в конце описывается генератор для 8.0: http://www.kb.mista.ru/article.php?id=25
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Прямо оттуда, кстати :)
    Код:
    //только для целых чисел
    Функция ПолучитьСлучайноеЧисло(Мин,Макс)
    
    //вместо Randomize
    Для н = 1 По 100 Цикл
    Уник = Новый УникальныйИдентификатор;
    КонецЦикла; 
    
    //генерируем GUID
    Уник = СокрЛП(Новый УникальныйИдентификатор);
    
    //оставляем только цифры
    Уник = СтрЗаменить(Уник,"-","");
    Уник = СтрЗаменить(Уник,"a","");
    Уник = СтрЗаменить(Уник,"b","");
    Уник = СтрЗаменить(Уник,"c","");
    Уник = СтрЗаменить(Уник,"d","");
    Уник = СтрЗаменить(Уник,"e","");
    Уник = СтрЗаменить(Уник,"f","");
    
    //знаменатель должен иметь такое же количество нулей + 1
    Знаменатель = 10;
    Для н = 2 По (СтрДлина(СтрЗаменить(Уник,Символы.НПП,""))) Цикл
    Знаменатель = Знаменатель * 10;
    КонецЦикла; 
    
    Случ = Число(Уник) / Знаменатель; //здесь получается дробное случайное число от 0 до 1
    
    //преобразуем его в случайное число из заданного интервала, округляем до целого
    ЧислоИзИнтервала = Мин(Макс(Окр(Мин + (Макс-Мин)*Случ),Мин),Макс);
    
    Возврат ЧислоИзИнтервала;
    
    КонецФункции 
    

Поделиться этой страницей