Версия для печати темы (https://pro1c.org.ua/index.php?s=1dd7e10fe170dd7209d916a4bf4ae22b&showtopic=55270)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как упорядочить строки по номеру 1С 7.70.003 торговля склад для Украины?

Автор: ZUBR 18.11.19, 11:40

Добрый день. Можно ли на программном уровне при создании таблицы значений ТЗ, когда она уже заполнена, упорядочить ее строки не по дате документа, а, например, по номеру заказа, который находится в одной из ее колонок? И какую строку в пронюграмму при этом нужно добавить? Спасибо!

Автор: Макс1С 18.11.19, 11:46

ZUBR @ Сегодня, 11:40 * ,


Сортировать(<?>,);
Синтаксис:
Сортировать(<Колонки>,<ДокумПоДате>)
Назначение:
Сортировать таблицу значений по колонкам.
Параметры:
<Колонки> - строковое выражение, которое определяет колонки, порядок и направление сортировки. Формат передаваемой строки - это разделенные запятыми номера или идентификаторы колонок со знаком направления сортировки ( ''+'' - сортировать по возрастанию; ''- '' - сортировать по убыванию; ''*'' - сортировать по внутреннему значению). Знак направления сортировки можно указывать до или после обозначения колонки через пробел или без пробела. По умолчанию направление сортировки принимается по возрастанию.
<ДокумПоДате> - необязательный параметр. Имеет смысл только в том случае, если значениями таблицы значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 - сортировка по хронологии документов; 0 - нет. Значение по умолчанию - 0.


например:

МояТабл.Сортировать("ИмяКолонки1,ИмяКолонки2");

Автор: ZUBR 20.11.19, 18:53

Все получилось. Только строку сортировки нужно размещать в теле цикла, а название колонки, по которой сортируем, нужно писать в кавычках.
Спасибо!

Автор: Макс1С 20.11.19, 21:53

ZUBR @ Сегодня, 18:53 * ,
не совсем понял про какой цикл речь. Если в цикле заполняется таблица, тогда не согласен, сортировать нужно после того как таблица заполнена. Если цикл обходит уже готовую таблицу, то сортировка нужна до цикла.
А колонки в кавычках, да, поэтому пример и написал

Автор: ZUBR 28.11.19, 23:32

Макс1С @ 20.11.19, 21:53 * ,
да, все правильно, за пределами цикла сортировка работает. Но в теле цикла работает тоже. Проверено. В теле цикла заполнения ТаблицыЗначений.

Автор: nysysimara 29.11.19, 7:25

ZUBR, прислушайтесь к Макс1С, это повлияет на скорость выполнения алгорима

Автор: volodya1122 29.11.19, 11:54

Цитата(ZUBR @ 28.11.19, 23:32) *
да, все правильно, за пределами цикла сортировка работает. Но в теле цикла работает тоже. Проверено. В теле цикла заполнения ТаблицыЗначений.

Я памятаю фразу ще зі школи "Програма вважається правильно написаною, якщо вона забезпечує правильний результат при любих вхідних даних".
Але ми зараз не в школі, і крім правильного результату програма повинна бути хочаби більш-менш оптимізованою.
Якшо "Сортировать" ставити в середині циклу, то результат звичайно буде правильний, але компютер буде робити набагато більше операцій: добавили один запис в ТаблицюЗначень і потрібно перебирати всю таблицю значень для сортування. І так для кожного рядка із таблиці значень.
Якщо ж винести "Сортировать" за межі циклу то сортування відпрацює один раз для всієї таблиці -що набагато швидше.

Автор: ZUBR 30.11.19, 20:19

volodya1122 @ Вчера, 11:54 * , погоджуюсь. Ви праві.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua