Инструменты пользователя

Инструменты сайта


1c:коллекции:массив

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
1c:коллекции:массив [2016/10/18 18:06]
alex
1c:коллекции:массив [2016/11/18 18:01] (текущий)
admin старая версия восстановлена (2016/10/26 11:35)
Строка 3: Строка 3:
 <code 1c>Массив = Новый Массив;</code> <code 1c>Массив = Новый Массив;</code>
 Или можно сразу указать количество элементов в массиве ''Массив(4)'', или сделать двухмерный массив ''Массив(3, 2)'', или трехмерный, или … ну вообщем и тд. Или можно сразу указать количество элементов в массиве ''Массив(4)'', или сделать двухмерный массив ''Массив(3, 2)'', или трехмерный, или … ну вообщем и тд.
-Если при создании массива указать  количество элементов, то массив будет создан сразу заполненным данными с типом данных ''Неопределенно''. В массиве могут храниться данные произвольного типа. После создания, с ними можно производить любые операции: добавлять, удалять или изменять элементы. Например:+Если при создании массива указать  количество элементов, то массив будет создан сразу заполненным данными с типом данных ''Неопределенно''. В массиве могут храниться данные произвольного типа. После создания, с ним можно производить любые операции: добавлять, удалять или изменять элементы. Например:
 <code 1c> <code 1c>
 Массив = Новый Массив(3); Массив = Новый Массив(3);
Строка 10: Строка 10:
 </code> </code>
 Работа с многомерным массивом, происходит следующим образом: Работа с многомерным массивом, происходит следующим образом:
-<code 1c>Массив[ИндексПервогоИзмерения][ИндексВторогоИзмерения]</code> массив может быть двух, трех мерным и ид.  То есть  в целом можно организовать и таблицу значений, строки это будет первое измерение, колонки второе.+<code 1c>Массив[ИндексПервогоИзмерения][ИндексВторогоИзмерения]</code> 
 +Массив может быть двух, трех мерным и ид.  То есть  в целом можно организовать и [[1c:коллекции:таблица_значений|таблицу значений]], строки это будет первое измерение, колонки второе.
 Для того, что бы самостоятельно определить структуру многомерного массива, необходим следующий код: Для того, что бы самостоятельно определить структуру многомерного массива, необходим следующий код:
 <code 1c> <code 1c>
Строка 27: Строка 28:
 | Строка1          | 1                   | 2       | | Строка1          | 1                   | 2       |
 | Строка 2         | 6                   | 7       | | Строка 2         | 6                   | 7       |
 +
 +Сложные объекты в массиве хранятся по ссылке:
 +<code 1c>
 +Массив = Новый Массив;
 +СтрокаМассива = Новый Структура("ФИО, ДатаРождения");
 +СтрокаМассива.ФИО = "Иванов Иван Иванович";
 +СтрокаМассива.ДатаРождения = Дата(2000, 05, 07);
 +Массив.Добавить(СтрокаМассива);
 +СтрокаМассива.ФИО = "Петров Пётр Петрович";
 +СтрокаМассива.ДатаРождения = Дата(1990, 04, 06);
 +Массив.Добавить(СтрокаМассива);
 +
 +Сообщить(Массив[1].ФИО);     // Выведет "Петров Пётр Петрович", как и ожидалось
 +Сообщить(Массив[0].ФИО);     // Тоже выведет "Петров Пётр Петрович" потому что
 +                             // элементы массива ссылаются на одну и ту же структуру
 +
 +Массив[0].ФИО = "Сидоров Сидор Сидорович";
 +Сообщить(СтрокаМассива.ФИО); // Получаем "Сидоров Сидор Сидорович", ведь
 +                             // меняется сама структура
 +
 +СтрокаМассива = Новый Структура("ФИО, ДатаРождения");
 +СтрокаМассива.ФИО = "Иванов Иван Иванович";
 +СтрокаМассива.ДатаРождения = Дата(2000, 05, 07);
 +Массив[0] = СтрокаМассива;
 +
 +Сообщить(Массив[1].ФИО);     // По прежнему выведет "Сидоров Сидор Сидорович"
 +Сообщить(Массив[0].ФИО);     // А вот сейчас здесь "Иванов Иван Иванович".
 +</code>
 +
 +Аналог [[1c:коллекции:таблица_значений|таблицы значений]] можно получить не только с помощью двумерного массива, но и с помощью массива структур. Такая конструкция имеет практическое значение: Таблица значений доступна только на сервере. И, в случае необходимости передать табличные данные с сервера на клиент, наилучшим вариантом будет как раз массив структур.
  
 Для обхода массива можно использовать следующий код:  Для обхода массива можно использовать следующий код: 
Строка 38: Строка 69:
 ===== Методы ===== ===== Методы =====
 ^ Наименование ^ Назначение ^ ^ Наименование ^ Назначение ^
-| [[1c:коллекции:массив:вграница|ВГраница]] | Возвращает индекс последнего элемента | +| [[1c:коллекции:массив:вграница|ВГраница]] | Возвращает индекс последнего элемента | 
-| [[1c:коллекции:массив:вставить|Вставить]] | Вставляет значение по указанному индексу | +| [[1c:коллекции:массив:вставить|Bставить]] | Вставляет значение по указанному индексу | 
-| [[1c:коллекции:массив:добавить|Добавить]] | Добавляет значение в конец массива | +| [[1c:коллекции:массив:добавить|Добавить]] | Добавляет значение в конец массива | 
-| [[1c:коллекции:массив:количество|Количество]] | Возвращает количество элементов в массиве| +| [[1c:коллекции:массив:количество|Количество]] | Возвращает количество элементов в массиве| 
-| [[1c:коллекции:массив:найти|Найти]] | Возвращает индекс найденного значения в массиве | +| [[1c:коллекции:массив:найти|Найти]] | Возвращает индекс найденного значения в массиве | 
-| [[1c:коллекции:массив:очистить|Очистить]] | Удаляет все значения в массиве | +| [[1c:коллекции:массив:очистить|Очистить]] | Удаляет все значения в массиве | 
-| [[1c:коллекции:массив:получить|Получить]] | Получает значение по указанному индексу| +| [[1c:коллекции:массив:получить|Получить]] | Получает значение по указанному индексу| 
-| [[1c:коллекции:массив:удалить|Удалить]] | Удаляет значение с указанным индексом | +| [[1c:коллекции:массив:удалить|Удалить]] | Удаляет значение с указанным индексом | 
-| [[1c:коллекции:массив:установить|Установить]] | Устанавливает значения для элемента с указанным индексом|+| [[1c:коллекции:массив:установить|Установить]] | Устанавливает значения для элемента с указанным индексом|
  
 +см. также
 +{{backlinks>.}}
1c/коллекции/массив.1476803179.txt.gz · Последнее изменение: 2016/10/18 18:06 — alex