====== Массив ====== Массивы используются для неупорядоченного хранения наборов данных. Массив создается с помощью метода Новый() как уже отмечалось ранее. Массив = Новый Массив; Или можно сразу указать количество элементов в массиве ''Массив(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>.}}