Содержание:
1. Что такое массив в 1С 8? Задача сортировки массива в 1С
2. Описание метода сортировки массивов пузырьком
3. Методы сортировки с использованием встроенных типов данных
1. Что такое Массив в 1С 8? Задача сортировки массива в 1С
Для того чтобы рассмотреть сортировку массивов в 1С в первую очередь нужно понять, что собой представляет тип под названием массив.
Массив в 1С 8 является не чем иным как совокупностью упорядоченных данных разных типом. Под упорядочиваем мы понимаем то, что каждый новый объект в массиве имеет свой индекс, номер. Как примитивный пример каждый объект массива мы можем рассматривать как квартиру в многоквартирном доме, мы можем пройтись по всем квартирам и заглянуть в каждую и увидеть, что там есть, либо зная конкретный номер квартиры, зайти только в нее. Требуется также учитывать, что мы можем ранжировать данные(квартиры) в нужном нам порядке.
Задача сортировки массива в 1С зачастую является вещью тривиальной, ввиду того что используется повсеместно, однако собственных методов сортировки данный тип в среде 1С не получил. Однако мы можем использовать другие типы для правильной сортировки массива в 1С, не говоря еще о ручном методе сортировке массива.
2. Ручные методы сортировки массив
В программировании известны многие методы сортировки массивов данных, например такие, как:
· Сортировка массива пузырьком
· Шейкер сортировка
· Сортировка вставками
· Быстрая сортировка массива
· И т.д.
Рассмотрим для примера сортировку массива пузырьком на встроенном языке 1С:
Суть данной сортировки заключается в попарном сравнении двух последующих элементов массива, больший элемент устанавливается в 1 из 2 ячеек, исходя из направления сортировки. Если от большего к меньшему - в левую, иначе наоборот. Алгоритм работает до тех пор, пока будут идти перестановки.
Итак, что нам нужно для решения задачи:
· Массив для сортировки
· Итератор - отображает индекс массива 1С
· ИтераторПросмотров - количество просмотров массива
Создаем массив в 1С и заполняем его:
МассивОбработки = новый Массив;
МассивОбработки.добавить(5);
МассивОбработки.добавить(27);
МассивОбработки.добавить(9);
МассивОбработки.добавить(8);
МассивОбработки.добавить(23);
Далее создаем двойной цикл обработки:
Для ИтераторПросмотров = 0 По МассивОбработки.ВГраница
Для Итератор = 0 По МассивОбработки.ВГраница()- 1 Цикл
Если МассивОбработки [i] > МассивОбработки [i + 1] Тогда
ЭлементЗаменты = МассивОбработки [i];
МассивОбработки [i] = МассивОбработки [i + 1];
МассивОбработки [i + 1] = ЭлементЗаменты;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Вот и весь листинг. Код весьма прост, однако имеет весьма эффективную скорость.
3. Методы сортировки с использованием встроенных типов данных
Теперь давайте рассмотрим методы сортировки, которые мы можем организовать в среде 1С используя типы данных.
К таким типам данных, в которые мы можем загрузить массив и имеют встроенный механизм сортировки относятся
· Таблица значений в 1С 8
· Список значений в 1С 8
Рассмотрим сортировку используя готовый массив из прошлого примера и таблицу значений:
МассивОбработки = новый Массив;
МассивОбработки.добавить(5);
МассивОбработки.добавить(27);
МассивОбработки.добавить(9);
МассивОбработки.добавить(8);
МассивОбработки.добавить(23);
Далее нам нужно создать таблицу значений в 1С 8 и добавить колонку:
ТаблицаСортировки = Новый ТаблицаЗначений;
ТаблицаСортировки.Колонки.Добавить("Числа");
Далее нам нужно загрузить массив в созданную колонку
ТаблицаСортировки.ЗагрузитьКолонку(МассивОбработки, " Числа ");
Далее сделаем сортировку с помощью метода сортировать, в параметр укажем имя колонки и через пробел -порядок сортировки. Под порядком сортировки подразумевается направление сортировки-по возрастанию(Возр) или по убыванию(Убыв).
ТаблицаСортировки.Сортировать("Числа Возр");
Таблица отсортирована. Далее нам нужно преобразовать колонку таблицы значений обратно в массив. Для этого есть встроенный метод ВыгрузитьКолонку с параметром имени колонки.
Массив = ТаблицаСортировки.ВыгрузитьКолонку("Числа");
Выгрузка в массив произошла успешно.
Аналогично мы можем рассмотреть сортировку используя список значений в 1С 8:
СписокСортировки = Новый СписокЗначений;
СписокСортировки.ЗагрузитьЗначения(МассивОбработки);
СписокСортировки.СортироватьПоЗначению(НаправлениеСортировки.Возр);
МассивОбработки = СписокСортировки.ВыгрузитьЗначения();
Специалист компании «Кодерлайн»
Сергей Кулажевский