Как получить индекс элемента массива 1с
Перейти к содержимому

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

  • автор:

Получить индекс массива в выборке

Есть массив и обход элементов массива циклом Для каждого.
Как узнать индекс массива?

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

Отладчик говорит:
Элемент.Индекс — ошибка
Элемент.Индекс() — ошибка

Думаю, переписать этот цикл оператором
Для Индекс = 0 ПО МассивЭлементов.Количество()-1 Цикл
ЭлементМассива = МассивЭлементов[Индекс]
.

А чтобы не переписывать, нет способа?

упс.. .в (0) правильно так:

Как узнать индекс текущего элемента массива?

Массив (Array)
Найти (Find)
Синтаксис:

Тип: Произвольный.
Искомое значение.
Возвращаемое значение:

Тип: Число; Неопределено.
Если элемент найден, возвращается его индекс. Если элемент не найден, возвращается Неопределено.
Описание:

Выполняет поиск элемента в массиве.

массив — это просто набор значений не отягченный никакими дополнительными вещами, как например тз, там действительно каждая строка однозначно идентифицируется

1С 8.x : Массив

Распечатать

Как удалить повторяющиеся элементы массива?  6
Функция УдалитьПовторяющиесяЭлементыМассива(Массив) Экспорт ТекущийИндекс = 0; ВсегоЭлементов = Массив.Количество(); Пока ТекущийИндекс ВсегоЭлементов Цикл Индекс2 = ТекущийИндекс + 1; Пока Индекс2 ВсегоЭлементов Цикл Если Массив = Структура

Создать структуру и добавить элементы  4
// Создание структуры СозданнаяСтруктура = Новый Структура; // Создание структуры и добавление элементов СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить(» Качество» , Качество); СтруктураОтбора.Вставить(» Номенклатура» , Номенкла Структура

Преобразовании Структуры в Таблицу Значений  4
//Струтура в ТЗ Функция СтруктураВТЗ(Структр) ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить(» Значение» ); ТЗ.Колонки.Добавить(» Описание» ); Для Каждого ТекЭлем из Структр Цикл НовСтр=ТЗ.Добавить(); НовСтр.Значение = ТекЭлем.Ключ; НовСтр Массив

Как получить последний элемент массива  3
Массив = Новый Массив(); Массив.Добавить(» ЭлементОдин» ); Массив.Добавить(» ЭлементДва» ); Массив.Добавить(» ЭлементТри» ); Массив.Добавить(» ЭлементЧетыре» ); ПроследнийЭлементМассива = Массив ; // ПроследнийЭлементМассива = ЭлементЧетыре Посмотреть все в категории Работа с Массивом, Структурой, Соответствием

Работаем с массивом программно

Массив — это программная коллекция (объект встроенного языка), содержащая пронумерованную последовательность значений произвольного типа. Каждому элементу присваивается последовательный целочисленный номер — индекс, начинающийся с нуля. По индексу можно получить или установить значение элемента массива.

В 1С:Предприятие 8 существует два типа массивов:

  • фиксированный массив — такой массив имеет фиксированный размер, заданный при его создании. Для фиксированного массива недоступно программное изменение размера, количества и последовательности элементов;
  • обычный массив — такой массив имеет динамический размер и его верхний предел практически неограничен. Таким массивом можно произвольно оперировать из встроенного языка;

Сейчас мы рассмотрим обычные массивы.

Создание и инициализация элементов массива

Создание пустого массива выполняется с помощью оператора Новый :

Для добавления элементов в массив используется одноименный метод Массив.Добавить():

Каждый новый элемент помещается в конец массива. Чтобы создать массив с заданным размером, можно воспользоваться конструктором массива. Например, так:

Для доступа к отдельным элементам массива применяется операция разыменования: указывается имя переменной, объявленной как массив, а затем, в квадратных скобках, указывается индекс элемента: ИмяМассива[Индекс] . Такие конструкции можно указывать как слева от оператора присваивания:

Так и справа: в выражениях и в качестве параметров процедур и функций:

Границы массивов

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

  • С использованием метода Массив.Количество() с последующим вычитанием 1;
  • С использованием одноименного метода Массив.ВГраница();

Давайте рассмотрим распространенные операции с массивами

Перебор элементов массива

Для перебора (обхода) всех элементов массива обычно используется оператор цикла Для :

Либо оператор цикла Для Каждого :

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

Поиск в массиве

Для поиска значений в массиве можно воспользоваться одноименным методом Массив.Найти(). Он возвращает индекс найденного элемента или Неопределено , если таковой не был найден:

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

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Массив

Описание:

Предназначен для доступа к элементам массива, его методам и конструктору.

Элементы коллекции: Произвольный

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются значения элементов массива.

Возможно обращение к значению элемента посредством оператора [. ]. В качестве аргумента передается индекс значения (нумерация с 0).

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

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