|
Заполнение данных справочника с помощью случайных чисел | ☑ | ||
---|---|---|---|---|
0
Валидатор
21.10.12
✎
12:28
|
Как заполнить данные справочника случайными числами программно?
|
|||
1
ДенисЧ
21.10.12
✎
12:31
|
ЛУчше всего для этого использовать генератор случайных чисел. Ваш КО
|
|||
2
Капитан О
21.10.12
✎
12:38
|
&НаКлиенте
Процедура ЗаполнитьСлучайно(Команда) Если Вопрос("Табличная часть будет очищена. Продолжить?", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда СлучайноЗаполнить(); КонецЕсли; КонецПроцедуры &НаСервере Процедура СлучайноЗаполнить() док=РеквизитФормыВЗначение("Объект"); СерверныйМодуль.ЗаполнитьСлучайно(док); ЗначениеВРеквизитФормы(док, "Объект"); КонецПроцедуры |
|||
3
Валидатор
21.10.12
✎
12:39
|
http://pikucha.ru/i9mAe
вот че получается, и форма у меня обычная |
|||
4
Капитан О
21.10.12
✎
12:39
|
а вот тут мы видим запрос в цикле. я знаю, переделывать лениво
Процедура ЗаполнитьСлучайно(док) Экспорт ГСЧ=Новый ГенераторСлучайныхЧисел; М=Новый Массив; док.Товары.Очистить(); Для й=1 По ГСЧ.СлучайноеЧисло(1, 12) Цикл М=док.Товары.ВыгрузитьКолонку("Номенклатура"); НоваяСтрока=док.Товары.Добавить(); ном=ПолучитьСлучайнуюНоменклатуру(М); Если ном.Пустая() Тогда Прервать; КонецЕсли; НоваяСтрока.Номенклатура=ном; НоваяСтрока.Количество=ГСЧ.СлучайноеЧисло(1, 200); НоваяСтрока.Цена=ГСЧ.СлучайноеЧисло(1, 200); НоваяСтрока.Стоимость=НоваяСтрока.Количество*НоваяСтрока.Цена; Если ТипЗнч(док)=Тип("ДокументОбъект.ПриходнаяНакладная") Тогда НоваяСтрока.СрокГодности=НачалоМесяца(ДобавитьМесяц(док.Дата, ГСЧ.СлучайноеЧисло(1, 24))); КонецЕсли; КонецЦикла; КонецПроцедуры Функция ПолучитьСлучайнуюНоменклатуру(Исключаемые=0) Экспорт ГСЧ=Новый ГенераторСлучайныхЧисел; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | (НЕ Номенклатура.Ссылка В (&Исключение) ИЛИ &Исключение=0) | И НЕ Номенклатура.ПометкаУдаления"; Запрос.УстановитьПараметр("Исключение", Исключаемые); Результат=Запрос.Выполнить().Выгрузить(); Если Результат.Количество()=0 Тогда Возврат Справочники.Номенклатура.ПустаяСсылка(); Иначе Возврат Результат[ГСЧ.СлучайноеЧисло(0, Результат.Количество()-1)].Ссылка; КонецЕсли; КонецФункции |
|||
5
Wobland
21.10.12
✎
12:40
|
(3) вот ты сейчас это зачем показал?
|
|||
6
Валидатор
21.10.12
✎
12:41
|
(5) затем, что заполняется одними данными, хоть я и ввожу цикл:
Для Счет = 1 По ВводимоеПользователемЧисло Цикл ГСЧ = Новый ГенераторСлучайныхЧисел(255); Рандом = ГСЧ.СлучайноеЧисло(0,1000); Справочник1 = Справочники.С1.СоздатьЭлемент(); Справочник1.Наименование = Рандом; ТабличнаяЧастьСправочника1 = Справочник1.Детали; НоваяСтрокаТЧ = ТабличнаяЧастьСправочника1.Добавить(); НоваяСтрокаТч.Количество = Рандом; НоваяСтрокаТЧ2 = ТабличнаяЧастьСправочника1.Добавить(); НоваяСтрокаТч2.Количество = Рандом; Справочник1.Записать(); КонецЦикла; |
|||
7
ДенисЧ
21.10.12
✎
12:42
|
(6) конструктор ГСЧ вынеси за цикл
|
|||
8
Валидатор
21.10.12
✎
12:43
|
(7) тоже самое получается, пробовал
|
|||
9
Wobland
21.10.12
✎
12:43
|
(6) сказать почему? у тебя ГСЧ инициализируется одним и тем же каждый раз
|
|||
10
Wobland
21.10.12
✎
12:44
|
машина не может сделать случайное число, она умеет только _псевдо_случайные. почитай на досуге
|
|||
11
Валидатор
21.10.12
✎
12:45
|
(9) и как мне сделать чтоб числа всегда были рахзные?
|
|||
12
Живой Ископаемый
21.10.12
✎
12:46
|
зачем?
|
|||
13
Wobland
21.10.12
✎
12:46
|
(11) >ГСЧ = Новый ГенераторСлучайныхЧисел(255)
а что ты имел в виду под 255? |
|||
14
Wobland
21.10.12
✎
12:46
|
(12) он уже запрашивал готовую обработку по заполнению справочника мусором. не нашёл ;)
|
|||
15
Валидатор
21.10.12
✎
12:47
|
(13) начальное значение = 255 к примеру я имел ввиду
|
|||
16
Живой Ископаемый
21.10.12
✎
12:47
|
2(14) Она есть на ИТС, зачем ее искать и спрашивать?
Но зачем именно мусором? |
|||
17
Wobland
21.10.12
✎
12:47
|
(15) на зачем оно?
|
|||
18
Wobland
21.10.12
✎
12:48
|
(16) как называется? тестовые данные человек генерит
|
|||
19
Валидатор
21.10.12
✎
12:48
|
(17) не понял вопроса
|
|||
20
Валидатор
21.10.12
✎
12:48
|
и у меня нет доступа к итсу
|
|||
21
Wobland
21.10.12
✎
12:48
|
(19) почему 255? для чего служит параметр в конструкторе?
|
|||
22
Валидатор
21.10.12
✎
12:50
|
(21) ну можно 1 поставить:
ачальноеЧисло = 1; ГСЧ = Новый ГенераторСлучайныхЧисел(НачальноеЧисло); Рандом = ГСЧ.СлучайноеЧисло(0,1000); толку больше не будет от этого |
|||
23
Wobland
21.10.12
✎
12:50
|
плин, заставил немолодого в СП лазить..
давай, запости сюда кусок из СП про этот самый параметр |
|||
24
Живой Ископаемый
21.10.12
✎
12:51
|
2(18) Отлично... чем с точки зрения этой задачи
элементы справочника у которых код и наименование имеют такой вид: 464 порпорпорпор 809090 sdvbpkcsd 98723 ррорлол osrfg более ценны чем те, которые имею вид 464 ЭлементСпраовчника464 465 ЭлементСпраовчника465 466 ЭлементСпраовчника466 ? А для последнего на ИТС обработка точно есть, называется что-то там КонфиденциальныхДанных |
|||
25
Валидатор
21.10.12
✎
12:51
|
ГенераторСлучайныхЧисел.Конструктор по умолчанию (RandomNumberGenerator.Default constructor)
ГенераторСлучайныхЧисел (RandomNumberGenerator) Конструктор по умолчанию Синтаксис: Новый ГенераторСлучайныхЧисел(<НачальноеЧисло>) Параметры: <НачальноеЧисло> (необязательный) Тип: Число. Начальное число, которым инициализируется генератор случайных чисел. Описание: Генератор случайных чисел инициализируется начальным числом из параметра. Последовательность случайных чисел для одного и того же начального числа будет одинакова. |
|||
26
Wobland
21.10.12
✎
12:52
|
(24) мне пофих, это у автора лабораторная
|
|||
27
Валидатор
21.10.12
✎
12:52
|
(24) с чего ты взял что они более ценны? мне нужно забивать различными данными, и не важно какими
|
|||
28
Wobland
21.10.12
✎
12:52
|
(25) так. последнюю строку разжевать?
|
|||
29
Валидатор
21.10.12
✎
12:52
|
(28) то есть не вводим начальное число при создании ГСЧ?
|
|||
30
Валидатор
21.10.12
✎
12:53
|
ГСЧ = Новый ГенераторСлучайныхЧисел();
Рандом = ГСЧ.СлучайноеЧисло(0,1000); все равно одними и теми же данными забивает |
|||
31
Wobland
21.10.12
✎
12:53
|
(29) то есть готовый код, любезно предоставленный тебе в самом начале, ты даже не посмотрел?
|
|||
32
maip1
21.10.12
✎
12:53
|
||||
33
Живой Ископаемый
21.10.12
✎
12:53
|
2(27)
Тогда просто создай элементы справочника. Наименования у них будут пыстыми, код будет автоинкрементирован, и потом ты на этот справочник натравишь упомянутую обработку и получишь аккуратные данные. |
|||
34
Wobland
21.10.12
✎
12:54
|
(30) не верю
|
|||
35
Валидатор
21.10.12
✎
12:54
|
(31) где управляемое приложение?
|
|||
36
Wobland
21.10.12
✎
12:54
|
+(34) весь код покажи
(35) да, где управляемое |
|||
37
Валидатор
21.10.12
✎
12:54
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
ВводимоеПользователемЧисло = ВводимоеЧисло; Если ВводимоеПользователемЧисло < 0 Тогда Сообщить("Введите число больше 0"); Возврат; КонецЕсли; Если ВводимоеПользователемЧисло > 200 Тогда Сообщить("Введите число меньше 200"); Возврат; КонецЕсли; ГСЧ = Новый ГенераторСлучайныхЧисел(); Рандом = ГСЧ.СлучайноеЧисло(0,1000); Для Счет = 1 По ВводимоеПользователемЧисло Цикл Справочник1 = Справочники.С1.СоздатьЭлемент(); Справочник1.Наименование = Рандом; ТабличнаяЧастьСправочника1 = Справочник1.Детали; НоваяСтрокаТЧ = ТабличнаяЧастьСправочника1.Добавить(); НоваяСтрокаТч.Количество = Рандом; НоваяСтрокаТЧ2 = ТабличнаяЧастьСправочника1.Добавить(); НоваяСтрокаТч2.Количество = Рандом; Справочник1.Записать(); КонецЦикла; Сообщить("Данные были загружены"); КонецПроцедуры |
|||
38
Wobland
21.10.12
✎
12:55
|
(37) взял одно случайное число и пихаешь его куда-то в цикле
|
|||
39
Живой Ископаемый
21.10.12
✎
12:56
|
Для случайных числе. Можно э... :) Поставить 17-й релиз. Получать разницу в миллисекундах между двумя какими-то моментами времени в миллисекундах до и после выполнения какой-нибудь фигни. :)
|
|||
40
Wobland
21.10.12
✎
12:56
|
(39) а что такого в 17м релизе? 8.2.17 имеется в виду? уже вышла?
|
|||
41
Валидатор
21.10.12
✎
12:57
|
(37) можно засунуть в цикл этот констурктор ГСЧ, по идеи разные должны быть значения, но нет, все опять одинаково
|
|||
42
Wobland
21.10.12
✎
12:57
|
+(40) я миллисекунды до этого как-то скриптово получал
|
|||
43
Wobland
21.10.12
✎
12:57
|
(41) засунь ГСЧ.СлучайноеЧисло() и не морочь нам голову
|
|||
44
Wobland
21.10.12
✎
12:57
|
(43) в цикл засунь
|
|||
45
Wobland
21.10.12
✎
12:58
|
опять полсотни постов ни о чём...
|
|||
46
Валидатор
21.10.12
✎
12:58
|
все, gj, работает
|
|||
47
Wobland
21.10.12
✎
12:59
|
(46) не за что
|
|||
48
Валидатор
21.10.12
✎
13:00
|
спс
|
|||
49
Живой Ископаемый
21.10.12
✎
13:01
|
2(40) Да. тестовая.. Там можно получить количество миллисекунд прошедших с начала эпохи.
|
|||
50
Classic
21.10.12
✎
14:21
|
Как всегда правильный ответ в первой десятке постов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |