Лекция 4 (ЦОО_ПОЭИС)
Глава 4. Универсальные коллекции значений
Универсальные коллекции значений предназначены для хранения временных наборов данных в течение сеанса работы пользователя. Они нe являются объектами информационной базы и служат для вспомогательного сбора, группировки, анализа и обработки информации
4.1. Массивы
Массивы представляют собой пронумерованную совокупность значений любого типа. К элементу массива можно обращаться по индексу через оператор [...], причем индекс первого элемента равен 0. В качестве значений элементов массива могут быть другие массивы, что, в частности, позволяет организовывать многомерные массивы.
Продемонстрируем на примерах возможности работы с массивами:
Создание нового массива производится следующим образом:
Мас = Новый Массив; //одномерный массив без элементов
Мас2 = Новый Массив(10); //одномерный массив из 10 элементов
МасЗ - Новый Массив(4,5); //массив с двумя измерениями
При указании нескольких параметров конструктора фактически создается массив, элементами которого являются другие массивы, что является аналогом многомерного массива.
Для добавления и удаления элементов массива можно использовать методы объекта Массив:
Маc = Новый Массив; //одномерный массив без элементов
Маc.Добавить("Иванов"); //элемент будет иметь индекс 0
Маc.Добавить("Петров"); //индекс 1
Маc.Добавить("Сидоров"); //индекс 2
//после вставки нового элемента Иванов и Петров будут сдвинуты ниже
Мас2.Вставить(0,"Сидоров");
//удаляем Сидорова (Иванов и Петров сдвигаются обратно)
Мас2.Удалить(0);
Мас2 - Новый Массив(4,5); //массив с двумя измерениями
Мас2[0][0] = "Иванов";
Мас2[0][1] = "Петров";
//после вставки нового элемента Иванов и Петров будут сдвинуты ниже
Мас2[0].Вставить(0,"Сидоров");
//следующий элемент будет относиться ко 2-му измерению
//и будет являться 6-м (индекс = 5)
//при создании массива во 2-м измерении
//было создано 5 элементов, имеющих значение Неопределено
Мас2[1].Добавить("Петров");
Перебор элементов массива возможен с использованием оператора [...] или цикла «Для Каждого»:
//1-й вариант
Для Каждого эл Из Мас Цикл
Сообщить(эл);
КонецЦикла;
//2-й вариант
Для н = 0 По Мас.ВГраница() Цикл
Сообщить(Мас[н]);
КонецЦикла;
У объекта Массив есть следующие методы:
ВГраница
Возвращает наибольший индекс в массиве, равный количество элементов минус 1. Если количество элементов массива равно 0, возвращается -1 (минус единица).
Количество
Возвращает количество элементов массива.
Добавить
Добавляет элемент в конец массива.
Вставить
Вставляет значение в массив по указанному индексу.
Удалить
Удаляет значение из массива по указанному индексу.
Очистить
Удаляет все значения из массива.
В 1C:Предприятии 8 в массив можно загружать данные или выгружать данные из него в другие коллекции значений. Это реализуется с помощью соответствующих методов других коллекций значений. Например, объект СписокЗначений имеет методы ВыгрузитьЗначения и ЗагрузитьЗначения, которые работают с массивом. Аналогично действуют методы ВыгрузитьКолонку и ЗагрузитьКолонку объекта ТаблицаЗначений.
