Список значений — это программная коллекция (объект встроенного языка), содержащая пронумерованную последовательность элементов. Каждому элементу присваивается последовательный целочисленный номер — индекс, начинающийся с нуля. По индексу можно получить или установить элемент списка значений.
Элемент списка значений
Каждый элемент списка является программным объектом ЭлементСпискаЗначений
встроенного языка и содержит следующие свойства:
- Значение (Произвольный тип) — хранимое значение произвольного типа
- Представление (Строка) — представление элемента списка для пользователя
- Пометка (Булево) — значение пометки элемента в списке
- Картинка (Картинка) — картинка элемента списка для пользователя
Создание списка значений
Создание пустого списка значений выполняется с помощью оператора Новый:
сз = Новый СписокЗначений;
Для добавления элементов в список значений используется одноименный метод СписокЗначений.Добавить():
сз.Добавить(10); сз.Добавить(НачалоДня(ТекущаяДата()), "Сегодня");
Каждый новый элемент помещается в конец списка. Для доступа к отдельным элементам списка значений применяется операция разыменования: указывается имя переменной, объявленной как список значений, а затем, в квадратных скобках, указывается индекс элемента. Свойства полученного элемента можно использовать как слева от оператора присваивания:
сз[0].Значение = 10; сз[1].Значение = НачалоДня(ТекущаяДата()); сз[1].Представление = "Сегодня";
Так и справа: в выражениях и в качестве параметров процедур и функций:
Сообщить("сз[0] = " + сз[0].Значение);
Границы списка значений
Как было сказано выше, левая граница списка значений постоянна и всегда равно нулю (0). Верхняя граница напрямую связана с количеством элементов в списке значений. Получить ее можно с использованием метода СписокЗначений.Количество() с последующим вычитанием 1.
Давайте рассмотрим распространенные операции со списком значений.
Перебор элементов списка значений
Для перебора (обхода) всех элементов списка значений обычно используется оператор цикла Для
:
Для Инд = 1 По сз.Количество() Цикл Сообщить("сз[" + Инд + "] = " + сз[Инд-1].Представление); КонецЦикла;
Либо оператор цикла Для Каждого
:
Для Каждого Элт Из сз Цикл Сообщить("сз[" + сз.Индекс(Элт) + "] = " + Элт.Представление); КонецЦикла;
Второй способ больше подходит для ситуации, когда нужно только последовательно перебрать все значения списка. Его использование повышает «читабельность кода».
Поиск в списке значений
Для поиска значений в списке предназначен метод СписокЗначений.НайтиПоЗначению(). Он возвращает найденный элемент списка значений, либо Неопределено
, если указанного значения в списке нет.
НайдЭлт = сз.НайтиПоЗначению(10); Если НЕ НайдЭлт = Неопределено Тогда Сообщить("сз[" + сз.Индекс(НайдЭлт) + "] = " + НайдЭлт.Представление); КонецЕсли;
Сортировка списка значений
Сортировка элементов в списке значений может производиться двумя способами:
- По значению — реализуется методом СписокЗначений.СортироватьПоЗначению()
- По представлению — реализуется методом СписокЗначений.СортироватьПоПредставлению()
сз = Новый СписокЗначений сз.Добавить(1, "Первый"); сз.Добавить(3, "Третий"); сз.Добавить(2, "Второй"); сз.СортироватьПоЗначению();
Методы объекта СписокЗначений
Вставить() | Добавляет элемент в произвольное место списка |
ВыбратьЭлемент() | Открывает диалог выбора элемента списка значений |
ВыгрузитьЗначения() | Выгружает значения списка в массив |
Добавить() | Добавляет элемент в конец списка |
ЗагрузитьЗначения() | Загружает значения из массива |
ЗаполнитьПометки() | Устанавливает значение пометок элементов списка |
Индекс() | Возвращает индекс элемента списка значений |
Количество() | Возвращает количество элементов в списке |
НайтиПоЗначению() | Выполняет поиск элемента в списке по значению |
НайтиПоИдентификатору() | Выполняет поиск элемента в списке по его идентификатору |
ОтметитьЭлементы() | Открывает диалог отметки элементов списка значений |
Очистить() | Очищает список значений |
Получить() | Возвращает элемент списка по индексу |
Сдвинуть() | Сдвигает элемент в списке вверх или вниз |
Скопировать() | Возвращает копию текущего списка значений |
СортироватьПоЗначению() | Сортирует элементы списка значений по значению |
СортироватьПоПредставлению() | Сортирует элементы списка значений по представлению |
Удалить() | Удаляет указанный элемент из списка |
Читайте также:
- Как загрузить массив в список значений?
- Как выгрузить колонку таблицы значений в список значений?
- Ошибка «Значение индекса выходит за границы диапазона»