Цели и задачи изучения темы
Пятая тема содержит сведения об универсальных коллекциях значений — массивах, таблицах значений, списках значений, дереве значений, структурах и соответствиях.
Коллекция представляет собой не хранящуюся в базе данных совокупность значений или объектов — элементов коллекции. В 1С:Предприятии 8.0 работа с коллекциями была унифицирована: добавление, удаление и обход элементов всех коллекций производится однотипным образом.
Некоторые коллекции называются универсальными, потому что разработчик может их создавать средствами встроенного языка для решения своих задач.
К универсальным коллекциям значений относятся следующие:
· массив,
· список значений,
· таблица значений,
· дерево значений,
· структура,
· соответствие.
Общее у этих объектов то, что они содержат несколько значений (элементов коллекции), позволяют добавлять и удалять значения. Они не хранятся в базе данных, а используются для работы с временными наборами данных для вспомогательной обработки, группировки и анализа информации.
Все эти объекты создаются средствами встроенного языка с помощью ключевого слова Новый. Массив, структура и соответствие имеют конструкторы с параметрами, которые определяют начальное состояние объекта, например, количество элементов в массиве.
Для универсальных коллекций значений доступен обход элементов с помощью конструкции «Для Каждого». Также возможно обращение к элементу с помощью оператора [...] (квадратные скобки), куда в качестве аргумента обычно передается индекс элемента, а для структуры или соответствия — ключ элемента коллекции.
|
|
В системе 1С:Предприятие 8.0 есть и другие коллекции, которые являются свойствами объектов. Такие коллекции называются специализированными или коллекциями-свойствами. Их нельзя создать с помощью ключевого слова Новый, а можно только использовать.
Например, свойство Колонки элемента управления ТабличноеПоле представляет собой коллекцию колонок. Разработчик может средствами встроенного языка добавлять или удалять колонки, менять их порядок, изменять заголовок и т.д. Если коллекция-свойство является фиксированной, то не допускается редактировать список ее элементов.
Ниже будут рассмотрены только универсальные коллекции значений.
Массив
Массивы представляют собой пронумерованную совокупность значений любого типа. К элементу массива можно обращаться по индексу через оператор [...], причем индекс первого элемента равен 0. В качестве значений элементов массива могут быть другие массивы, что, в частности, позволяет организовывать многомерные массивы.
|
|
Продемонстрируем на примерах возможности работы с массивами.
Создание нового массива производится следующим образом:
Маc = Новый Массив; //одномерный массив без элементов
Мас2 = Новый Массив(10); //одномерный массив из 10 элементов
Мас3 = Новый Массив(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 (минус единица).
· Количество -Возвращает количество элементов массива.
· Добавить -Добавляет элемент в конец массива.
· Вставить -Вставляет значение в массив по указанному индексу.
· Удалить -Удаляет значение из массива по указанному индексу.
· Очистить -Удаляет все значения из массива.
В 1С:Предприятии 8.0 в массив можно загружать данные или выгружать данные из него в другие коллекции значений. Это реализуется с помощью соответствующих методов других коллекций значений. Например, объект СписокЗначений имеет методы ВыгрузитьЗначения и ЗагрузитьЗначения, которые работают с массивом. Аналогично действуют методы ВыгрузитьКолонку и ЗагрузитьКолонку объекта ТаблицаЗначений.
Дата добавления: 2015-12-20; просмотров: 19; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!