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