02.09.2022 Сергей Кулажевский 17206
Сортировка массивов в 1С

Содержание:

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:


СписокСортировки = Новый СписокЗначений;

СписокСортировки.ЗагрузитьЗначения(МассивОбработки);

СписокСортировки.СортироватьПоЗначению(НаправлениеСортировки.Возр);

МассивОбработки = СписокСортировки.ВыгрузитьЗначения();

 

Специалист компании «Кодерлайн»

Сергей Кулажевский

Наши проекты

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление зак...

ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"
ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"

Отрасль:
Деятельность больничных организаций

Внедренное типовое решение:
БИТ:Управление медицинским центром 8

- Управление отношениями с клиентами (CRM)
- Делопроизводство
- Ведение но...

Внедрение блока расчета себестоимости РАУЗ в 1С:УПП 8
ООО «Пелигрин Матен»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление производственным предприятием

– Оформление заказов покупателей;
– Взаиморасчеты с покупателями;
– О...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

Внедренное типовое решение:
1С:Управление производственным предприятием

Автоматизация бизнес-процессов...

ООО «Вистеон Автоприбор Электроникс»
ООО «Вистеон Автоприбор Электроникс»

Отрасль:

Внедренное типовое решение:
1C:Управление производственным предприятием

- Управленческий учет; - Расчет зарплаты; - Логистика адресного склада; - Учет ...

Группа компаний ТМ «Дружба народов»
Группа компаний ТМ «Дружба народов»

Отрасль:
Пищевая промышленность

Внедренное типовое решение:
1С:ERP Управление предприятием 2.1

- Переход на новый релиз 2.1 программы «1С:ERP Управление предприятием»
- Разра...

Группа компаний АО «Киномакс»
Группа компаний АО «Киномакс»

Отрасль:
Культура, шоу-бизнес

Внедренное типовое решение:
БИТ.Финанс

- Разработка Положения о Казначействе группы компаний
- Разработка Положе...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Управление производственным предприятием

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

ООО "ТК "Сытый Дом-НН"
ООО "ТК "Сытый Дом-НН"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Управление торговлей 8

Взаиморасчеты с покупателями
Оптовая торговля
Управление складскими за...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление скла...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение