Как сделать массив в 1с

Обновлено: 03.07.2024

Что такое массив в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

09.10.2014 | Автор Дмитрий

Что такое массив в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?
Массив — это набор значений. Найти значение массива можно по его индексу.
Как создать массив из определенного количества элементов в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как создать массив в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как добавить в массив в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как перебрать элементы массива в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как вставить элемент в массив в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как узнать размер массива, узнать количество элементов в массиве в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как удалить элемент массива в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как удалить все элементы массива в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как получить значение в массиве, зная его порядковый номер (индекс) в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Как изменить один элемент массива в 1С:Предприятие 8.0, 8.1, 8.2, 8.3?

Массив (тип значения 1С Массив) – это простейшая универсальная коллекция значений в информационной системе 1С, где элементы упорядочены по индексу (нумерация начинается с 0). Тип значения элементов может быть любой, включая тип значения Массив. Доступ к элементам массива осуществляется через индекс, по номеру которого можно получить доступ к значению элемента на платформе 1С 8.3.

1. Описание из синтакс-помощника

Доступность синтакс-помощника: Тонкий клиент 1С, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен . Имя типа XDTO: Array.

2. Как сформировать новый Массив

Для пустого Массива:

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

Для создания одномерного Массива (одна колонка):

МойНовыйМассив = Новый Массив(ЧислоЭлементов);

Для создания N-мерногоМассива, где каждый Элемент так же Массив:

МойНовыйМассив = Новый Массив(ЭлементовПервогоУровня, ЭлементовВторогоУровня, …, ЭлементовN-Уровня);

3. Способы заполнения Массива

Существует несколько способов заполнения Массива.

Добавляет Элемент в конец Массива:

МойНовыйМассив.Добавить (42) Поле типа Число

МойНовыйМассив.Добавить (‘20190315123501’) Поле типа Дата состав Дата и время

МойНовыйМассив.Добавить (‘20190315’) Поле типа Дата состав Дата

МойНовыйМассив.Добавить (Новый Массив) Поле типа Массив

МойНовыйМассив.Вставить (НомерИндекса,НовоеЗначениеЭлемента)

Посредством метода доступно получение количество Элементов в Массиве. Следует обратить внимание, что Количество будет всегда на единицу больше последнего значения Индекса:

МойНовыйМассив.Количество()

МойНовыйМассив.Найти (42)

МойНовыйМассив.Найти (’20190315’)

Позволяет удалить все Элементы Массива делая его пустым:

МойНовыйМассив.Очистить()

Позволяет получить значение Элемента по его Индексу:

МойНовыйМассив.Получить (ИндексЭлемента)

Позволяет удалить Элемент из Массива по Индексу:

МойНовыйМассив.Удалить (ИндексУдаляемогоЭлемента)

Позволяет установить новое значение Элемента по Индексу, когда использование оператора [] (например,МойНовыйМассив[ИндексЭлемента]) невозможно.

МойНовыйМассив.Установить (ИндексЗаменяемогоЭлемента,НовоеЗначениеЭлемента)

Позволяет получить наибольший Индекс в Массиве. Если Массив пустой, то возвращает-1:

МойНовыйМассив.ВГраница

4. Обход Элементов Коллекции

Для каждого Элемент Из Массив Цикл

Например, при необходимости заменить Элементы на другие значения:

НовоеЧисловоеЗначение = 5;

Для каждого Элемент Из МойНовыйМассив Цикл

НовоеЧисловоеЗначение = (НовоеЧисловоеЗначение + 7) / 2;

Для Итератор = 0 По МойНовыйМассив.ВГраница() Цикл

Например, при необходимости выбрать из Массива все значения типа Число и перенести их в новый Массив:

МассивДляЧисел = Новый Массив();

Для Итератор = 0 По МойНовыйМассив.ВГраница() Цикл

МассивДляЧисел.Добавить(ЗначениеЭлемента);

МойНовыйМассив.Удалить(Итератор);

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

Для Итератор1 = 0 По Массив.ВГраница() Цикл

Сообщить (Массив[Итератор1]);

Для Итератор2 = 0 По Массив[Итератор1].ВГраница() Цикл

Сообщить (Массив[Итератор1][Итератор2]);

Для Итератор3 = 0 По Массив[Итератор1][Итератор2].ВГраница() Цикл

Сообщить (Массив[Итератор1] [Итератор2][Итератор3]);

Вас могут заинтересовать следующие статьи:

94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->

Вас могут заинтересовать следующие вебинары:

Как создать массив (сразу нужного размера) в 1с 8.3, 8.2

Как создать пустой массив (с последующим добавлением элементов) в 1с 8.3, 8.2

Как обойти все элементы массива по индексу в 1с 8.3, 8.2

/// Массив может содержать элементы различных типов: числа,

Массив [ 3 ] = Формат ( 2017 , "ЧГ=0" ) ; // ("ПОМОГИТЕ", "МНЕ", "1C", 2017)

Как передать массив в качестве параметра функции в 1с 8.3, 8.2

// массив ВСЕГДА передается в функцию ПО ССЫЛКЕ, значит,

// изменяя массив внутри функции, мы меняем его снаружи

// значение первого элемента после вызова функции изменилось

Как вернуть массив в качестве результата работы функции в 1с 8.3, 8.2

// инициализация переменной массивом, который возвращает и формирует

Работа с массивом на передачу массива в качестве параметра процедуры в 1с 8.3, 8.2

Если Массив <> Неопределено И Массив . Количество ( ) > 0 Тогда

Как получить последний элемент массива в 1с 8.3, 8.2

Сообщить ( Массив [ Массив . Количество ( ) - 1 ] ) ; // Тигр

Использование многомерных массивов в 1с 8.3, 8.2

// обход всех элементов через конструкцию Для Каждого

Для ИндексСтрока = 0 По Массив . Количество ( ) - 1 Цикл

Для ИндексСтолбец = 0 По Массив [ ИндексСтрока ] . Количество ( ) - 1 Цикл

Вставка, удаление и очистка массива в 1с 8.3, 8.2

// вставка трёх элементов; каждый элемент вставляется в начало

Как из обычного получить фиксированный (неизменяемый) массив в 1с 8.3, 8.2

ФиксированныеЧисла = Новый ФиксированныйМассив ( Числа ) ;

Поиск по сайту

Okolokompa в Яндекс Дзен

Работа с типом Массив в 1С довольно востребовательна.

Массив предназначен для для упорядоченного хранения информации, различных типов данных. Доступ к элементам массива доступен по индексам в виде [Индекс]. Нумерация элементов массива начинаются с нуля. Обход всех элементов массива возможен при использовании конструкции Для каждого … Из … Цикл.

Массив поддерживает такие методы:

  • ВГраница() - Возвращает наибольший индекс элемента массива;
  • Вставить(Индекс, Значение) - Вставляет Значение в массив по Индексу;
  • Добавить(Значение) - Добавляет новый элемент в конец массива;
  • Количество() - Возвращает количество элементов в массиве (число);
  • Найти(Значение) - Производит поиск элемента в массиве. Если элемент найден в массиве, тогда возвращается его индекс. Если элемент не найден в массиве, тогда возвращается Неопределено;
  • Очистить() - Очистка массива, удаление всех значений из массива;
  • Получить(Индекс) - Получает значение по указанному Индексу. Работает как оператор [];
  • Удалить(Индекс) - Удаляет значение из массива индексу;
  • Установить(Индекс, Значение) - Устанавливает значение по указанному Индексу, предыдущее значение удаляется.

Примеры:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также: