СписокЗначений — это программная коллекция элементов, содержащих значения произвольного типа и их строковые представления. Каждому элементу списка значений присваивается целочисленный номер — индекс, начинающийся с единицы. В отличие от массива, список значений является динамическим, т.е. элементы можно добавлять и удалять.
Список значений используется в двух случаях:
- При работе с формами: при размещении на форме элементов управления типа
Список
иПолеСоСписком
, они автоматически связываются с объектом типаСписокЗначений
; - При работе с кодом: для хранения каких-либо расширяемых списочных данных вы создаете нужное количество объектов типа
СписокЗначений
;
Хочется отметить, что объекты типа СписокЗначений
не хранятся в информационной базе.
Создание списка значений
Как и все объекты агрегатного типа, список значений создается с помощью специальной функции СоздатьОбъект() встроенного языка:
сз = СоздатьОбъект("СписокЗначений");
Инициализация элементов списка значений
Каждый элемент списка значений характеризуется следующими свойствами:
- Значение — само значение;
- Представление — строковое представление значения;
- Пометка — числовое значение, означающее, что данный элемент отмечен в списке;
По умолчанию, список значений создается пустым. Для добавления нового элемента списка значений, используется метод ДобавитьЗначение() объекта:
сз.ДобавитьЗначение(1, "Один"); сз.ДобавитьЗначение(2, "Два");
Обратите внимание, что вместе со значением Вы можете указать его строковое представление.
Манипуляция элементами списка
Над элементами списка значений возможны различные действия, включая вставку новых элементов, сортировку, изменение и удаление существующих.
Вставка новых значений возможна в произвольное место списка. Для этого используется метод ВставитьЗначение():
сз.ВставитьЗначение(1, 100, "100 руб.");
Для получения значения элемента списка по номеру используется метод ПолучитьЗначение() объекта:
Значение = сз.ПолучитьЗначение(1);
Удаление элементов списка производится с помощью метода УдалитьЗначение():
сз.УдалитьЗначение(Позиция);
Интерактивные функции
Объект СписокЗначений имеет несколько методов, позволяющих взаимодействовать с пользователем. Например, с помощью метода ВыбратьЗначение() можно предложить пользователю выбрать одно из значений:
Рез = сз.ВыбратьЗначение(ВыбЗначение, "Укажите стоимость");
Также, можно предложить пользователю отметить одно или несколько элементов списка. Для этого используется метод ОтметитьЗначения(), который выводит список с пометками (checkboxes):
Рез = сз.ОтметитьЗначения();
Найти все отмеченные пользователем значения можно, используя перебор элементов в цикле, и метод Пометка(), который возвращает статус пометки элемента:
Отмечен = сз.Пометка(1);
Перебор элементов списка значений
Для перебора (обхода) всех элементов списка значений обычно используется оператор цикла Для:
Для Инд = 1 По сз.РазмерСписка() Цикл Сообщить("сз[" + Инд + "] = " + сз.ПолучитьЗначение(Инд)); КонецЦикла;
Методы объекта СписокЗначений
Методы манипулирования элементами | |
---|---|
ДобавитьЗначение() | метод добавляет новое значение в конец списка |
ВставитьЗначение() | метод выполняет вставку нового значения на указанной позиции списка |
ПолучитьЗначение() | метод возвращает значение элемента по его позиции в списке значений |
УстановитьЗначение() | метод выполняет установку существующего значения на указанной позиции |
Получить() | метод возвращает значение элемента по его строковому представлению |
Установить() | метод выполняет установку значения по его строковому представлению |
НайтиЗначение() | метод выполняет поиск значения в списке |
СдвинутьЗначение() | метод выполняет сдвиг значения в списке |
УдалитьЗначение() | метод выполняет удаление элемента списка на указанной позиции |
УдалитьВсе() | метод выполняет очистку списка значений |
Сортировать() | метод выполняет сортировку элементов списка значений по их значению |
СортироватьПоПредставлению() | метод выполняет сортировку элементов списка значений по их представлению |
Методы манипулирования списком значений | |
РазмерСписка() | метод возвращает размер (количество элементов) списка значений |
Выгрузить() | метод выгружает значения списка в другой список или таблицу значений |
Интерактивные методы | |
ВыбратьЗначение() | метод предлагает пользователю выбрать значение из списка в интерактивном окне |
ТекущаяСтрока() | метод возвращает\устанавливает текущую строку, выделенную в элементе управления на форме |
ОтметитьЗначения() | метод предлагает пользователю выставить пометки напротив элементов списка в интерактивном диалоговом окне |
Пометка() | метод определяет, установлена ли пометка напротив указанного значения |
Специальные методы | |
Принадлежит() | метод определяет, принадлежит ли списку указанное значение |
ВСтрокуСРазделителями() | метод выполняет упаковку значений списка в строку |
ИзСтрокиСРазделителями() | метод выполняет распаковку значений списка из строки |