Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Это старая версия документа!
Массивы используются для неупорядоченного хранения наборов данных. Массив создается с помощью метода Новый() как уже отмечалось ранее.
Массив = Новый Массив;
Или можно сразу указать количество элементов в массиве Массив(4)
, или сделать двухмерный массив Массив(3, 2)
, или трехмерный, или … ну вообщем и тд.
Если при создании массива указать количество элементов, то массив будет создан сразу заполненным данными с типом данных Неопределенно
. В массиве могут храниться данные произвольного типа. После создания, с ним можно производить любые операции: добавлять, удалять или изменять элементы. Например:
Массив = Новый Массив(3); Массив[1] = 100; // до операции в Массив[1] было Неопределено, // теперь это значение было заменено на число 100
Работа с многомерным массивом, происходит следующим образом:
Массив[ИндексПервогоИзмерения][ИндексВторогоИзмерения]
Массив может быть двух, трех мерным и ид. То есть в целом можно организовать и таблицу значений, строки это будет первое измерение, колонки второе. Для того, что бы самостоятельно определить структуру многомерного массива, необходим следующий код: <pre class="brush:1c"> Массив = Новый Массив; НоваяСтрокаМассива = Новый Массив; НоваяСтрокаМассива.Добавить(1); НоваяСтрокаМассива.Добавить(2); Массив.Добавить(НоваяСтрокаМассива); НоваяСтрокаМассива = Новый Массив; НоваяСтрокаМассива.Добавить(6); НоваяСтрокаМассива.Добавить(7); Массив.Добавить(НоваяСтрокаМассива); </pre> В результате получится таблица из двух колонок.
Строка | Колонка1 | Колонка2 |
---|---|---|
Строка1 | 1 | 2 |
Строка 2 | 6 | 7 |
Сложные объекты в массиве хранятся по ссылке:
Массив = Новый Массив; СтрокаМассива = Новый Структура("ФИО, ДатаРождения"); СтрокаМассива.ФИО = "Иванов Иван Иванович"; СтрокаМассива.ДатаРождения = Дата(2000, 05, 07); Массив.Добавить(СтрокаМассива); СтрокаМассива.ФИО = "Петров Пётр Петрович"; СтрокаМассива.ДатаРождения = Дата(1990, 04, 06); Массив.Добавить(СтрокаМассива); Сообщить(Массив[1].ФИО); // Выведет "Петров Пётр Петрович", как и ожидалось Сообщить(Массив[0].ФИО); // Тоже выведет "Петров Пётр Петрович" потому что // элементы массива ссылаются на одну и ту же структуру Массив[0].ФИО = "Сидоров Сидор Сидорович"; Сообщить(СтрокаМассива.ФИО); // Получаем "Сидоров Сидор Сидорович", ведь // меняется сама структура СтрокаМассива = Новый Структура("ФИО, ДатаРождения"); СтрокаМассива.ФИО = "Иванов Иван Иванович"; СтрокаМассива.ДатаРождения = Дата(2000, 05, 07); Массив[0] = СтрокаМассива; Сообщить(Массив[1].ФИО); // По прежнему выведет "Сидоров Сидор Сидорович" Сообщить(Массив[0].ФИО); // А вот сейчас здесь "Иванов Иван Иванович".
Аналог таблицы значений можно получить не только с помощью двумерного массива, но и с помощью массива структур. Такая конструкция имеет практическое значение: Таблица значений доступна только на сервере. И, в случае необходимости передать табличные данные с сервера на клиент, наилучшим вариантом будет как раз массив структур.
Для обхода массива можно использовать следующий код:
Для каждого СтрокаМассива Из Массив Цикл Сообщить(СтрокаМассива); КонецЦикла
В целом для массива справедливы все моменты, которые справедливы для коллекций.
Наименование | Назначение |
---|---|
ВГраница | Возвращает индекс последнего элемента |
Bставить | Вставляет значение по указанному индексу |
Добавить | Добавляет значение в конец массива |
Количество | Возвращает количество элементов в массиве |
Найти | Возвращает индекс найденного значения в массиве |
Очистить | Удаляет все значения в массиве |
Получить | Получает значение по указанному индексу |
Удалить | Удаляет значение с указанным индексом |
Установить | Устанавливает значения для элемента с указанным индексом |
см. также