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