![]() |
![]() |
|
Случайная выборка данных из справочника | ☑ | ||
---|---|---|---|---|
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,ОбщееКоличествоЭлементов); Сообщить(""+случайно); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |