Как создать многомерный массив

Массив в 1С — это набор некоторых значений. Значения в одном массиве могут быть различных типов.

Массив может быть получен в результате выполнения различных функций, например, ВыгрузитьКолонку() таблицы значений; в виде массива можно получить выделенные строки динамического списка и т.д. Можно создать массив и «вручную».

Создание массива

1. Как создать массив нужного размера

пМассив = новый Массив(4 ) ; //создали массив из 4 элементов

ПМассив[ 0 ] = "Мы" ;
пМассив[ 1 ] = "создали" ;
пМассив[ 2 ] = "новый" ;
пМассив[ 3 ] = "массив" ;

2. Как создать пустой массив и добавить в него элементы

пМассив = новый Массив; //создали пустой массив

//Внесем значения элементов массива

ПМассив. Добавить("Мы" ) ;


3. Как создать многомерный массив.

Рассмотрим этот вопрос на примере двумерного массива, так как массивы больших размерностей используются значительно реже, а механизм их работы не отличается от двумерного.

пМассив = новый Массив (4 , 2 ) ; //создали массив 4х2

//Внесем значения элементов массива, пронумеровав каждое слово

ПМассив[ 0 ] [ 0 ] = "1. " ;
пМассив[ 0 ] [ 1 ] = "Мы" ;
пМассив[ 1 ] [ 0 ] = "2. " ;
пМассив[ 1 ] [ 1 ] = "создали" ;
пМассив[ 2 ] [ 0 ] = "3. " ;
пМассив[ 2 ] [ 1 ] = "многомерный" ;
пМассив[ 3 ] [ 0 ] = "4. " ;
пМассив[ 3 ] [ 1 ] = "массив" ;

4. Как создать фиксированный массив

Фиксированный массив отличается от обычного тем, что его нельзя изменять. Нельзя добавлять, удалять или менять значения элементов такого массива.

Фиксированный массив может быть получен из обычного:

пМассив = новый Массив;

ПМассив. Добавить("Мы" ) ;
пМассив. Добавить("создали" ) ;
пМассив. Добавить("новый" ) ;
пМассив. Добавить("массив" ) ;

ФМассив = новый ФиксированныйМассив(пМассив) ; // создали фиксированный массив

Функции работы с массивами

Работу функций будем рассматривать на примере одномерного массива пМассив , созданного выше и состоящего из 4 элементов:

  1. «создали»
  2. «новый»
  3. «массив».
Функция ВГраница()

Получает наибольший индекс элемента массива. Он всегда на единицу меньше количества элементов массива.

Индекс = пМассив. ВГраница() // 3;

Функция Вставить()

Вставляет какое-то значение в элемент массива с указанным индексом. Последующие элементы массива сдвигаются

пМассив. Вставить(3 , "новое значение" ) //Теперь массив состоит из 5 элементов

Функция Добавить()

Создает новый элемент в конце массива и вставляет туда заданное значение

пМассив. Добавить("." ) // добавили точку пятым элементов массива;

Функция Количество()

Возвращает количество элементов массива.

пМассив. Количество() ; // 4

Функция Найти()

Ищет в массиве заданный элемент. Если находит, возвращает его индекс. Если не находит, возвращает Неопределено .

Индекс = пМассив. Найти("массив" ) ; // 3
Индекс = пМассив. Найти("строка, которой не было" ) ; // Неопределено

Функция Очистить()

Удаляет все значения из массива.

пМассив. Очистить() ;

Функция Получить()

Получает значение массива по индексу. Эту же задачу можно решить через .

Значение= пМассив. Получить(3 ) // "массив"
Значение= пМассив[ 3 ] ; // "массив"

Функция Удалить()

Удаляет элемент массива по индексу

пМассив. Удалить(3 ) ;

Функция Установить()

Устанавливает значение элемента массива по индексу. Работает аналогично .

пМассив. Установить(3 , "массив!" ) ;
пМассив[ 3 ] = "массив!" ;

Как обойти массив

Можно обойти все элементы массива без указания индекса:

Для каждого ЭлементМассива из пМассив Цикл
Сообщить(ЭлементМассива) ;
КонецЦикла ;

Можно при обходе использовать индекс:

Для Индекс= 0 по пМассив. ВГраница() Цикл
Сообщить(пМассив[ Индекс] ) ;
КонецЦикла ;

Как обойти многомерный массив

Многомерный массив обходится с помощью тех же циклов (см. выше), но один цикл должен быть вложен в другой.

Для каждого Элемент1 из мМассив Цикл
Для каждого Элемент2 из Элемент1 Цикл
Сообщить(Элемент1 ) ;
КонецЦикла ;
КонецЦикла ;

Или с применением индексов.

мМассив= новый массив(3 , 4 ) ;

Для Индекс1 = 0 по мМассив. ВГраница() Цикл
Для Индекс2 по мМассив[ Индекс1 ] . ВГраница() Цикл
Сообщить(мМассив[ Индекс1 ] [ Индекс2 ] ) ;
КонецЦикла ;
КонецЦикла ;

Сортировка массива

Для сортировки массива нам потребуется вспомогательный объект с типом СписокЗначений.

СписокЗнач = новый СписокЗначений; // создаем список значений
СписокЗнач. ЗагрузитьЗначения(пМассив) ; // загружаем в список значения из массива
СписокЗнач. СортироватьПоЗначению(НаправлениеСортировки. Возр) ; //сортируем по возрастанию
СписокЗнач. СортироватьПоЗначению(НаправлениеСортировки. Убыв) ; //или по убыванию
пМассив= СписокЗнач. Выгрузить() ; // выгружаем отсортированные значения обратно в массив

Сравнение двух массивов

Перед тем, как перейти к описанию функции сравнения, договоримся, что массивы считаются идентичными, если имеют одинаковое количество элементов и соответствующие элементы массивов равны. Тогда для сравнения можно использовать следующую функцию (кстати, такая функция уже присутствует в некоторых типовых конфигурациях):

Функция СравнитьМассивы(Массив1 , Массив2 )

Если Массив1 . Количество() <> Массив2 . Количество() Тогда
Возврат ЛОЖЬ; // Массивы не равны, сравнивать элементы нет смысла.
КонецЕсли ;

Для Индекс= 0 по Массив1 . ВГраница() Цикл
Если Массив1 [ Индекс] <> Массив2 [ Индекс] Тогда
Возврат Ложь ; //эти элементы не равны, значит и массивы не равны
КонецЕсли ;
КонецЦикла ;

Возврат Истина ; // Если дошли до сюда, то массивы равны
КонецФункции

В функцию нужно передать 2 сравниваемых массива. Функция возвращает значение Истина , если массивы равны, и Ложь , если не равны.

Применение массивов в 1С помогает упорядочить используемые в работе элементы.

Это программный набор элементов. Он служит для:

  • Отбора значений.
  • Сортировки. Каждой позиции в массиве присваивается индекс. Это облегчает поиск. И вы можете сослаться на объект, написав его номер.
  • Объединения и сохранения записей.
  • Разделения групп, создания подстрок.
  • Массив - сам по себе объект. К нему будет привязана переменная. Можно обратиться к отдельным его частям или использовать его целиком в процедурах. Например, можно объединить группу значений «Сотрудники отдела N» и внести туда имена и фамилии работников.

Проведём аналогию. Представьте книжный шкаф. Книги в нём расставлены по разным «ячейкам». Если вести учёт, вы будете знать, где находится каждый объект. И без труда его достанете. Но если книги, журналы и газеты хаотично разбросаны на столе, поиск нужной вещи затянется. Хотя это не отражает все возможности уникальных коллекций.

Создание

Работа с массивами 1С начинается с их создания. Нужно «место действия» - поле, в котором вы будете вводить код.

  1. Откройте «Конфигуратор» («Конфигурация»).
  2. Кликните правой кнопкой мыши по пункту «Обработка».
  3. Выберите «Добавить».
  4. Появится подменю «Обработка1». Выделите его. Информация о нём отобразится в рабочей области.
  5. На вкладке «Основные» введите «Имя». Скажем, «ТестовыйМассив».
  6. Откройте раздел «Формы».
  7. Нажмите на значок в виде лупы.
  8. Отметьте опцию «Форма обработки».
  9. Щёлкните на «Готово».
  10. Откроется окно с тремя фреймами. В правом верхнем перейдите в закладку «Команды».
  11. Иконка в виде плюса, чтобы добавить позицию.
  12. Появится пункт «Команда1». Выделите его.
  13. В поле «Имя» введите название. К примеру, «ТестовыеЗначения». Скопируйте его в «Заголовок».
  14. В строке «Действие» нажмите на лупу.
  15. Пункт «Создать на клиенте» и «OK».
  16. Вот и модуль, в котором можно вводить код.

Чтобы выводить промежуточный результат, создайте «кнопку». Зачем она нужна в массиве - вы поймёте чуть позже.

  1. Перейдите на вкладку «Формы». Она внизу.
  2. Щёлкните правой кнопкой мыши на «Командная панель».
  3. «Добавить - Кнопка».
  4. Придумайте ей любое название. Или можете оставить то, которое выдано по умолчанию.
  5. В поле «Имя команды» нажмите на пиктограмму в виде многоточия.
  6. Выберите «ТестовыеЗначения». Если назвали команду по-другому, там будет иной заголовок.

Теперь можно приступать к работе с коллекциями. Но не думайте, что в 1С сразу сможете разложить строку в массив. Лучше начать с чего-нибудь полегче. Хотя все функции - это набор операторов, которые надо просто запомнить.

  1. Откройте закладку «Модуль».
  2. Текст, который идёт после двух косых чёрточек (два слеша - «//») можно удалить. Он выглядит примерно так «// Вставить содержимое обработчика». Это пояснения. Их пишут программисты, чтобы не запутаться в коде.
  3. Свой текст пишите между операторами «Процедура» и «КонецПроцедуры».
  4. Теперь создайте набор значений . Придумайте переменную, которая будет условно его обозначать. Допустим, «ПервыйМассив».
  5. Её надо связать с объектом. Для этого введите команду «ПервыйМассив = Новый массив ()». Это коллекция, в которой может быть неограниченное количество элементов. Если у вас фиксированный размер, укажите его после команды в скобках «Новый массив (5)». Соответственно, двумерная коллекция будет выглядеть «Новый массив (7, 5)». Можно создавать многомерные наборы.
  6. При вводе могут появиться подсказки, которые предлагают подходящие операторы.
  7. Слова различаются по цвету. У переменных одна расцветка, у функций - другая.
  8. После каждой команды ставьте точку с запятой «;». И для удобства начинайте с нового абзаца.
  9. С пустым множеством ничего сделать нельзя. Ни упорядочить, ни вывести, ни разложить строку в массив в 1С. Поэтому надо вставить в него элементы.
  10. Введите «ПервыйМассив.Добавить(Значение1);». Потом «ПервыйМассив.Добавить(Значение2);» и так далее.
  11. Объекты нумеруются с нуля. То есть переменной «Значение1» будет присвоен индекс «0». Можете сами заполнять коллекцию со «Значение0», чтобы не перепутать.

Для чего всё это? И зачем та загадочная «кнопка»? Попробуем запустить простенькую функцию.

  1. Под коллекцией напишите команду «Сообщить (ПервыйМассив);» В квадратных скобках указан индекс элемента. То есть адрес нашего «Значение0».
  2. Отформатируйте модуль. Это проверка на наличие ошибок. В больших блоках можно что-то недоделать по невнимательности: не поставить точку с запятой, не закрыть скобку, неправильно написать переменную. Компилятор на это укажет.
  3. Нажмите на кнопку в виде знака «Плей» (треугольник в круге), чтобы запустить написанную вами программу.
  4. Кликните на «Сервис» и выберите вашу кнопку.
  5. Нажмите её.
  6. Появится надпись «Значение0». Это и есть результат выполнения функции.

Показана самая простая операция, чтобы вы поняли, как вообще работают массивы. С ними можно создавать сложные и многоуровневые программы. Выводить объекты, сортировать, удалять повторы, разбивать на набор подстрок, объединять, разделять, искать сведения. Нужно лишь знать операторы.

Функции

Все доступные функции есть в справочнике программы. Перечислим несколько, чтобы показать принцип.

Как превратить массив 1С в строку:

ТестМассив = Новый Массив(4);
ТестМассив = Это;
ТестМассив = Делается;
ТестМассив = Так;
СтрокаТест = ЗначениеВСтрокуВнутр(ТестМассив);
Сообщить(СтрокаТест);

Выводите на «Кнопку» и получаете фразу. Это может быть частью большого модуля - в таком случае оператор «Сообщить» не нужен.

Чтобы в 1С разложить строку в массив подстрок, нужен разделитель. Условная метка, после которой текст будет делиться. Допустим, есть слово «Протокол». И мы поставим разделитель «О». Введите команду «ТестМассив = РазложитьСтрокуВМассив(Протокол, «О») ;» Получится отдельно «Пр», «Т», «К» и «Л». Разделитель стёрт. А слово разделено на несколько подстрок.

Вот как это можно применить на практике. У вас есть массив с ФИО сотрудников. И вам нужно, чтобы при выборе позиции автоматически заполнялись поля «Фамилия», «Имя» и «Отчество». Для этого ФИО надо разбить на три составляющих. В качестве разделителя используйте «пробел».

Обычно для этого используется сложный модуль: цикл с большим количеством операторов. Циклические блоки с условием строятся по принципу «Если (условие), тогда (действие1), иначе (действие2)». Вначале программа проверяет, выполняется ли условие. Если да, то она запускает первую функцию. Если нет - вторую.

Цикл проверит каждый символ в строке. Если там нет разделителя, он продолжает дальше. Если там есть разделитель, он добавляет значение в набор подстрок. Там могут использоваться и другие операторы: к примеру, «СокрЛП» - сокращение определённых знаков справа и слева от строки.

Каждый модуль надо «заканчивать», чтобы утилита прекратила выполнение процедуры. На цикле с «Если» этот оператор - «КонецЕсли». На цикле без условий - «КонецЦикла». Каждую функцию надо отдельно завершать.

Поиск и сортировка

В коллекциях может находиться огромное количество данных. Надо научиться их искать и сортировать.

Чтобы запустить поиск в массиве в 1С, используйте оператор «Найти». Отыскать нужное значение можно и визуально. Но если там сотни элементов, лучше создать дополнительный модуль и запустить подпрограмму. Покажем на примере простой функции. Но это подойдёт для любых блоков.

МассивТест = Новый Массив(3);
МассивТест = «Телефон»;
МассивТест = «Ноутбук»;
МассивТест = «Компьютер»;
Индекс = МассивТест.Найти(«Телефон»);
Если Индекс ‹› Неопределено Тогда
Сообщить («Поиск завершён» + МассивТест[Индекс]);

И не забудьте поставить «завершающий оператор».

Коллекция подана для примера. Мы создали набор из трёх значений. И сделали небольшой цикл. Если утилита не найдёт подходящий элемент, она выдаст сообщение «Неопределено». Если отыщет, покажет результат.

Сортировка массива 1С просто незаменима при работе с большим объёмом данных. В них же надо как-то ориентироваться. Лучше расставить их в определённом порядке. Допустим, есть у вас коллекция «ВашМассив». Чтобы привести её «в порядок»

ТестСписок = Новый СписокЗначений;
ТестСписок.ЗагрузитьЗначения(ВашМассив);
ТестСписок.СортироватьПоЗначению(НаправлениеСортировки.Возр);
ВашМассив = ТестСписок.ВыгрузитьЗначения();

Вместо «Возр» можете поставить «Убыв». Также результат можно выгрузить в таблицу значений:

ТестоваяТаблица = Новый ТаблицаЗначений;
ТестоваяТаблица.Колонки.Добавить(«Колонка»);
ТестоваяТаблица.ЗагрузитьКолонку(ВашМассив, «Колонка»);
ТестоваяТаблица.Сортировать(«Колонка Убыв»);
ВашМассив = ТестоваяТаблица.ВыгрузитьКолонку(«Колонка»)

Существуют и сложные методы сортировки: «Пузырьковая», «Быстрая», «Шейкер», «Рекурсия». У них многоуровневые и длинные алгоритмы.

Таблицы и списки

Информацию можно переправлять между разными видами коллекций. Чтобы перенести в 1С массив в таблицу значений:

МассивТелеф = Новый Массив;
МассивТелеф.Добавить(«Смартфон»);
МассивТелеф.Добавить(«Планшет»);
МассивТелеф.Добавить(«Телефон»);
ТаблицаТест = Новый ТаблицаЗначений;
ТаблицаТест.Колонки.Добавить(«Мобильники»);
ТаблицаТест.Добавить();
ТаблицаТест.Добавить();
ТаблицаТест.Добавить();
ТаблицаТест.ЗагрузитьКолонку(МассивТелеф, «Мобильники»);
Для Каждого Строка Из ТаблицаТест Цикл
Сообщить(Строка.Мобильники);

Не забудьте поставить в конце оператор завершения цикла.

Преобразовать в 1С массив в список значений совсем просто. Достаточно лишь выгрузить данные из одной коллекции в другую.

НовСписок = Новый СписокЗначений();
НовСписок.ЗагрузитьЗначения(ВашМассив);

В программировании одну проблему можно решить разными способами. И 1С - не исключение. Линейные алгоритмы, циклы, циклы с условием, циклы со счётчиком. Вариантов много. Чтобы ориентироваться в массиве, нужны некоторые навыки работы в 1С.

Массив 1С – это простой набор значений. В один массив 1С можно добавить значения разных типов. После добавления наличие в массиве 1С значения можно проверить встроенным поиском.

Массив 1С часто используется:
А) Для отборов
Б) Для сохранения списка значений, чтобы далее использовать его, например, передать как параметр в функцию/процедуру.

