Список значений - это аналог одномерного массива в 1С, который предназначен для хранения и обработки промежуточных данных, возникающих в процессе работы программы. Объект "Список значений" имеет множество полезных возможностей и работает очень быстро. Следует учитывать, что в языке 1С есть и одномерные массивы в том смысле, как это принято в других языках программирования (Перем мас[10]). Список значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.
//у каждого значения в СпискеЗначений есть экранное представление //если оно не указано, то используется стандартное строковое представление объекта
СписокЗнач.ДобавитьЗначение("Иванов Иван Иванович"); СписокЗнач.ДобавитьЗначение(Сотрудник); СписокЗнач.ДобавитьЗначение(1,"Значение №1");
СписокЗнач.УстановитьЗначение(3,3,"Значение №3"); //установить новое значение и представление 3-й позиции
стр = ""; Для Номер = 1 По СписокЗнач.РазмерСписка() Цикл ...значение = СписокЗнач.ПолучитьЗначение(Номер, стр); //получить значение и представление ...Сообщить(значение + ", " + стр); КонецЦикла;
//сортировать по значению СписокЗнач.Сортировать(); //по возрастанию СписокЗнач.Сортировать(1); //по убыванию
//сортировать по представлению СписокЗнач.СортироватьПоПредставлению(); //по возрастанию СписокЗнач.СортироватьПоПредставлению(1); //по убыванию
//поиск по значению Синтаксис: НайтиЗначение(<Знач>) Возвращает номер позиции списка, в которой найдено значение или 0, если не найдено
номстр = СписокЗнач.НайтиЗначение (Сотрудник);
//проверка вхождения значения в список //работает очень быстро, если между проверками список не изменяется. //если передается элемент справочника, а в списке хранятся группы справочника //тогда проверяется вхождение элемента справочника в группу
Если СписокЗнач.Принадлежит(Сотрудник)=1 Тогда ....<действия> КонецЕсли;
СписокЗнач.УдалитьВсе(); //очистить список значений
//удаляет значения из указанной позиции СписокЗнач.УдалитьЗначение(откуда, [сколько]);
Список значений как элемент диалога Список значений может использоваться в экранных формах как элемент диалога с пользователем.
//установить курсор на указанную строку или можно узнать, где находится курсор. ТекСтрока = СписокЗнач.ТекущаяСтрока(НовСтрока);
//список значений в диалоге может иметь пометки (флажки)
пометка = СписокЗнач.Пометка(Позиция); //прочитать пометку у значения списка СписокЗнач.Пометка(Позиция,1); //установить пометку у значения списка СписокЗнач.Пометка(Позиция,0); //снять пометку у значения списка