Здравствуйте. Возникла необходимость отсортировать табличную часть документа по иерархии. Как это сделать наиболее оптимально? В условном оформлении почему-то только отборы.
09.12.2024 19:25:32
Здравствуйте. Возникла необходимость отсортировать табличную часть документа по иерархии. Как это сделать наиболее оптимально? В условном оформлении почему-то только отборы. |
|
|
|
10.12.2024 21:02:04
Давайте на примерах. Допустим, у вас документ Заказ покупателя» с табличной частью «Номенклатура», есть две колонки «Номенклатура», «Цена». Необходимо добавить две кнопки, при нажатии которых будет происходить сортировка: либо по номенклатуре, либо по номенклатуре+цена. Процедура сортировки по Номенклатуре выглядит так: Процедура СортироватьПоНоменклатуре(Команда) Объект.Номенклатура.Сортировать("Номенклатура Возр"); // по возрастанию // Объект.Номенклатура.Сортировать("Номенклатура Убыв"); // по убыванию КонецПроцедуры Второй вариант – номенклатура+цена – делается вот так: Процедура СортироватьПоНоменклатураЦена(Команда) Объект.Номенклатура.Сортировать("Номенклатура Возр, Цена Возр"); КонецПроцедуры Когда вы применяете второй вариант, то в рамках как бы одинаковых номенклатурных позиций появляется сортировка строк по возрастанию, по колонке «цена», в отличие от первого варианта сортировки. |
|||
|
|
11.12.2024 13:34:45
Ну в целом да. Можно вообще проще – навести курсор мыши на заголовок колонки, по которой хотим отсортировать данные (например, «Номенклатура»). Далее нажимаем правой кнопкой мыши. Затем в появившемся меню выбираем: «Сортировать по возрастанию» — для сортировки от А до Я, от меньшего к большему. «Сортировать по убыванию» — для сортировки от Я до А, от большего к меньшему. Иногда стандартных возможностей сортировки в 1С недостаточно. Например, вам нужно отсортировать данные по сложному алгоритму, который не поддерживается интерфейсом. В таких случаях вот как раз и пригодится программный код. Программная сортировка позволяет отсеивать значения по нескольким полям с заданным направлением, использовать собственные функции сравнения для реализации нестандартной логики сортировки и можно сортировать не только табличную часть, но и вообще любые коллекции данных в 1С (массивы, структуры, соответствия). |
|||||
|
|
11.12.2024 21:22:23
Кстати, отсортировать данные в табличной части по нескольким колонкам одновременно все же не получится. Сделать это можно только по одной колонке. Если вам нужно сбросить настройки сортировки списка и вернуть стандартный порядок отображения элементов, то делайте это можно в окне настройки списка на вкладке «Сортировка» через нажатие кнопки «Удалить все». При необходимости можно программно задать сортировку для динамического списка. Для это используйте объект «КомпоновщикНастроекКомпоновкиДанных», настройте в нем сортировку. Имейте в виду, что колонки – обязательный параметр, который имеет тип Строка, в этой строке должны быть перечислены колонки таблицы значений, по которым осуществляется сортировка. После названия колонки можно указывать направление сортировки: или «Убыв», тогда сортировка осуществляется по убыванию, или «Возр», в этом случае сортировка будет по возрастанию. Если не указать направление сортировки, то она будет происходит по возрастанию. Можно перечислять несколько колонок, тогда таблица значений будет отсортирована сначала по первой указанной колонке, потом строки с одинаковым значением в первой колонке будут отсортированы по второй колонке и т.д. |
|||||||
|
|
12.12.2024 13:46:07
Т.к. начали тему параметров сортировки, то ОбъектСравнения — необязательный параметр, в него передается переменная с типом СравнениеЗначений. Его необходимо применять, когда в сортируемых колонках содержатся значения не примитивных типов. Если этот параметр не указан, то элементы не примитивных типов сравниваются по своему строковому представлению. Если же он указан, то они сравниваются по следующим правилам: · Объекты сравниваются по идентификатору · Моменты времени сравниваются по дате и идентификатору объекта · Если есть элементы с разными типами, то они сравниваются по коду типа · Элементы остальных типов сравниваются по строковому представлению Документы в программе можно сортировать по дате (создания или регистрации), наименованию и виду. Сгруппировать их также можно по типу, причине добавления в список и проекту. |
|||||||||
|
|
13.12.2024 09:56:04
Вспомнил тут еще про одну крайне интересную команду – «Настроить список». С ее помощью можно сортировать данные в соответствии с выбранными условиями и в указанном направлении. Работает она для списков справочников, документов и регистров. Настройка позволяет упорядочить данные в соответствии с выбранными условиями и в указанном направлении по возрастанию и по убыванию. Сама по себе эта вкладка состоит из окна список доступных полей для сортировки и еще одного окна – указание направления сортировки по выбранному полю. По умолчанию в документах сортировка установлена по дате. Для изменения этого условия нужно добавить свои поля сортировки кнопками: Выбрать — из окна списка доступных полей и Добавить новый элемент порядка — из окна определения порядка сортировки. После ввода порядка сортировки данные в списке будут упорядочены по заданному полю. |
|||||||||||
|
|
||||||||||