Работа с массивами 1С

Создадим массив 1С из 2 значений:
Массив = Новый Массив(); //массив без фиксированного кол-ва значений

Массив.Добавить(ГСЧ.СлучайноеЧисло(0, 1000));
Массив.Добавить(ГСЧ.СлучайноеЧисло(0, 1000));

//цикл прохода каждого значения массива 1С, сколько бы их ни было

Сообщить(Знч);
КонецЦикла;

Создадим массив 1С из 10 значений:
Массив = Новый Массив(10); //массив с фиксированным кол-вом значений
ГСЧ = Новый ГенераторСлучайныхЧисел(); //будем заполнять случайными числами

//индекс массива начинается с нуля, а не с единицы
//10 шт - это от 0 до 9
Для Сч = 0 по 9 Цикл
//обращение к массиву ИмяМассива[Индекс]
Массив[Сч] = ГСЧ.СлучайноеЧисло(0, 1000); //случайное число от 0 до 1000
КонецЦикла;

//цикл прохода каждого значения массива, сколько бы их ни было
Для каждого Знч из Массив Цикл
Сообщить(Знч);
КонецЦикла;

//обратите внимание - 10 значений массива, это значит что их по умолчанию 10 шт и каждое значение равно НЕОПРЕДЕЛЕНО, пока мы не установили другое
//это не значит, что мы не можем добавить еще одно значение, 11е, с помощью ИмяМассива.Добавить();

