Руководство по встроенному языку » 
0

Работаем со списком значений программно

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

Элемент списка значений

Каждый элемент списка является программным объектом ЭлементСпискаЗначений встроенного языка и содержит следующие свойства:

  • Значение (Произвольный тип) — хранимое значение произвольного типа
  • Представление (Строка) — представление элемента списка для пользователя
  • Пометка (Булево) — значение пометки элемента в списке
  • Картинка (Картинка) — картинка элемента списка для пользователя

Создание списка значений

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

сз = Новый СписокЗначений;

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

сз.Добавить(10);
сз.Добавить(НачалоДня(ТекущаяДата()), "Сегодня");

Каждый новый элемент помещается в конец списка. Для доступа к отдельным элементам списка значений применяется операция разыменования: указывается имя переменной, объявленной как список значений, а затем, в квадратных скобках, указывается индекс элемента. Свойства полученного элемента можно использовать как слева от оператора присваивания:

сз[0].Значение = 10;
сз[1].Значение = НачалоДня(ТекущаяДата());
сз[1].Представление = "Сегодня";

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

Сообщить("сз[0] = " + сз[0].Значение);

Границы списка значений

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

Давайте рассмотрим распространенные операции со списком значений.

Перебор элементов списка значений

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

Для Инд = 1 По сз.Количество() Цикл
    Сообщить("сз[" + Инд + "] = " + сз[Инд-1].Представление);
КонецЦикла;

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

Для Каждого Элт Из сз Цикл
    Сообщить("сз[" + сз.Индекс(Элт) + "] = " + Элт.Представление);
КонецЦикла;

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

Поиск в списке значений

Для поиска значений в списке предназначен метод СписокЗначений.НайтиПоЗначению(). Он возвращает найденный элемент списка значений, либо Неопределено, если указанного значения в списке нет.

НайдЭлт = сз.НайтиПоЗначению(10);
Если НЕ НайдЭлт = Неопределено Тогда
    Сообщить("сз[" + сз.Индекс(НайдЭлт) + "] = " + НайдЭлт.Представление);
КонецЕсли;

Сортировка списка значений

Сортировка элементов в списке значений может производиться двумя способами:

сз = Новый СписокЗначений
сз.Добавить(1, "Первый");
сз.Добавить(3, "Третий");
сз.Добавить(2, "Второй");
сз.СортироватьПоЗначению();

Методы объекта СписокЗначений

Вставить() Добавляет элемент в произвольное место списка
ВыбратьЭлемент() Открывает диалог выбора элемента списка значений
ВыгрузитьЗначения() Выгружает значения списка в массив
Добавить() Добавляет элемент в конец списка
ЗагрузитьЗначения() Загружает значения из массива
ЗаполнитьПометки() Устанавливает значение пометок элементов списка
Индекс() Возвращает индекс элемента списка значений
Количество() Возвращает количество элементов в списке
НайтиПоЗначению() Выполняет поиск элемента в списке по значению
НайтиПоИдентификатору() Выполняет поиск элемента в списке по его идентификатору
ОтметитьЭлементы() Открывает диалог отметки элементов списка значений
Очистить() Очищает список значений
Получить() Возвращает элемент списка по индексу
Сдвинуть() Сдвигает элемент в списке вверх или вниз
Скопировать() Возвращает копию текущего списка значений
СортироватьПоЗначению() Сортирует элементы списка значений по значению
СортироватьПоПредставлению() Сортирует элементы списка значений по представлению
Удалить() Удаляет указанный элемент из списка

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

  1. Как загрузить массив в список значений?
  2. Как выгрузить колонку таблицы значений в список значений?
  3. Ошибка «Значение индекса выходит за границы диапазона»

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

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