02.09.2022 Сергей Кулажевский 22585
Сортировка массивов в 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С:ERP Управление предприятием 2.1

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

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Ра...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

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

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

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

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Рег...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

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

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

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

Отрасль:
Нефтесервис

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конф...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

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

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование п...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

Внедренное типовое решение:
Платформа 1С:Предприятие 8

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

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

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

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

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

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

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:ТОИР Управление ремонтами и обслуживанием оборудования

Мониторинг и анализ ключевых показателей деятельности предприятия Управле...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

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

Внедренное типовое решение:
1С:Бухгалтерия КОРП

Бухгалтерский учет Производственные операции Регламентированная отчетнос...

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

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

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

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