Многомерный массив

Создадим многомерный массив 1С 2х2. Многомерный массив 1С, значит каждая ячейка массива 1С содержит не значение, а тоже массив 1С.

Многомерный массив 1С не обязательно должен быть фиксированным. Сделаем многомерный массив 1С 2х2 без указания фиксированного количества значений:

Создание массива 1С с нуля

Получение данных – затратная по времени и ресурсам процедура. Поэтому, если требуется с полученными данными работать неоднократно – имеет смысл получить их единожды и сохранить в массив 1С, чтобы далее работать с уже полученными и сохраненными данными.

Например – строка версии программы выглядит следующим образом «11.0.9.5» — четыре числа, разделенные точками. Мы можем перевести версию в «компьютерный» формат – массив из четырех числовых значений. Тогда далее мы можем сравнивать версии друг с другом:

Получение готового массива 1С с данными

Массив 1С можно получить из списка значений с помощью метода спСписок.ВыгрузитьЗначения() и из таблицы значений с помощью метода тТаблица.ВыгрузитьКолонку().

В примере ниже мы делаем запрос – выбираем все ссылки документов из базы данных.

  • РезультатЗапроса = Запрос.Выполнить() //выполняет запрос
  • тзРезультат = РезультатЗапроса.Выгрузить() //выгружает результат в таблицу значений
  • мМассивСсылок = тзРезультат.ВыгрузитьКолонку("ИмяКолонки") //выгружает колонку таблицы в массив

Получение массива 1С из других объектов и использование в качестве отбора в запросе

Когда на форме расположен список документов (или таблица значений) – пользователь может выделить курсором одну строку. Также можно разрешить выделять несколько строк одновременно. Чтобы выделить несколько строк (если не форме это разрешено) нужно зажать клавишу CTRL или SHIFT.

Добавьте на форму толстого клиента таблицу значений и в качестве ее типа выберите ДокументСписок.ИмяДокумента. В его свойствах выберите режим выделения – множественный.

Мы можем программно получить список выделенных строк:

Если Вы используете управляемую форму, то нужно сначала добавить реквизит формы с типом ДинамическийСписок, а в его свойствах выберите основную таблицу – нужный документ. Перетащите реквизит на форму. В свойствах элемента формы (!) выберите также – режим выделения – множественный (установлен так по умолчанию).

Обращение к массиву 1С выделенных строк будет выглядеть как:
Элементы.ИмяРеквизитаФормы. ВыделенныеСтроки

