====== Список значений ======
===== Описание =====
Список Значений представляет собой **линейный упорядоченный список**, упорядоченный в данном случае означает, что на порядок следования элементов в списке можно опираться и сам список можно сортировать. Список значенией удобно использовать для хранения и обработки списка данных обладающих линейной структурой, для вывода значений на форму или для предоставления возможности выбора пользователю. Список на самом деле представляет собой таблицу с фиксированным набором колонок:
* Отметка – булевский тип данных, который позволяет устанавливать пометку для элемента.
* Картинка – нужна для визуального отображения какого либо элемента
* Значение – непосредственно само значение
* Представление – здесь хранится отображаемое для пользователя значение, то есть у нас в значении может храниться все что угодно, начиная от массива заканчивая бинарными данными, пользователю можно показать значение в удобочитаемом виде(указав нужное представление). В случае если представление не указано, то 1С попробует сгенерировать его на основании указанного вами значения.
Как вы могли заметить все дополнительные колонки служат для работы с интерфейсом пользователя. Это связано с тем, что список значений часто используются для предоставления пользователю выбора одного или несколько значений.
===== Создание и использование =====
Список значений создается с помощью метода новый:
МойСписок = Новый СписокЗначений;
Добавление значений в список происходит с помошью методов, ''Добавить()'' и ''Вставить()'' например:
Список = Новый СписокЗначений();
Список.Добавить("Первое значение которое будет добавлено в список");
метод ''Вставить'' отличается от метода ''Добавить'', только возможностью указать позицию для вставки объекта.
У каждого элемента списка значений, есть уникальный идентификатор, который не меняется, вне зависимости от того, что бы не происходило со списком значений. Получить его можно с помощью метода ''ПолучитьИдентификатор()'' применять его нужно к элементу списка значений. В дальнейшем идентификатор можно использовать с помошью, метода НайтиПоИдентификатору(Идентификатор).
Обращение к элементам коллекции происходит [[1c:коллекции:общие_положения|стандартно для коллекции]]
Поиск в коллекции происходит с помощью метода НайтиПоЗначению(), метод возвращает либо элемент списка значений, либо ''Неопределено'', если искомое значение отсутствует в списке. Обратите внимание, что элемент списка значений это не само значение и здесь доступны все свойства описанные выше: отметка, картинка, значение, пометка. Например:
ЗначениеСписка = Список.НайтиПоЗначению(«Просто какая то строка»);
Если ЗначениеСписка.Пометка Тогда
//один алгоритм
Иначе
//другой алгоритм
КонецЕсли;
===== Методы для работы с пользователем =====
Как уже отмечалось, список значений удобная коллекция для интерактивной работы с пользователем. Есть возможность сформировав заранее список с удобными представлениями и картинками. Показать пользователю окно для выбора одного или нескольких значений. Либо дать возможность пользователю поставить отметки в выведенном списке. Для этого используются следующие команды:
* ''ВыбратьЭлементы()'' этот метод выводит окно с выбором значений из списка значений, можно указать заголовок окна и значение на которое нужно позиционироваться при открытии. Метод возвращает выбранный элемент списка значений или ''Неопределено'', если пользователь отказался от выбора.
* ''ОтметитьЭлементы()'' выводит окно позволяя пользователю проставить отметки в списке значений, возвращает ''Истина'' если выбор сделан и ''Ложь'' в противном случае.
Оба вышеприведенных метода работают с [[1c:база:опасность_использования_модальных_окон|модальными окнами]]
Также можно вывести список значений на форму.FIXME(Сделать картинки для обычного и для управляемого приложения)