Функция Случайное число, RANDOM, RND для 1С 7.7

28.09.11

Разработка - Универсальные функции

В 1С нет функции случайного числа. представляю Вам свою. основана на получении идентификатора и из него случайного числа. от 0 до 10, от 0 до 100 и от 0 до 1000.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
пример использования. обработка ert
.ert 45,00Kb
18
18 Скачать (1 SM) Купить за 1 850 руб.

функция ПолучитьСлучайноеЧисло (ВерхняяВилка=1);

    Если
ЗагрузитьВнешнююКомпоненту("V7Plus.dll") <> 1 Тогда
       
Сообщить("Ошибка загрузки компоненты V7+");
        возврат
0;
    КонецЕсли;

   
НТТРСистИнформ = СоздатьОбъект("AddIn.V7SysInfo");

   
//получим уникальный идентификатор:
   
СлучайнаяСтрока = СокрЛП(НТТРСистИнформ.СоздатьGUID()); // вида:11CADC0A-96C4-4547-81E4-889CB89634BB

    //Суммируем коды всех символов этой случайной строки
   
Куча=1;
    для
СчетчикСимволов=1 по СтрДлина(СлучайнаяСтрока) цикл
       
куча = куча+КодСимв(Сред(СлучайнаяСтрока,СчетчикСимволов,1))*СчетчикСимволов;
    Конеццикла;

    возврат
куча % ВерхняяВилка;
конецфункции

//*******************************************
Процедура Сформировать()
   
НеБолееТысячи = 1000;
   
НеБолееСта = 100;
   
НеБолееДесяти = 10;

   
сообщить("Случайное число не более тысячи:"+ПолучитьСлучайноеЧисло(НеБолееТысячи));
   
сообщить("Случайное число не более ста:"+ПолучитьСлучайноеЧисло(НеБолееСта));
   
сообщить("Случайное число не более Десяти:"+ПолучитьСлучайноеЧисло(НеБолееДесяти));
КонецПроцедуры

См. также

Универсальные функции Программист Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    1371    14    user706545_kseg1971    0    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    2339    zhenyat    7    

8

Универсальные функции Программист Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    5138    Zoltan_Black    11    

2

Универсальные функции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13933    4    alsen    3    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10766    malovandrey    7    

19

Универсальные функции Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18887    2    HAMMER_59    6    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ShantinTD 91 28.09.11 20:03 Сейчас в теме
У нас извратились на получение "случайного" числа из
_GetPerformanceCounter();
2. Angeros 29.09.11 04:56 Сейчас в теме
Всегда интересовало нафига в учетной системе функция рандом?
4. Famza 85 29.09.11 08:30 Сейчас в теме
(2) А распределение зарплаты?
5. Angeros 29.09.11 10:18 Сейчас в теме
7. TrinitronOTV 16 29.09.11 12:03 Сейчас в теме
Famza пишет:

(2) А распределение зарплаты?

хорошо хоть не размер самой зарплаты
9. vkr 14.10.11 10:00 Сейчас в теме
(2) Чтобы можно было, например, на языке 1С игрушку типа пасьянса реализовать... :D
11. dnikolaev 179 14.10.11 10:54 Сейчас в теме
(9) vkr, А я делал эту функцию для того чтобы табели отработанного времени охранникам формировать )))
12. Angeros 16.10.11 07:25 Сейчас в теме
(11) Ну ну. купить среду для бизнес приложений, чтобы в пасьянс погонять. :)
3. Alraune 1505 29.09.11 07:56 Сейчас в теме
В 1С нет функции случайного числа

в 8 есть
6. janber 29.09.11 11:42 Сейчас в теме
Оригинально!
Хорошо бы еще для полноты картины добавить параметр "нижняя вилка"
8. victuan 4266 05.10.11 16:53 Сейчас в теме
И ради такой фигни загружать целую ВК?
10. dnikolaev 179 14.10.11 10:53 Сейчас в теме
(8) victuan,

:) и стоит
ради 1С - целый Windows грузить :)))
13. flash82 09.02.12 08:35 Сейчас в теме
прикольно, буду иметь ввиду...
14. GenTay 15.02.12 22:23 Сейчас в теме
Хорошая вещь, у себя реализовал прикольно.
dnikolaev; +1 Ответить
15. dnikolaev 179 15.02.12 22:37 Сейчас в теме
16. Кошки рулят 15.02.12 23:43 Сейчас в теме
Фигня.
Я пользуюсь всегда вот такой функцией.
Из всех, что мне давелось попробовать, я считаю, эта дает самый хороший результат.

Перем КакоеТоЧисло;
Функция ДатьСлучайноеЧисло()
m35=34359738368;
m36=68719476736;
m37=137438953472;
КакоеТоЧисло=5*КакоеТоЧисло;
Если КакоеТоЧисло>=m37 Тогда КакоеТоЧисло=КакоеТоЧисло-m37 КонецЕсли;
Если КакоеТоЧисло>=m36 Тогда КакоеТоЧисло=КакоеТоЧисло-m36 КонецЕсли;
Если КакоеТоЧисло>=m35 Тогда КакоеТоЧисло=КакоеТоЧисло-m35 КонецЕсли;
Возврат Цел(КакоеТоЧисло/m35*101);
КонецФункции // ДатьСлучайноеЧисло()
Процедура ПриОткрытии(Настр)
КакоеТоЧисло=_GetPerformanceCounter()*_GetPerformanceCounter();
КонецПроцедуры // ПриОткрытии
Процедура СлучайноеЧисло()
СлучайноеЧисло=ДатьСлучайноеЧисло();
СлучайноеЧисло=СлучайноеЧисло%(Предел-1)+1;
КонецПроцедуры // СлучайнаяПозиция()

Таким образом получается ХорошоСлучайное число в диапазоне от 1 до Предел.
А всякие простые алгоритмы, типа GetPerformanceCounter()% Предел дают фуфло и для использования в игрушках не канают совершенно. Проверено много раз ...
17. dnikolaev 179 16.02.12 00:14 Сейчас в теме
(16) Кошки рулят, не убедил
18. avers007 52 16.02.12 18:08 Сейчас в теме
Кроме игрушек бывает еще задача сформировать код доступа куда либо. И чтобы каждый раз был новый. Так что "+"
Оставьте свое сообщение