Имя: Пароль:
1C
 
Сортировка массива строк ТЗ в 1С8.3. Как?
,
0 bolobol
 
30.08.18
13:20
День долбрый!

Подскажите, есть что-то эффективное, могущее сортирнуть массив строк ТЗ по, хотя бы, одному полю строк ТЗ ?

Спасибо!

А то сделал пузырёк - он умирает на 3000 элементах намертво...
1 Wirtuozzz_Х
 
30.08.18
13:21
(0) Пузырьком можно)
2 Wirtuozzz_Х
 
30.08.18
13:21
(0) не до читал ((((
3 Cyberhawk
 
30.08.18
13:22
Загрузить строки в ТЗ, отсортировать
4 Пуля
 
30.08.18
13:25
А то сделал пузырёк - он умирает на 3000 элементах намертво...
Сто в лоб, то что ты сделал не пузырек.
5 13_Mult
 
30.08.18
13:40
6 unregistered
 
30.08.18
13:42
Не понял задачу.
Массив строк ТЗ - это и есть ТЗ. Что мешает отсортировать ТЗ?
7 Cyberhawk
 
30.08.18
13:43
(6) "Массив строк ТЗ - это и есть ТЗ" // Ну мы же на форуме 1С. Мысли приземленнее.
8 Timon1405
 
30.08.18
13:45
а как получен этот массив строк? нельзя ли там вместо ТЗ.НайтиСтроки(ПараметрыОтбора) использовать
ТЗ.Скопировать(ПараметрыОтбора)
9 bolobol
 
30.08.18
13:50
(8) Есть дальнейшая необходимость изменять данные исходной ТЗ, а при копировании - связи с исходной не останется.
10 bolobol
 
30.08.18
13:51
(5) Реализовано?
11 bolobol
 
30.08.18
13:51
(3) Надо экспериментануть...
12 arsik
 
гуру
30.08.18
13:52
(9) Ой, да добавь УИД строки.
13 bolobol
 
30.08.18
13:56
(12) Связи нет, какой УИД брать?
14 Cyberhawk
 
30.08.18
13:59
Скопируй из исходной ТЗ нужные и ненужные строки в две новых ТЗ
15 Cyberhawk
 
30.08.18
13:59
Одну из двух ТЗ отсортируй и добавь затем ее к той, которая другая
16 Fedor-1971
 
30.08.18
14:01
(9) Возможно, имеется в виду Массив, заполненный одинаковыми (или разными) структурами и сортировать нужно по одному из свойств структуры?

(13) ты создал ТЗ, добавь в неё колонку УИД, при копировании и последующей сортировке / изменении строк в новой ТЗ сможешь получить связку с исходной (была одна строка - стало 2, или наоборот убрали в копии данные)
17 МихаилМ
 
30.08.18
14:11
(9) связь останется если в тз созданную из массива строк тз
добавить колонку с массивом строк.

у  Вас совсем не развито алгоритмическое мышление.
18 unregistered
 
30.08.18
14:17
ИсходнаяТЗ = Массив[0].Владелец();
ПустаяКопияИсходнойТЗ = ИсходнаяТЗ.СкопироватьКолонки(СписокКолонокПоКоторымСортируем);
ПустаяКопияИсходнойТЗ.Колонки.Добавить("СсылкаНаСтрокуВИсходнойТЗ");
Для Каждого ЭлементМассива Из Массив Цикл
   НоваяСтрока = ПустаяКопияИсходнойТЗ.Добавить();
   ЗаполнитьЗначенияСвойств(НоваяСтрока, ЭлементМассива);
   НоваяСтрока.СсылкаНаСтрокуВИсходнойТЗ = ЭлементМассива;
КонецЦикла;
ПустаяКопияИсходнойТЗ.Сортировать(СписокКолонокПоКоторымСортируем);
Массив = ПустаяКопияИсходнойТЗ.ВыгрузитьКолонку("СсылкаНаСтрокуВИсходнойТЗ"); // Перезаполняем исходный массив
19 13_Mult
 
30.08.18
14:20
20 bolobol
 
30.08.18
14:21
(17) Бу-гага))) Колонку со строками из массива, имели в виду?

(14) Отбор ненужных строк - это как сделать? "НЕ Отбор" - не припомню такого.

Насчёт внедрения УИД-а в исходную ТЗ - это, кстати, вариант

Спасибо всем! Шоры сняты)
21 bolobol
 
30.08.18
14:24
(19) Это, прям, вообще - кладезь мудрости, особенно: "Все сортировки можно ускорить расположив код в циклах в 1 строку." Спасибо!
22 unregistered
 
30.08.18
14:27
(21) > код в циклах в 1 строку

Баянище древнее. Этот миф ещё с клюшек живёт.
23 Cyberhawk
 
30.08.18
14:33
(22) Так-то это не миф
24 13_Mult
 
30.08.18
14:34
(22) Это :]|||||[: но не миф. :)
AdBlock убивает бесплатный контент. 1Сергей