Понятие «массив» уже давно используется в программировании и, чаще всего, под ним понимают некоторую структуру в памяти, состоящую из последовательности элементов. Массив в 1С – самая простая из универсальных коллекций значений. Помимо массива к универсальным коллекциям относятся:

  1. Список значений (в отличие от массива у значений из списка есть представление, реализована возможность сортировки и интерфейсного представления коллекции);
  2. Таблица значений – коллекция, имеющая колонки для расширенного описания значения, подобную структуру можно получить, выполнив запрос;
  3. Дерево – очень похоже на таблицу, дополненную структурой подчиненности;
  4. Структура – динамический набор имен и значений переменных;
  5. Соответствие – подобно структуре, только переменные сопоставляются не строковым представлениям, а друг другу.

Методы массива

Программное создание экземпляра массива происходит с помощью с помощью оператора Новый() (Рис.1).

Как видно из приведенного примера массивы можно создавать как с фиксированным количеством элементов, так и без этого ограничения.

Прежде, чем приступать к обсуждению методов работы с массивом, давайте определимся с двумя понятиями:

  • Индекс элемента – можно представить как порядковый номер отдельно взятого значения;
  • Количество элементов – число элементов в коллекции, его определение доступно с помощью метода Количество().

Важно знать: в 1С подсчет количества значений любой коллекции начинается с 1, а раздача индексов с 0, т.е первый элемент в массиве имеет индекс 0. Таким образом, обход коллекции с помощью цикла с итератором должен начинаться с 0 и заканчиваться количеством элементов минус 1, в противном случае система с помощью окна (Рис.2) уведомит о наступлении исключительной ситуации.

Рис.2

Любой объект конфигурации имеет свои методы для работы, массив не исключение, перечислим их с некоторой расшифровкой:

  • ВГраница() – с помощью метода можно получить максимальный индекс элемента, для пустого массива будет возвращено значение (-1);
  • Вставить() – этот метод имеет два параметра: индекс и значение, индекс указывает куда в массив вставить новый элемент, добавляемое значение может быть пустым;
  • Добавить() – этот метод вставки значения можно использовать, когда место размещения элемента непринципиально, с его помощью новые данные будут записаны в конец имеющегося массива;
  • Найти() – в случае успешного выполнения возвращает индекс указанного в скобках значения, в противном случае возвращает «Неопределено»;
  • Очистить() –очищает коллекцию;
  • Получить() – читает данные, расположенные в массиве по указанному индексу, можно заменить квадратными скобками ;
  • Удалить() – удаляет элемент с указанным индексом;
  • Установить() – заменяет данные в указанной ячейке массива.

Одномерные и многомерные массивы

В простейшем случае одномерный массив может содержать значения различных типов (Рис.3)

Рис.3.

Результат выполнения вышеприведенного кода представлен на Рис.4

Рис.4

Таким образом, мы получили одномерный массив, состоящий из строкового значения, ссылки на элемент справочника и даты. При этом при добавлении элементов мы использовали два различных метода Добавить() и Вставить(), если бы при добавлении даты мы использовали метод Добавить() наш результат имел бы несколько другой вид.

В старших классах средней школы дается представление о понятии двумерной матрицы. Это такой набор данных, каждый элемент которого имеет два индекса (в простейшем случае порядковый номер по вертикали и по горизонтали) именно она лучше всего иллюстрирует понятие двумерного массива.

Создавая подобную матрицу можно указать количество строк и столбцов, которые будут использованы.

Допустим, перед нами стоит задача создать массив из фамилии, имени и отчества двух сотрудников. С помощью кода (Рис.5) создаем соответствующий массив с фиксированным количеством столбцов и строк.

Рис.5

Для его обхода нам понадобится два цикла, в первом цикле мы обходим массив по строкам, во втором разбираем строку на элементы. Это можно сделать либо с помощью цикла «Для каждого …. Из» (Рис.6)

Рис.6

Либо с помощью цикла с итератором «Для … по» (Рис.7)

Рис.7

В принципе, количество измерений конкретного массива может быть любым, другое дело, что в случае большого количества уровней детализации достаточно сложно создать построитель для чтения данных.

Использование массива

Массивы в 1С чаще всего используются для:

  1. Создания различных отборов используемых при работе с запросами и другими коллекциями значений;
  2. Передачи списков в качестве параметров между процедурами и функциями;
  3. Обмена данными с внешними компонентами, подключенными с использованием COM технологии.

Безусловно, это далеко неполный список того, в каких целях можно задействовать объект «Массив».