|
Самый быстрый способ создать нужное количество строк в ТЗ? |
☑ |
0
Hipocrisy2013
02.10.19
✎
09:29
|
Есть пустая ТЗ, для загрузки колонки из массива, нужно чтобы количество строк совпадали с количеством элементов массива, есть ли более оптимальный способ, чем перебор через цикл, на создание нужного количество строк?
|
|
1
palsergeich
02.10.19
✎
09:52
|
(0) Загрузить колонку?
|
|
2
palsergeich
02.10.19
✎
09:52
|
ЗагрузитьКолонку()
|
|
3
palsergeich
02.10.19
✎
10:03
|
В плане оптимальности чем плох перебор массива и добавление строк в ТЖ?
|
|
4
ads55
02.10.19
✎
10:10
|
Запрос к любому справочнику Выбрать Первые по количеству элементов массива и разыменовать колонки как в ТЗ.
|
|
5
Hipocrisy2013
02.10.19
✎
10:24
|
(4) А если в справочнике меньше элементов чем в массиве?
|
|
6
Hipocrisy2013
02.10.19
✎
10:26
|
Ну в принципе вопрос не очень актуальный
Для Счетчик = 1 По Данные[0].Количество() Цикл
ТЗДанные.Добавить();
КонецЦикла;
Через перебор в цикле в 120 тысяч строк код выполняется меньше секунды.
|
|
7
palsergeich
02.10.19
✎
10:33
|
(6) ну я про что)
|
|
8
Raxla
02.10.19
✎
13:32
|
select
0 как Цифра
Поместить Цифры
union all
select
1 как Цифра
union all
select
2 как Цифра
union all
select
3 как Цифра
union all
select
4 как Цифра
union all
select
5 как Цифра
union all
select
6 как Цифра
union all
select
7 как Цифра
union all
select
8 как Цифра
union all
select
9 как Цифра
;
select
(Разряд1.Цифра + Разряд2.Цифра * 10 + Разряд3.Цифра * 100) как Число
from
Цифры как Разряд1, Цифры как Разряд2, Цифры как Разряд3
where
(Разряд1.Цифра + Разряд2.Цифра * 10 + Разряд3.Цифра * 100) < &Количество
order by
Число
Ну и Запрос.Выполнить().Выгрузить();
|
|