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