Список значений

Список значений — это аналог одномерного массива, который предназначен в основном для решения интерфейсных задач, например, при использовании элементов управления СписокВыбора и ПолеВыбора.

В списке значения могут храниться значения разных типов, хотя можно наложить ограничение с помощью свойства ТипЗначения.

Список значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.

Список значений можно представить себе как таблицу, содержащую следующие колонки:

• Значение — собственно хранимое значение.

• Представление — пользовательское представление значения, которое будет показано при выводе значения на экран, например, в диалоге выбора значения из списка. Если представление не указано, то оно формируется системой автоматически.

• Пометка - пометка (флажок), связанная со значением. Может быть использована для отметки некоторых значений из списка.

• Картинка — графическое изображение, связанное с данным значением.

В 1С:Предприятии 8.0 объект СписокЗначений состоит из объектов типа ЭлементСпискаЗначений, которые имеют свойства Значение, Представление, Пометка и Картинка.

Создание новых списков значений производится с помощью ключевого слова Новый:

 

сзСотр = Новый СписокЗначений;
 

Ниже демонстрируются приемы добавления и удаления элементов списка значений:

 

сзСотр.Очистить(); //удалим все элементы

 

//У следующего элемента индекс 0, представление "Иванов Иван"

сзСотр.Добавить("Иванов","Иванов Иван");

 

//У следующего элемента будет индекс 1, представление "Петров Петр"

//и установлена пометка

сзСотр.Добавить("Петров","Петров Петр", Истина);

сзСотр.Удалить(1); //удалить 2-й элемент, т.е. Петрова

сзСотр.Вставить(0,"Сидоров"); //Иванов сдвигается ниже

сзСотр.Сдвинуть(1,-1); //сдвинем Иванова обратно к началу

 

Обращение к элементу списка значений производится по индексу через оператор [...] или с помощью метода Получить, например:

 

сзСотр[0].Значение = "Кузнецов";
 

Перебор элементов списка значений производится следующим образом:

 

//1-й вариант
Для Каждого эл Из сзСотр Цикл
	Сообщить(Эл.Значение);
КонецЦикла;
 
//2-й вариант
Для н = 0 По сзСотр.Количество()-1 Цикл
	Сообщить(сзСотр[н].Значение);
КонецЦикла;

 

В списке значений можно искать заданное значение:

 

НайденныйЭлементСписка = сзСотр.НайтиПоЗначению("Иванов");
Если НайденныйЭлементСписка = Неопределено Тогда
	Сообщить("Элемент найден!");
КонецЕсли;

 

Как уже говорилось выше, в списке значений могут быть пометки, которые представляют собой флажки (значения типа «булево»). С помощью пометок несколько значений списка могут быть выделены, и тем самым они будут отличаться от остальных. Назначение пометок определяется проектной логикой.

Разработчик может программно считывать и устанавливать пометки у элементов списка значений:

 

сзСотр = Новый СписокЗначений;
сзСотр.Добавить("Иванов",Истина); //пометка установлена
сзСотр.Добавить("Петров"); //пометка не установлена
сзСотр.Добавить("Сидоров"); //пометка не установлена
ВыборПроизведен = сзСотр.ОтметитьЭлементы("Укажите сотрудников");
Если ВыборПроизведен Тогда
	Для Каждого эл Из сзСотр Цикл
		Если эл.Пометка Тогда
			Сообщить("Отмечен сотрудник " + эл.Значение);
		КонецЕсли;
	КонецЦикла;
КонецЕсли;

 

Методы ВыбратьЭлемент и ОтметитьЭлементы открывают диалоговое окно для пользователя, в котором он может выбрать один элемент или расставить пометки, тем самым выбрав несколько элементов.

Элементы списка значений могут быть легко отсортированы по значению или по представлению:

 

сзСотр.СортироватьПоЗначению(НаправлениеСортировки.Возр);
сзСотр.СортироватьПоПредставлению(НаправлениеСортировки.Убыв);

 

В список значений можно загрузить значения из массива и выгрузить значения в массив, например:

 

мас = Новый Массив;
мас.Добавить("Иванов");
мас.Добавить("Якушин");
мас.Добавить("Сидоров"};
сзСотр.ЗагрузитьЗначения(мас) ;
сзСотр.СортироватьПоЗначению();
мас2 = сзСотр.ВыгрузитьЗначения();

 

При размещении в форме поля списка автоматически создается новый реквизит формы типа СписокЗначений. Через этот реквизит можно управлять содержимым списка, добавлять или удалять элементы, расставлять пометки, задавать картинки. Следует понимать, что ПолеСписка — это не список значений, а элемент управления, имеющий собственный набор свойств и методов.

Со списком значений также тесно связан элемент управления ПолеВыбора. Его свойство СписокВыбора представляет собой список значений, из которого пользователь может выбрать одно значение. Организационная смена директора компании . аренда экрана