Массив в 1С

Массив — это коллекция элементов. Элементы массива могут быть разного типа.1С предоставляет класс Массив для работы с массивами. Массив можно передавать с клиента на сервер и обратно. В основном массивы используются для работы с временными наборами данных.

Создание массива

Для создания массива в 1С используется ключевое слово Новый после которого указывается имя класса.

В переменной Массив будет находиться массив.

В конструкторе массива можно указать количество элементов:

Сразу после создания все элементы массива будут равны Неопределено. При этом размер массива может быть изменен, при добавлении в него новых элементов.

Для добавления элементов используется метод Добавить():

Индекс массива

Чтобы обратиться к элементам массива можно использовать индексы. Индекс — это номер элемента в массиве. Нумерация элементов начинается с 0. Чтобы обратиться к первому элементу нужно использовать индекс 0, а чтобы обратиться к пятому элементу — индекс 4. При этом, если мы обратимся к несуществующему элементу массива, то будет ошибка «Индекс находится за границами массива».

Перебор массива

С помощью цикла Для Каждого:

Через цикл Для Каждого нельзя изменить значения массива, меняться будет переменная ЭлементМассива.

Перебрать массив можно и через цикл Для. В этом случае через индекс можно изменять значения массива:

Основные методы для работы с массивами

  • Добавить(<Значение>) — добавляет значение в конец массива, количество элементов увеличивается на 1.
  • Вставить(<Индекс>, <Значение>) — вставляет значение в массив в элемент с индексом <Индекс>, если индекс больше чем количество элементов, то массив будет дополнен нужным количеством элементов со значением Неопределено.
  • Установить(<Индекс>, <Значение>) — устанавливает значение в массив в элемент с индексом <Индекс>, можно так: Массив[0] = «Первый»;
  • Количество() — вернет количество элементов в массиве.
  • ВГраница() — вернет максимальный индекс в массиве, если в массиве 0 элементов, то вернет -1. Равен Количество() — 1
  • Получить(<Индекс>) — получает значение по индексу, можно так: Значение = Массив[0];
  • Удалить(<Индекс>) — удаляет значение по индексу.
  • Очистить() — удаляет все элементы из массива.
  • Найти(<Значение>) — поиск в массиве, если найдено то вернется индекс элемента, иначе Неопределено. При поиске элемента в массиве будет выполняться перебор всех элементов массива, поэтому время поиска пропорционально размеру массива (чем больше элементов, тем медленнее ищет)

Многомерные массивы

Многомерный массив в 1С — это массив массивов:

В переменной МногомерныйМассив будет 2 элемента типа массив, каждый из которых содержит по 2 элемента типа число.

Через индексы можно изменять и читать значения многомерного массива:

Через конструктор можно сразу создать многомерный массив:

Примеры работы с массивами

Как добавить элементы в массив

Как изменить значение элемента массива

Как узнать сколько элементов в массиве

Как узнать максимальный индекс массива

Как удалить все элементы из массива

Как найти значение в массиве

Сортировка массива

Сортировка выбором

Сортировка пузырьком

Быстрая сортировка

Фиксированный массив

Фиксированный массив — это тот же самый массив, но у которого нельзя изменить ни количество элементов, ни значения массива. Создается 1 раз и больше не может быть изменен. Может быть создан на основании обычного массива:

Если попытаться изменить элемент фиксированного массива, то будет ошибка «Индексированное значение доступно только для чтения».

На основании фиксированного массива можно создать обычный массив:

У фиксированного массива есть следующие методы:

  • Количество()
  • ВГраница()
  • Получить(<Индекс>), можно так: Значение = Массив[0];
  • Найти(<Значение>)

которые выполняют те же действия, что и у обычного массива.

Правильное удаление элементов из середины массива

При удалении элемента из середины массива, массив как бы «смыкается». Если перебирать все элементы массива в цикле и удалять по какому-то условию, то после удаления элемента, следующий элемент будет пропущен. Поэтому правильно перебирать массив с конца:

Данный код удаляет из массива все элементы, которые равны 5.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями: