![]() |
![]() |
![]() |
|
перебрать ТЗ в случайном порядке | ☑ | ||
---|---|---|---|---|
0
адинэсниг1
05.08.13
✎
10:36
|
Имеем ТЗ. Циклом нужно перебрать все строки этого ТЗ, но не подряд а в случайном порядке. Подскажите хотя бы куда копать. Или примеры кода. Заранее спасибо!
|
|||
1
Godofsin
05.08.13
✎
10:36
|
Через ГСЧ придумать можно наверное
|
|||
2
Ёпрст
гуру
05.08.13
✎
10:37
|
Цикл + ГСЧ.. усё
|
|||
3
Starhan
05.08.13
✎
10:37
|
но зачем?
|
|||
4
Попытка1С
05.08.13
✎
10:38
|
Так а надо в итоге все перебрать или как?
|
|||
5
Godofsin
05.08.13
✎
10:39
|
(3) Рандомный выбор сотрудников для премии )))))
|
|||
6
Maxus43
05.08.13
✎
10:39
|
зачем? просто интересно уже
|
|||
7
адинэсниг1
05.08.13
✎
10:40
|
(4) да, и чтобы строки не повторялись.
(3) например тест на этой платформе ну или как в (5):) |
|||
8
ДенисЧ
05.08.13
✎
10:40
|
(5) Для увольнения :-)
|
|||
9
Starhan
05.08.13
✎
10:40
|
(5) так задача пройти все строки.
(0) Добавляем колонку, заполняем гсч - сортируем по ней. |
|||
10
Ёпрст
гуру
05.08.13
✎
10:41
|
+2
делаешь 2 цикла, в первом проверяешь, все ли строки выбраны, далее через гсч в цикле выбираешь "не выбранный" номер строки в ТЗ. ставишь марке в колонку, что быбран. или в соответствие колонок, или еще куда Наслаждаешься |
|||
11
Starhan
05.08.13
✎
10:41
|
(9) ну и обходим уже стнадартно.
|
|||
12
Maxus43
05.08.13
✎
10:42
|
(9) +1. Самый нормальный путь
|
|||
13
Попытка1С
05.08.13
✎
10:42
|
(9) +2
|
|||
14
адинэсниг1
05.08.13
✎
10:42
|
попробую как в (9)
|
|||
15
pessok
05.08.13
✎
10:52
|
помница, когда много лет назад я увидел в ЗУПе функцию ГСЧ, я прифигел слегка :) только потом уже понял, что енто для формирования какого-то имени файла для пенсионного было нужно :)
(9) +3 |
|||
16
1Сергей
05.08.13
✎
10:54
|
так на ТКВ ответ будет?
|
|||
17
m-serg74
05.08.13
✎
10:56
|
(12) а еще лучше сортировка по Колонке с номером по ГСЧ :-)
|
|||
18
адинэсниг1
05.08.13
✎
11:06
|
Если кому нибудь понадобится:
результат.Колонки.Добавить("ГСЧ"); для каждого стр из результат цикл UID=Новый УникальныйИдентификатор(); UID = СтрЗаменить(UID,"-",""); Значение = ""; Для Н=1 По СтрДлина(UID) Цикл Симв = Сред(UID,Н,1); Значение = Значение+Прав(КодСимвола(Симв),1); КонецЦикла; стр.ГСЧ=Значение; КонецЦикла; результат.Сортировать("ГСЧ возр"); |
|||
19
Ёпрст
гуру
05.08.13
✎
11:07
|
(18) извращенец..
|
|||
20
Ёпрст
гуру
05.08.13
✎
11:08
|
ГСЧ есть, нафига там гуид и еще и посимвольного его обходить ?
|
|||
21
адинэсниг1
05.08.13
✎
11:08
|
(19) Почему? :)
|
|||
22
pessok
05.08.13
✎
11:10
|
(18) вот это МОЩЬ! 0_0
|
|||
23
адинэсниг1
05.08.13
✎
11:10
|
:))
|
|||
24
Ёпрст
гуру
05.08.13
✎
11:10
|
ГенераторСлучайныхЧисел (RandomNumberGenerator)
ГенераторСлучайныхЧисел (RandomNumberGenerator) Методы: СлучайноеЧисло (RandomNumber) Конструкторы: Конструктор по умолчанию Формирование неинициализированного объекта Описание: Генератор случайных чисел. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
25
pessok
05.08.13
✎
11:14
|
МассивГСЧ = Новый Массив;
ТЗ.Колонки.Добавить("ГСЧ"); Ит = 0 Пока Ит <= ТЗ.Количество() Цикл Генератор = Новый ГенераторСлучайныхЧисел(); СлЧисло = Генератор.СлучанойЧисло(); Если МассивГСЧ.Найти(СлЧисло) = 0 Тогда МассивГСЧ.Добавить(СлЧило); Ит = Ит + 1; КонецЕсли; КонецЦикла; ТЗ.ЗагрузитьКолонку("ГСЧ", МассивГСЧ); //как-то так, пофигуратор запускать лень, писла на коленке |
|||
26
pessok
05.08.13
✎
11:15
|
Если МассивГСЧ.Найти(СлЧисло) = Неопределено Тогда //вроде так
|
|||
27
m-serg74
05.08.13
✎
11:15
|
чем сортировка по случайной колонке не случайный порядок?
|
|||
28
pessok
05.08.13
✎
11:17
|
(27) случайную колонку еще надо заиметь. для этого и пользуем ГСЧ.
если же сортировать по существующим колонкам, то "случайно" будет только один раз, при каждом следующем вызове уже не будет случайно |
|||
29
m-serg74
05.08.13
✎
11:19
|
не понял меня есть к примеру есть три колонки, по ГСЧ выпадает 2, берем 2 колонку по ней делаем Сортировать, чем не случайный порядок?
|
|||
30
m-serg74
05.08.13
✎
11:21
|
а если конечно с одними и теми же данными в ТЗ надо несколько раз беспорядок делать(что то ничего в голову не приходит где это на практике можно применять) то конечно только добавление колонки
|
|||
31
Мыш
05.08.13
✎
11:23
|
Вот ведь напридумывают. Лишь бы не кодить )
|
|||
32
palpetrovich
05.08.13
✎
11:28
|
(25) прикольный способ обхода ТЗ :)
имхо достаточно: Генератор = Новый ГенераторСлучайныхЧисел(); ТЗ.Колонки.Добавить("ГСЧ"); Для Каждого СтрокаТЗ из ТЗ Цикл СтрокаТЗ.ГСЧ = Генератор.СлучайноеЧисло(); КонецЦикла ТЗ.Сортировать("ГСЧ"); |
|||
33
m-serg74
05.08.13
✎
11:36
|
(32) он проверяет что б сл. числа не повторялись
|
|||
34
palpetrovich
05.08.13
✎
11:39
|
(33) зачем? автору это без надобности
|
|||
35
m-serg74
05.08.13
✎
11:49
|
(34) автору вообще все без надобности)
|
|||
36
pessok
05.08.13
✎
11:51
|
(32) ну дык будут ГСЧ с одинаковыми значениями. с другой стороны, nobody cares
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |