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

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


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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
1c:коллекции:массив [2016/10/18 15:21]
admin Добавил ссылки на методы исправил ошибку с лишней скобкой
1c:коллекции:массив [2016/11/18 18:01] (текущий)
admin старая версия восстановлена (2016/10/26 11:35)
Строка 2: Строка 2:
 Массивы используются для неупорядоченного хранения наборов данных. Массив создается с помощью метода Новый() как уже отмечалось ранее. Массивы используются для неупорядоченного хранения наборов данных. Массив создается с помощью метода Новый() как уже отмечалось ранее.
 <code 1c>Массив = Новый Массив;</code> <code 1c>Массив = Новый Массив;</code>
-Или можно сразу указать количество элементов в массиве ''Массив(4)'' или сделать двухмерный массив ''Массив(3, 2)'' или трехмерный  или … ну вообщем и тд. +Или можно сразу указать количество элементов в массиве ''Массив(4)''или сделать двухмерный массив ''Массив(3, 2)''или трехмерныйили … ну вообщем и тд. 
-Если при создании массива указать  количество элементов, то сразу будет массив будет создан сразу заполненным данными с типом данных ''Неопределенно'', в массиве могут хранить данные произвольного типа, после создания, с ними можно производить любые операциидобавлять, удалять или изменять элементы, например:+Если при создании массива указать  количество элементов, то массив будет создан сразу заполненным данными с типом данных ''Неопределенно''. В массиве могут храниться данные произвольного типа. После создания, с ним можно производить любые операциидобавлять, удалять или изменять элементы. Например:
 <code 1c> <code 1c>
 Массив = Новый Массив(3); Массив = Новый Массив(3);
-Массив[1] = 100до операции в Массив[1] было Неопределено, теперь это значение было заменено на число 100+Массив[1] = 100;       // до операции в Массив[1] было Неопределено, 
 +                       // теперь это значение было заменено на число 100
 </code> </code>
 Работа с многомерным массивом, происходит следующим образом: Работа с многомерным массивом, происходит следующим образом:
-<code 1c>Массив[ИндексПервогоИзмерения][ИндексВторогоИзмерения]</code> массив может быть двух, трех мерным и ид.  То есть  в целом можно организовать и таблицу значений, строки это будет первое измерение, колонки второе.+<code 1c>Массив[ИндексПервогоИзмерения][ИндексВторогоИзмерения]</code> 
 +Массив может быть двух, трех мерным и ид.  То есть  в целом можно организовать и [[1c:коллекции:таблица_значений|таблицу значений]], строки это будет первое измерение, колонки второе.
 Для того, что бы самостоятельно определить структуру многомерного массива, необходим следующий код: Для того, что бы самостоятельно определить структуру многомерного массива, необходим следующий код:
 <code 1c> <code 1c>
Строка 26: Строка 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:коллекции:таблица_значений|таблицы значений]] можно получить не только с помощью двумерного массива, но и с помощью массива структур. Такая конструкция имеет практическое значение: Таблица значений доступна только на сервере. И, в случае необходимости передать табличные данные с сервера на клиент, наилучшим вариантом будет как раз массив структур.
  
 Для обхода массива можно использовать следующий код:  Для обхода массива можно использовать следующий код: 
Строка 33: Строка 65:
 КонецЦикла КонецЦикла
 </code> </code>
-В целом для массива справедливы все моменты которые справедливы для коллекций.+В целом для массива справедливы все моментыкоторые справедливы для коллекций.
  
-===== Доступные методы ===== +===== Методы ===== 
-  [[1c:коллекции:​ВГраница|ВГраница]] +^ Наименование ^ Назначение ^ 
-  [[1c:коллекции:​Вставить|Вставить]] +[[1c:коллекции:массив:вграница|ВГраница]] | Возвращает индекс последнего элемента | 
-  [[1c:коллекции:​Добавить|Добавить]] +[[1c:коллекции:массив:вставить|Bставить]] | Вставляет значение по указанному индексу | 
-  [[1c:коллекции:​Количество|Количество]] +[[1c:коллекции:массив:добавить|Добавить]] | Добавляет значение в конец массива | 
-  [[1c:коллекции:​Найти|Найти]] +[[1c:коллекции:массив:количество|Количество]] | Возвращает количество элементов в массиве| 
-  [[1c:коллекции:​Очистить|Очистить]] +[[1c:коллекции:массив:найти|Найти]] | Возвращает индекс найденного значения в массиве | 
-  [[1c:коллекции:​Получить|Получить]] +[[1c:коллекции:массив:очистить|Очистить]] | Удаляет все значения в массиве | 
-  [[1c:коллекции:​Удалить|Удалить]] +[[1c:коллекции:массив:получить|Получить]] | Получает значение по указанному индексу| 
-  [[1c:коллекции:​Установить|Установить]]+[[1c:коллекции:массив:удалить|Удалить]] | Удаляет значение с указанным индексом | 
 +[[1c:коллекции:массив:установить|Установить]] | Устанавливает значения для элемента с указанным индексом|
  
 +см. также
 +{{backlinks>.}}
1c/коллекции/массив.1476793274.txt.gz · Последнее изменение: 2016/10/18 15:21 — admin