Сортировка дерева значений с изменением направления
Инфостарт Александр Цегельников
&НаКлиентеНаСервереБезКонтекста
Процедура СортироватьДанныеФормыДерево(КоллекцияСортировки, КолонкаСортировки, ВключатьПодчиненные = Ложь, ПоВозрастанию = Истина)
КоллекцияСтрок = КоллекцияСортировки.ПолучитьЭлементы();
СортироватьДанныеФормыКоллекция(КоллекцияСтрок, КолонкаСортировки, ПоВозрастанию);
Если ВключатьПодчиненные Тогда
Для Каждого ТекущаяСтрока Из КоллекцияСтрок Цикл
СортироватьДанныеФормыДерево(ТекущаяСтрока, КолонкаСортировки, ВключатьПодчиненные, ПоВозрастанию);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура СортироватьДанныеФормыКоллекция(КоллекцияСтрок, КолонкаСортировки, ПоВозрастанию = Истина)
ПараметрыЗначений = Новый Соответствие;
СортированныеЗначения = Новый СписокЗначений;
Для Каждого ТекущаяСтрока Из КоллекцияСтрок Цикл
ТекущееЗначение = ТекущаяСтрока[КолонкаСортировки];
ПараметрыЗначения = ПараметрыЗначений.Получить(ТекущееЗначение);
Если ПараметрыЗначения = Неопределено Тогда
ПараметрыЗначения = Новый Массив;
ПараметрыЗначений.Вставить(ТекущееЗначение, ПараметрыЗначения);
СортированныеЗначения.Добавить(ТекущееЗначение);
КонецЕсли;
ПараметрыЗначения.Добавить(ТекущаяСтрока);
КонецЦикла;
СортированныеЗначения.СортироватьПоЗначению(?(ПоВозрастанию, НаправлениеСортировки.Возр, НаправлениеСортировки.Убыв));
НовыйИндекс = 0;
Для Каждого ТекущееЗначение Из СортированныеЗначения Цикл
МассивСтрок = ПараметрыЗначений.Получить(ТекущееЗначение.Значение);
Для Каждого ТекущаяСтрока Из МассивСтрок Цикл
ТекущийИндекс = КоллекцияСтрок.Индекс(ТекущаяСтрока);
ШагСдвига = НовыйИндекс - ТекущийИндекс;
Если НЕ ШагСдвига = 0 Тогда
КоллекцияСтрок.Сдвинуть(ТекущийИндекс, ШагСдвига);
КонецЕсли;
НовыйИндекс = НовыйИндекс + 1;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
НайтиСтрокуВДанныхФормыДерево (БСП)
ИнтерактивноеИзменениеВыгрузки_СформироватьДеревоЗначений (БСП)
Интерактивный отбор дерева значений
Вывод данных СКД в таблицу значений (дерево)
ДеревоПодсистемИспользованиеПриИзменении (БСП)
ДеревоПодсистемВажностьПриИзменении (БСП)
ДеревоЗначений вывод на управляемую форму
Создание схемы компоновки данных программно
Функция копирования колонок в таблицу или дерево значений (конструктор таблиц и деревьев значений)