Массив в платформе 1С 8.3 это самая простая универсальная коллекция значений.
Что такое Массив?
Массив в языке программирования 1С — это коллекция элементов, следующих друг за другом, которые могут быть доступны с помощью индекса массива. Элементы могут быть любого типа, в том числе и типа Массив. У каждого элемента в массиве есть уникальный номер, который называют Индексом. Посредством индекса можно получить доступ к данному элементу.
Все элементы в массиве упорядочены, т.е. первый элемент имеет индекс, равный нулю, второй — одному, и так далее.
Создать массив можно при помощи конструктора Новый
Новый Массив (<КоличествоЭлементов1>…<КоличествоЭлементовN>)
Где:
«КоличествоЭлементов» — необязательный параметр. Он может быть один — тогда мы будем иметь одномерный массив, а также их может быть несколько — тогда мы имеем многомерный массив.
Например,
Массив1 = Новый Массив(10);
— Одномерный массив из 10 элементов.
А:
Массив1 = Новый Массив(3,2);
Двумерный массив из 6 элементов (три строки, два столбца).
Или
Массив1 = Новый Массив();
Массив, не имеющий ни одного элемента, — пустой массив.
В отличие от таблиц значений 1С, работать с массивами можно как в режим тонкого клиента, так и в режим толстого клиента.
Имейте в виду, что когда Вы создадите не пустой массив (одномерный или многомерный), его элементы уже будут существовать, но с не заполненными значениями. Если Вы посмотрите на данный массив в отладчике, то увидите напротив каждого элемента тип Неопределено.
Обращаться к элементу массива можно посредством индекса. Делается это с помощью оператора «квадратные скобки».
Массив1[0] = "Первый"; Массив1[1] = 2;
Как видите, элементы массива могут иметь разные типы ( в том числе ссылочные).
При помощи индекса и квадратных скобок можно как задать какой-то элемент массива, так и прочитать этот элемент.
Сообщить("Массив1[0]= " + Массив1[0] + ", Массив[1] = " + Массив1[1]);
Индекс внутри скобок не должен превышать общего количества элементов минус один (т.к. индекс начинается с нуля). Если мы напишем такой код:
Массив1 = Новый Массив(5); Массив1[5] = 10;
То при его выполнении, возникнет ошибка «Индекс находится за границами массива»
Хоть мы и указали у конструктора массивов в скобках значение 5, но обращаться может только до 4 индекса, поскольку нумерация индексов начинается с нуля.
Перебор элементов массива
Перебрать все элементы массива можно двумя способами. Первый способ – с помощью так называемого «китайского кода», когда присваиваем каждому элементу массива нужное значение. Иногда это бывает необходимо.
Сообщить(Массив[0]); Сообщить(Массив[2]); Сообщить(Массив[1]);
Но чаще необходимо прочитать каждый элемент массива в цикле. Для этого в теле цикла нужно обойти индексы от первого до последнего. Сделать это можно при помощи цикла Для…Цикл.
Массив1 = Новый Массив(3); Массив1[0] = 10; Массив1[1] = 3; Массив1[2] = 7; Для н = 0 по 2 Цикл Сообщить(Массив1[н]); КонецЦикла;
Или с помощью цикла Для каждого … Цикл
Для Каждого ЭлМассив из Массив1 Цикл Сообщить(ЭлМассив); КонецЦикла;
Где в переменной ЭлМассив для каждой итерации содержится соответствующее значение элемента массива.
Количество элементов массива
Узнать количество элементов массива можно двумя способами. С помощью метода Количество() и метода ВГраница(). Метод Количество() возвращает количество элементов массива (т.е. то число, что задается в скобках конструктора массива), а метод ВГраница() самый максимальный индекс элемента массива или граница массива. В этом случае перебор элементов массива в цикле возможен двумя способами.
Для н = 0 по Массив1.Количество() — 1 Цикл Сообщить(Массив1[н]); КонецЦикла;
И
Для н = 0 по Массив1.ВГраница() Цикл Сообщить(Массив1[н]); КонецЦикла;
Второй способ считается более правильным.
Добавление элементов массива
Добавить элемент массива можно с помощью методов Добавить() и Вставить(). Первый метод добавляет элемент в конец массива, а второй вставляет элемент в нужный индекс массива.
Массив1 = Новый Массив(); Массив1.Добавить(10); Массив1.Вставить(0,20); Массив1.Добавить(5);
В этом коде мы создали пустой массив, потом добавили элемент (он же первый), потом вставили на нулевой индекс элемент, а потом добавили. Должен получиться следующий результат.
Многомерный массив
Многомерным массивом в языке программирования 1С называется массив, элементами которого являются массивы. Если одномерный массив создавался посредством конструктора с одним параметром, то в многомерном массиве может быть два и больше параметров.
МассивМн1 = Массив(3,2,5);
В этом примере мы создали массив, у которого будет три элемента, каждый из которых будет массивом, содержащим по два массива, в каждом из которых будет пять элементов.
Например, создадим двумерный массив:
МассивМн1 = Новый Массив(3,2); Для н = 0 По МассивМн1.ВГраница() цикл МассивВнутренний = МассивМн1[н]; Для к = 0 по МассивВнутренний.ВГраница() цикл МассивВнутренний[к] = Строка(н+1)+ "." + Строка(к+1); КонецЦикла; КонецЦикла;
А вывод в окно сообщений следующим образом:
Для Каждого ЭлМассиваВнеш из МассивМн1 цикл СтрокаВывода = ""; Для Каждого ЭлемМассиваВнутр из ЭлМассиваВнеш цикл СтрокаВывода = СтрокаВывода + " " + ЭлемМассиваВнутр; КонецЦикла; Сообщить(СокрЛ(СтрокаВывода)); КонецЦикла;
Статьи о других универсальных коллекциях значений в 1С
Более подробно о работе с массивами и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009