Имя: Пароль:
1C
 
Случайная выборка данных из справочника
0 IT_PROGRAMMIST
 
01.06.11
20:39
Добрый вечер.УПП 1.3.7.2,платформа 8.2.13.Столкнулся в 1с  с проблемой выбора значения случайным образом. Я так понял,что в 1с-ке такого понятия как рандом нет.Надо самому писать.Эксперты, подскажите, как лучше решить такую задачу: необходимо выбрать данные из справочника в случайном порядке(нужно для того,чтобы при открытие документа поле Транспорт на рандоме заполнялось из справочника Транспортные средства).
Я сделал так, но это не правильно(возможно индекс будет за пределами массива):

       ЗапросАвто=новый Запрос;
       ЗапросАвто.текст="ВЫБРАТЬ  
                        |    ТранспортныеСредства.Наименование,
                        |    ТранспортныеСредства.Код
                        |ИЗ
                        |    Справочник.ТранспортныеСредства КАК ТранспортныеСредства";
                       
       Результат=ЗапросАвто.Выполнить().Выбрать();
       Массив=новый Массив;
       ОбщееКоличество=Результат.Количество();    
       Пока Результат.Следующий() Цикл


       Массив.Добавить(Результат.Наименование);
       КонецЦикла;
           
       ПоследнееСлучайноеЧисло= Секунда(ТекущаяДата());
       
       Если ОбщееКоличество<ПоследнееСлучайноеЧисло Тогда
ПоследнееСлучайноеЧисло=Окр(Секунда(ТекущаяДата())/ОбщееКоличество,0) ;
Сообщить("Эллемент массива "+Массив[ПоследнееСлучайноеЧисло]);    
Иначе
Сообщить(""+Массив[1])
       КонецЕсли;
       
            КонецЕсли;
       
       КонецЕсли;
1 skunk
 
01.06.11
20:44
СП украли?
2 skunk
 
01.06.11
20:44
ГСЧ = Новый ГенераторСлучайныхЧисел(255);
ГСЧ.СлучайноеЧисло(0, 10000);
3 aleks-id
 
01.06.11
20:58
+(2) а дальше ВЫБРАТЬ ПЕРВЫЕ ГСЧ
УПОРЯДОЧИТЬ ПО КОД УБЫВ
4 IT_PROGRAMMIST
 
02.06.11
00:13
ребят,написал вот такой код:

   ЗапросАвтоИзСправочника=новый Запрос;
   ЗапросАвтоИзСправочника.Текст="ВЫБРАТЬ
                                 |    Транспорт.Наименование,
                                 |    Транспорт.Код
                                 |ИЗ
                                 |    Справочник.Транспорт КАК Транспорт";
   Результат=ЗапросАвтоИзСправочника.Выполнить().Выбрать();
   Массив=новый Массив;
   ОбщееКоличествоЭлементов=Результат.Количество();
   Пока Результат.Следующий() цикл
        Массив.Добавить(Результат.Наименование);
   КонецЦикла;    
   
   
   ГСЧ= новый ГенераторСлучайныхЧисел(255);
   случайно=ГСЧ.СлучайноеЧисло(0,ОбщееКоличествоЭлементов);
   Сообщить(""+случайно);

Почему-то в результате выдает одно и тоже число.
где я ошибся???????????(((((((((
5 Mashinist
 
02.06.11
00:22
Точно СП украли
ГенераторСлучайныхЧисел (RandomNumberGenerator)
Конструктор по умолчанию
Синтаксис:
Новый ГенераторСлучайныхЧисел(<Начальное число>)
Параметры:
<Начальное число> (необязательный)
Тип: Число. Начальное число, которым инициализируется генератор случайных чисел.
Описание:
Генератор случайных чисел инициализируется начальным числом из параметра.
Последовательность случайных чисел для одного и того же начального числа будет одинакова.
6 IT_PROGRAMMIST
 
02.06.11
00:25
а как тогда быть?
7 IT_PROGRAMMIST
 
02.06.11
00:26
подставлять в генератор случ чисел каждый раз разное число?
8 IT_PROGRAMMIST
 
02.06.11
00:26
что такое СП?
9 IT_PROGRAMMIST
 
02.06.11
00:37
все РАЗОБРАЛСЯ!!!
СПАСИБО ОГРОМНОЕ ВАМ ВСЕМММММММ!!!!!)))))))

нужно вот так было написать
   ГСЧ= новый ГенераторСлучайныхЧисел();
   случайно=ГСЧ.СлучайноеЧисло(0,ОбщееКоличествоЭлементов);
   Сообщить(""+случайно);