Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОО_ПОЭИС_Л4.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
148 Кб
Скачать
☆

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//1-й вариант

Для Каждого эл Из сз-Сотр Цикл

Сообщить(Эл.Значение);

КонецЦикла;

//2-й вариант

Для н = 0 По сзСотр.Количество()-1 Цикл

Сообщить(сзСотр[н].Значение) ;

КонецЦикла;

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

НайденныйЭлементСписка = сзСотр.НайтиПоЗначению("Иванов");

Если НайденныйЭлементСписка <> Неопределено Тогда

Сообщить ("Элемент найден!");

КонецЕсли;

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

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

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

сзСотр.Добавить("Иванов",,Истина); //пометка установлена

сзСотр.Добавить("Петров"); //пометка не установлена

сзСотр.Добавить("Сидоров"); //пометка не установлена

ВыборПроизведен = сзСотр.ОтметитьЭлементы("Укажите сотрудников");

Если ВыборПроизведен Тогда

Для Каждого эл Из сзСотр Цикл

Если эл.Пометка Тогда

Сообщить("Отмечен сотрудник" + эл.Значение);

КонецЕсли;

КонецЦикла;

КонецЕсли

;

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

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

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

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

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

мас = Новый Массив;

мас.Добавить("Иванов");

мас.Добавить("Якушин");

мас.Добавить("Сидоров");

сзСотр.ЗагрузитьЗначения(мас);

сзСотр.СортироватьПоЗначению();

мас2 = сзСотр.ВыгрузитьЗначения();

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

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