02.09.2022 Сергей Кулажевский 20084
Сортировка массивов в 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С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

Отрасль:
Транспорт

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

Построение единого информационного пространства финансовой службы;
Учет ...

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

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

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

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

Оптимизация производительности системы
ЗАО ИД «Комсомольская правда»

Отрасль:
Медиа

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

- Оптимизация производительности системы, в том числе сервера Postgre. ...

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

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

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

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

ООО "СЖД"
ООО "СЖД"

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

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

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

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

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и И...

Апгрейд 1С:Бухгалтерия 8 ПРОФ (USB) до версии 1С:Бухгалтерия 8 КОРП (USB)
ООО «Ява Строй»

Отрасль:
Строительство

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

- Создание чистых конфигураций. Внесение изменений в БД ЗУП и новая расчетна...

ООО «Солви Пак»
ООО «Солви Пак»

Отрасль:
Торговля. Производство печати на рулонных материалах

Внедренное типовое решение:
1С:CRM+1С:Комплексная автоматизация

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

МИР ХОББИ
МИР ХОББИ

Отрасль:
Торговля. Интернет магазин

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

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

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

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

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

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый ...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

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

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

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетнос...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

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

- Разработка подсистемы оперативного учета транзакций...

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

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

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

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