Изучаем массивы в 1С

Массив в платформе 1С 8.3 это самая простая универсальная коллекция значений.

Что такое Массив?

Массив в языке программирования 1С — это коллекция элементов, следующих друг за другом, которые могут быть доступны с помощью индекса массива. Элементы могут быть любого типа, в том числе и типа Массив. У каждого элемента в массиве есть уникальный номер, который называют Индексом. Посредством индекса можно получить доступ к данному элементу.

Все элементы в массиве упорядочены, т.е. первый элемент имеет индекс, равный нулю, второй — одному, и так далее.

Создать массив можно при помощи конструктора Новый

Новый Массив (<КоличествоЭлементов1>…<КоличествоЭлементовN>)

Где:

«КоличествоЭлементов» — необязательный параметр. Он может быть один — тогда мы будем иметь одномерный массив, а также их может быть несколько — тогда мы имеем многомерный массив.

Например,

Массив1 = Новый Массив(10);

— Одномерный массив из 10 элементов.

А:

Массив1 = Новый Массив(3,2);

Двумерный массив из 6 элементов (три строки, два столбца).

Или

Массив1 = Новый Массив();

Массив, не имеющий ни одного элемента, — пустой массив.

В отличие от таблиц значений 1С, работать с массивами можно как в режим тонкого клиента, так и в режим толстого клиента.

Имейте в виду, что когда Вы создадите не пустой массив (одномерный или многомерный), его элементы уже будут существовать, но с не заполненными значениями. Если Вы посмотрите на данный массив в отладчике, то увидите напротив каждого элемента тип Неопределено.

Пустой одномерный массив 1С 8.3

Обращаться к элементу массива можно посредством индекса. Делается это с помощью оператора «квадратные скобки».

Массив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С

Таблица значений 1С

Структура в 1С

Более подробно о работе с массивами и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *