Как создавать двумерные и многомерные массивы?
Встроенный язык платформы 1С:Предприятие 8.3 позволяет создавать двумерные и многомерные массивы. По своей сути — это массивы массивов (ведь никто не запрещал задавать в качестве элементов массива другие массивы). Давайте на примерах разберемся, как создавать и работать с такими многомерными массивами.
Двумерный массив
Ниже приведен пример программного создания двумерного массива размером M строк на N столбцов:
Такой массив может хранить M * N элементов. В нашем случае это 6. Для программного обращения к элементам двумерного массива необходимо указывать имя массива, а также два индекса: первый — индекс строки, второй — индекс колонки:
Для программного перебора элементов двумерного массива нам понадобится двойной цикл: первый по элементам основного массива и второй цикл по элементам вложенного массива:
Многомерный массив
На практике мне еще не приходилось сталкиваться с задачами, которые решаются с использованием многомерного массива. Хотя в теории программирования это одна из распространенных задач. Давайте рассмотрим работу с многомерными массивами на базе трехмерного массива. Итак, создание и инициализация массива:
Такой массив может хранить M * N * L элементов. В нашем случае это 30. Для программного обращения к элементам трехмерного массива необходимо указывать имя массива, а также три индекса: первый — индекс строки, второй — индекс колонки, третий — индекс глубины:
Для программного перебора элементов трехмерного массива нам понадобится тройной цикл: первый по элементам основного массива, второй — по элементам вложенного массива уровня N и третий — по элементам вложенного массива уровня L:
Думаю, изучив эти примеры вы сможете самостоятельно построить более сложные многомерные массивы. Желаю удачи!
Изучаем массивы в 1С
Массив в платформе 1С 8.3 это самая простая универсальная коллекция значений.
Что такое Массив?
Массив в языке программирования 1С — это коллекция элементов, следующих друг за другом, которые могут быть доступны с помощью индекса массива. Элементы могут быть любого типа, в том числе и типа Массив. У каждого элемента в массиве есть уникальный номер, который называют Индексом. Посредством индекса можно получить доступ к данному элементу.
Все элементы в массиве упорядочены, т.е. первый элемент имеет индекс, равный нулю, второй — одному, и так далее.
Создать массив можно при помощи конструктора Новый
Новый Массив (<КоличествоЭлементов1>…<КоличествоЭлементовN>)
«КоличествоЭлементов» — необязательный параметр. Он может быть один — тогда мы будем иметь одномерный массив, а также их может быть несколько — тогда мы имеем многомерный массив.
— Одномерный массив из 10 элементов.
Двумерный массив из 6 элементов (три строки, два столбца).
Массив, не имеющий ни одного элемента, — пустой массив.
В отличие от таблиц значений 1С, работать с массивами можно как в режим тонкого клиента, так и в режим толстого клиента.
Имейте в виду, что когда Вы создадите не пустой массив (одномерный или многомерный), его элементы уже будут существовать, но с не заполненными значениями. Если Вы посмотрите на данный массив в отладчике, то увидите напротив каждого элемента тип Неопределено.
Обращаться к элементу массива можно посредством индекса. Делается это с помощью оператора «квадратные скобки».
Как видите, элементы массива могут иметь разные типы ( в том числе ссылочные).
При помощи индекса и квадратных скобок можно как задать какой-то элемент массива, так и прочитать этот элемент.
Индекс внутри скобок не должен превышать общего количества элементов минус один (т.к. индекс начинается с нуля). Если мы напишем такой код:
То при его выполнении, возникнет ошибка «Индекс находится за границами массива»
Хоть мы и указали у конструктора массивов в скобках значение 5, но обращаться может только до 4 индекса, поскольку нумерация индексов начинается с нуля.
Перебор элементов массива
Перебрать все элементы массива можно двумя способами. Первый способ – с помощью так называемого «китайского кода», когда присваиваем каждому элементу массива нужное значение. Иногда это бывает необходимо.
Но чаще необходимо прочитать каждый элемент массива в цикле. Для этого в теле цикла нужно обойти индексы от первого до последнего. Сделать это можно при помощи цикла Для…Цикл.
Или с помощью цикла Для каждого … Цикл
Где в переменной ЭлМассив для каждой итерации содержится соответствующее значение элемента массива.
Количество элементов массива
Узнать количество элементов массива можно двумя способами. С помощью метода Количество() и метода ВГраница(). Метод Количество() возвращает количество элементов массива (т.е. то число, что задается в скобках конструктора массива), а метод ВГраница() самый максимальный индекс элемента массива или граница массива. В этом случае перебор элементов массива в цикле возможен двумя способами.
Второй способ считается более правильным.
Добавление элементов массива
Добавить элемент массива можно с помощью методов Добавить() и Вставить(). Первый метод добавляет элемент в конец массива, а второй вставляет элемент в нужный индекс массива.
В этом коде мы создали пустой массив, потом добавили элемент (он же первый), потом вставили на нулевой индекс элемент, а потом добавили. Должен получиться следующий результат.
Многомерный массив
Многомерным массивом в языке программирования 1С называется массив, элементами которого являются массивы. Если одномерный массив создавался посредством конструктора с одним параметром, то в многомерном массиве может быть два и больше параметров.
МассивМн1 = Массив(3,2,5);
В этом примере мы создали массив, у которого будет три элемента, каждый из которых будет массивом, содержащим по два массива, в каждом из которых будет пять элементов.
Например, создадим двумерный массив:
А вывод в окно сообщений следующим образом:
Статьи о других универсальных коллекциях значений в 1С
Более подробно о работе с массивами и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Как заполнить двумерный массив в 1с
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
Массив
Описание:
Предназначен для доступа к элементам массива, его методам и конструктору.
Элементы коллекции: Произвольный
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются значения элементов массива.
Возможно обращение к значению элемента посредством оператора [. ]. В качестве аргумента передается индекс значения (нумерация с 0).
1С 8.x : Как создать Двумерный или Многомерный массив?
Как удалить повторяющиеся элементы массива? 7
Функция УдалитьПовторяющиесяЭлементыМассива(Массив) Экспорт ТекущийИндекс = 0; ВсегоЭлементов = Массив.Количество(); Пока ТекущийИндекс ВсегоЭлементов Цикл Индекс2 = ТекущийИндекс + 1; Пока Индекс2 ВсегоЭлементов Цикл Если Массив = Структура
Создать структуру и добавить элементы 4
// Создание структуры СозданнаяСтруктура = Новый Структура; // Создание структуры и добавление элементов СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить(» Качество» , Качество); СтруктураОтбора.Вставить(» Номенклатура» , Номенкла Структура
Преобразовании Структуры в Таблицу Значений 4
//Струтура в ТЗ Функция СтруктураВТЗ(Структр) ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить(» Значение» ); ТЗ.Колонки.Добавить(» Описание» ); Для Каждого ТекЭлем из Структр Цикл НовСтр=ТЗ.Добавить(); НовСтр.Значение = ТекЭлем.Ключ; НовСтр Структура
Перебор элементов Структуры 3
Для Каждого Элемент из СтруктураПараметров Цикл Сообщить(Элемент.Ключ + » : » + Элемент.Значение); КонецЦикла; Посмотреть все в категории Работа с Массивом, Структурой, Соответствием