Например: СЗ = СортироватьСсылкиПоРеквизитам(СЗ, "Дата УБЫВ");
// СортироватьСсылкиПоРеквизитам — сортирует массив или список значений (ссылок одного типа) по реквизитам соответствующих объектов
//
// Параметры:
// КоллекцияСсылок — Массив, СписокЗначений — сортируемая коллекция однотипных ссылок
// РеквизитыСортировки — Строка — Список имен реквизитов, разделенных запятыми, по которым производится сортировка коллекции.
// После каждого имени колонки через пробел может быть указано направление сортировки.
// Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию.
// По умолчанию сортировка производится по возрастанию. Порядок указания имен реквизитов определяет порядок сортировки.
// При пустом значении производится автоупорядочивание ссылок.
// Возвращаемое значение:
// — Массив —
// — СписокЗначений —
// Пример:
// СЗ = СортироватьСсылкиПоРеквизитам(СЗ, "Код УБЫВ");
Функция СортироватьСсылкиПоРеквизитам(Знач КоллекцияСсылок, Знач РеквизитыСортировки = Неопределено) Экспорт
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"ОбщегоНазначения.СортироватьСсылкиПоРеквизитам"
, "КоллекцияСсылок"
, КоллекцияСсылок
, Новый ОписаниеТипов("Массив, СписокЗначений"));
Если Не ЗначениеЗаполнено(КоллекцияСсылок) Тогда
Если ТипЗнч(КоллекцияСсылок) = Тип("Массив") Тогда
Возврат Новый Массив;
ИначеЕсли ТипЗнч(КоллекцияСсылок) = Тип("СписокЗначений") Тогда
Возврат Новый СписокЗначений();
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(РеквизитыСортировки) Тогда
РеквизитыСортировки = "Ссылка";
КонецЕсли;
Если ТипЗнч(КоллекцияСсылок) = Тип("Массив") Тогда
МассивСсылок = КоллекцияСсылок;
ИначеЕсли ТипЗнч(КоллекцияСсылок) = Тип("СписокЗначений") Тогда
МассивСсылок = КоллекцияСсылок.ВыгрузитьЗначения();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Ссылка КАК Ссылка
|ИЗ
| " + МассивСсылок[0].Метаданные().ПолноеИмя() + " КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&МассивСсылок)
|УПОРЯДОЧИТЬ ПО
| " + РеквизитыСортировки + "
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
ОтсортированныеСсылки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);
Если ТипЗнч(КоллекцияСсылок) = Тип("Массив") Тогда
Возврат ОтсортированныеСсылки;
ИначеЕсли ТипЗнч(КоллекцияСсылок) = Тип("СписокЗначений") Тогда
СЗ = Новый СписокЗначений();
Для каждого Ссылка Из ОтсортированныеСсылки Цикл
Для каждого элСписка Из КоллекцияСсылок Цикл
Если элСписка.Значение = Ссылка Тогда
СЗ.Добавить(элСписка.Значение, элСписка.Представление, элСписка.Пометка, элСписка.Картинка);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат СЗ;
КонецЕсли;
КонецФункции
{15} Высокая цикломатическая сложность: 20 {15} Не все части функции возвращают значение Орфографическая ошибка в однотипных: однотипных Орфографическая ошибка в автоупорядочивание: автоупорядочивание
УдалитьЗначениеИзМассива (БСП)
ПолучитьЗначениеРеквизитаПредмета (БСП)
Упорядочивание (сортировка) массива
УдалитьНепроверяемыеРеквизитыИзМассива (БСП)