Создание и обход
СписокЗначений = Новый СписокЗначений; // добавить элемент в конец списка СписокЗначений.Добавить( "УстановитьФлажки", // Значение "Установить флажки", // Представление Истина, // Пометка БиблиотекаКартинок.УстановитьФлажки // Картинка ); // вставить в позицию с индексом 0 // возвращается значение с типом "ЭлементСпискаЗначений" ЭлементСпискаЗначений = СписокЗначений.Вставить(0, "СнятьФлажки", "Снять флажки", Ложь, БиблиотекаКартинок.СнятьФлажки); // сдвинуть элемент списка на 1 позицию вниз // отрицательное значение сдвигает вверх СписокЗначений.Сдвинуть(ЭлементСпискаЗначений, 1); // вывод элементов списка Для Каждого Элемент Из СписокЗначений Цикл ТекстСообщения = СтрШаблон("Значение: %1, Представление: %2", Элемент.Значение, Элемент.Представление); Сообщить(ТекстСообщения); КонецЦикла; // Что будет выведено?
Показать решение
// обход осуществляется в порядке индексов элементов // операция сдвига передвинула "СнятьФлажки" на второе место
Получение и поиск элементов списка
// создаем массив значений МассивЗначений = Новый Массив; МассивЗначений.Добавить("УстановитьФлажки"); МассивЗначений.Добавить("СнятьФлажки"); СписокЗначений = Новый СписокЗначений; // загрузка значений из массива СписокЗначений.ЗагрузитьЗначения(МассивЗначений); // поиск по значению Элемент = СписокЗначений.НайтиПоЗначению("Значение"); Если Элемент=Неопределено Тогда // значение не найдено КонецЕсли; // значение будет найдено, тип ЭлементСнятьФлажки - ЭлементСпискаЗначений ЭлементСнятьФлажки = СписокЗначений.НайтиПоЗначению("СнятьФлажки"); // идентификатор элемента списка // не привязан к позиции элемента в списке ИдентификаторЭлемента = ЭлементСнятьФлажки.ПолучитьИдентификатор(); // поиск по идентификатору ЭлементСписка = СписокЗначений.НайтиПоИдентификатору(ИдентификаторЭлемента); // изменим позицию элемента СписокЗначений.Сдвинуть(ЭлементСнятьФлажки, -1); // индекс элемента списка // определяет позицию элемента в списке ИндексЭлемента = СписокЗначений.Индекс(ЭлементСнятьФлажки); // тернарный оператор ? ТекстСообщения = ?(ИдентификаторЭлемента = ИндексЭлемента, "идентификатор совпадает с индексом", "идентификатор не совпадает с индексом"); Сообщить(ТекстСообщения); // Что будет выведено?
Показать решение
идентификатор не совпадает с индексом // индекс определяет позицию элемента // она была изменена методом Сдвинуть // идентификатор назначается при добавлении элемента // и более не изменяется
Сортировка и выбор элементов списка
// создаем массив значений МассивЗначений = Новый Массив; МассивЗначений.Добавить("УстановитьФлажки"); МассивЗначений.Добавить("СнятьФлажки"); МассивЗначений.Добавить("ЗатемнитьФлажки"); СписокЗначений = Новый СписокЗначений; // загрузка значений из массива СписокЗначений.ЗагрузитьЗначения(МассивЗначений); // сортируем по значению СписокЗначений.СортироватьПоЗначению(НаправлениеСортировки.Убыв); // выгружаем значения в массив СортированныйМассив = СписокЗначений.ВыгрузитьЗначения(); // можно скопировать список в новый НовыйСписокЗначений = СписокЗначений.Скопировать(); // очистить элементы старого списка СписокЗначений.Очистить(); // добавили новый список в старый СписокЗначений.Добавить(НовыйСписокЗначений, "Значение элемента - список значений"); // вызвали диалог выбора элементов списка // процедура, в которой выполняется этот код должна // быть клиентской и отмечена модификатором Асинх // например: // &НаКлиенте // Асинх Процедура СортировкаИВыборЭлементовСпискаЗначений() РезультатВыбора = Ждать СписокЗначений.ВыбратьЭлементАсинх( "Выберите элемент списка"); // обработали выбор Если РезультатВыбора = Неопределено Тогда Сообщить("Элемент не был выбран"); Возврат; КонецЕсли; ТекстСообщения = СтрШаблон("Тип 1: %1, Тип 2: %2", ТипЗнч(РезультатВыбора), ТипЗнч(РезультатВыбора.Значение)); Сообщить(ТекстСообщения);
Показать решение
Тип 1: Элемент списка значений, Тип 2: Список значений // результатом выбора возвращается "ЭлементСпискаЗначений" // свойство Значение этого элемента в нашем случае // имеет тип "СписокЗначений"
Использование в диалоге
// используем список как набор кнопок СписокКнопок = Новый СписокЗначений; СписокКнопок.Добавить("УстановитьФлажки", "Установить флажки"); СписокКнопок.Добавить("СнятьФлажки", "Снять флажки"); СписокКнопок.Добавить("ЗатемнитьФлажки", "Затемнить флажки"); ТекстВопроса = "Вопрос со своими кнопками"; Ответ = Ждать ВопросАсинх(ТекстВопроса, СписокКнопок, // кнопки в диалоге 5, // таймаут в секундах, по истечению //вернется значение КодВозвратаДиалога.Таймаут "СнятьФлажки" // кнопка по умолчанию ); Если Ответ = "СнятьФлажки" Тогда // нажата кнопка "Снять флажки" КонецЕсли; СписокКнопок.ЗаполнитьПометки(Истина); // установим все пометки в Истина // сбросим пометку у первого и второго элементов СписокКнопок.Получить(0).Пометка = Ложь; СписокКнопок.Получить(1).Пометка = Ложь; // вызов диалога отметки элементов списка ОтмеченныеЭлементыСписка = Ждать СписокКнопок.ОтметитьЭлементыАсинх(); Если ОтмеченныеЭлементыСписка=Неопределено Тогда // нажата кнопка "Отмена" Возврат; КонецЕсли; // обход списка по индексу Для Индекс = 0 По ОтмеченныеЭлементыСписка.Количество()-1 Цикл // для получения элемента используем оператор [...] ЭлементСписка = ОтмеченныеЭлементыСписка[Индекс]; Если ЭлементСписка.Пометка Тогда Сообщить(ЭлементСписка.Представление); КонецЕсли; КонецЦикла; // Что будет выведено?
Показать решение
Затемнить флажки
Использование в форме
// опишем реквизит формы с типом "СписокЗначений" РеквизитСписка = Новый РеквизитФормы("Список", Новый ОписаниеТипов("СписокЗначений")); // создадим реквизит Массив = Новый Массив; Массив.Добавить(РеквизитСписка); ИзменитьРеквизиты(Массив); // создадим связанный элемент ПолеВвода ПолеФормы = Элементы.Добавить("Список", Тип("ПолеФормы")); ПолеФормы.Вид = ВидПоляФормы.ПолеВвода; // вид поля формы ПолеФормы.ПутьКДанным = "Список"; // связь с реквизитом формы // установим ограничение на тип значений списка - только строка ЭтаФорма.Список.ТипЗначения = Новый ОписаниеТипов("Строка"); // подготовим список ограничений ДоступныеЗначения = Новый СписокЗначений; ДоступныеЗначения.Добавить("УстановитьФлажки", "Установить флажки"); ДоступныеЗначения.Добавить("СнятьФлажки", "Снять флажки"); // установим ограничение на значения списка ЭтаФорма.Список.ДоступныеЗначения = ДоступныеЗначения; // добавим в список два элемента, // один допустимый, а второй - нет ЭтаФорма.Список.Добавить("ЗатемнитьФлажки", "Затемнить флажки"); ЭтаФорма.Список.Добавить("СнятьФлажки", "Снять флажки"); // выгрузим значения в массив Массив = ЭтаФорма.Список.ВыгрузитьЗначения(); // сообщим массив ТекстСообщения = СтрСоединить(Массив, ","); Сообщить(ТекстСообщения); // Что будет выведено?
Показать решение
,СнятьФлажки // свойство списка ДоступныеЗначения влияет на "программное // добавление-вставку нового элемента списка значений и // установку значений элементам списков" // поэтому добавление недопустимого значения "ЗатемнитьФлажки" // привело к тому, что элемент списка добавился, но его значение // было сброшено в Неопределено
Элементы коллекции:
ЭлементСпискаЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл.
При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [...].
В качестве аргумента передается индекс элемента (нумерация с 0).
Описание: Используется для доступа к методам списка значений в целом.
Для режима запуска ОбычноеПриложение обмен с сервером невозможен!
Конструкторы (По умолчанию) Синтаксис: Новый СписокЗначений
Синтаксис: ПолучитьИдентификатор()
Возвращаемое значение: Тип: Число.
Описание: Получает идентификатор для элемента списка значений. Этот идентификатор не привязан к позиции элемента в списке.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис:
Вставить(<Индекс>, <Значение>, <Представление>, <Пометка>, <Картинка>)
Параметры:
<Индекс> (обязательный) Тип: Число.
Индекс позиции, на которую надо вставить элемент.
<Значение> (необязательный) Тип: Произвольный.
Значение, которое необходимо вставить.
<Представление> (необязательный) Тип: Строка, ФорматированнаяСтрока.
Строковое выражение, содержащее представление добавляемого значения.
Значение по умолчанию: Пустая строка.
<Пометка> (необязательный) Тип: Булево.
Определяет, создавать новое значение с установленной пометкой или нет.
Значение по умолчанию: Ложь.
<Картинка> (необязательный) Тип: Картинка.
Визуальное представление значения.
Значение по умолчанию: Пустая картинка.
Возвращаемое значение: Тип: ЭлементСпискаЗначений.
Новый элемент списка значений.
Описание: Вставляет новый элемент в список значений на позицию с указанным индексом.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: ВыбратьЭлемент(<Заголовок>, <Элемент>)
Параметры:
<Заголовок> (необязательный) Тип: Строка.
Заголовок окна выбора. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
<Элемент> (необязательный) Тип: ЭлементСпискаЗначений.
Элемент, на который следует изначально спозиционировать список значений при интерактивном выборе. Если значением параметра не является элемент списка значений, входящий в данный список, позиционирования не произойдет.
Возвращаемое значение: Тип: ЭлементСпискаЗначений, Неопределено.
Если пользователь отказался от выбора, возвращает Неопределено.
Описание: Вызывает окно для интерактивного выбора одного из элементов, входящих в список значений.
Доступность: Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Синтаксис: ВыбратьЭлементАсинх(<Заголовок>, <Элемент>)
Параметры:
<Заголовок> (необязательный) Тип: Строка.
Заголовок окна выбора. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
<Элемент> (необязательный) Тип: ЭлементСпискаЗначений.
Элемент, на который следует изначально спозиционировать список значений при интерактивном выборе. Если значением параметра не является элемент списка значений, входящий в данный список, позиционирования не произойдет.
Возвращаемое значение: Тип: Обещание.
Результат выполнения обещания - выбранный элемент, и Неопределено, если пользователь отказался от выбора.
Описание: Асинхронная функция. Позволяет интерактивно выбрать один из элементов, входящих в список значений.
Доступность: Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Синтаксис: ВыгрузитьЗначения()
Возвращаемое значение: Тип: Массив.
Описание: Создает массив и копирует в него значения элементов списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: Добавить(<Значение>, <Представление>, <Пометка>, <Картинка>)
Параметры:
<Значение> (необязательный) Тип: Произвольный.
Значение, которое необходимо добавить.
<Представление> (необязательный) Тип: Строка, ФорматированнаяСтрока.
Строковое выражение, содержащее представление добавляемого значения.
Значение по умолчанию: Пустая строка.
<Пометка> (необязательный) Тип: Булево.
Определяет, создавать новое значение с установленной пометкой или без пометки.
Значение по умолчанию: Ложь.
<Картинка> (необязательный) Тип: Картинка.
Визуальное представление значения.
Значение по умолчанию: Пустая картинка.
Возвращаемое значение: Тип: ЭлементСпискаЗначений.
Описание: Добавляет новый элемент в конец списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: ЗагрузитьЗначения(<МассивЗначений>)
Параметры:
<МассивЗначений> (обязательный) Тип: Массив.
Массив, содержащий значения для заполнения списка значений.
Описание: Загружает список значений значениями из переданного массива. При этом все прежние элементы списка удаляются.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: ЗаполнитьПометки(<ЗначениеПометки>)
Параметры:
<ЗначениеПометки> (обязательный) Тип: Булево.
Значение пометки, устанавливаемой для всех элементов списка значений.
Описание: Устанавливает пометку у всех элементов списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: Индекс(<Элемент>)
Параметры:
<Элемент> (обязательный) Тип: ЭлементСпискаЗначений.
Элемент списка значений, для которого надо определить индекс.
Возвращаемое значение: Тип: Число.
Индекс указанного элемента в списке значений. Если не найдено, то возвращается -1.
Описание: Получает индекс элемента в списке значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: Количество()
Возвращаемое значение: Тип: Число.
Описание: Получает количество элементов списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: НайтиПоЗначению(<ИскомоеЗначение>)
Параметры:
<ИскомоеЗначение> (обязательный) Тип: Произвольный.
Выражение со значением, которое требуется найти.
Возвращаемое значение: Тип: ЭлементСпискаЗначений, Неопределено.
Если ни один элемент не хранит значения, равного искомому, то возвращается значение Неопределено.
Описание: Осуществляет поиск значения элемента списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: НайтиПоИдентификатору(<Идентификатор>)
Параметры:
<Идентификатор> (обязательный) Тип: Число.
Идентификатор элемента списка значений.
Возвращаемое значение: Тип: ЭлементСпискаЗначений, Неопределено.
Неопределено - элемент не найден.
Описание: Получает элемент списка значений по идентификатору.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: ОтметитьЭлементы(<Заголовок>)
Параметры:
<Заголовок> (необязательный) Тип: Строка.
Заголовок окна диалога. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
Возвращаемое значение: Тип: Булево.
Истина - в диалоге пометки нажата кнопка "ОК"; Ложь - в противном случае.
Неопределено - элемент не найден.
Описание: Устанавливает или снимает (интерактивно) пометки у элементов списка значений.
Доступность: Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Синтаксис: ОтметитьЭлементыАсинх(<Заголовок>)
Параметры:
<Заголовок> (необязательный) Тип: Строка.
Заголовок окна диалога. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
Возвращаемое значение: Тип: Обещание.
Результат выполнения обещания - если нажата кнопка "OK", то СписокЗначений, отметка элементов которого была завершена; Неопределено - если была нажата кнопка "Отмена".
Описание: Асинхронная функция. Предназначена для интерактивной установки состояний пометок у элементов списка значений.
Доступность: Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Синтаксис: Очистить()
Описание: Очищает список значений, удаляя из него все элементы.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: ПоказатьВыборЭлемента(<ОписаниеОповещенияОЗакрытии>, <Заголовок>, <Элемент>)
Параметры:
<ОписаниеОповещенияОЗакрытии> (обязательный) Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после закрытия диалога выбора элемента со следующими параметрами: <ВыбранныйЭлемент> - если пользователь отказался от выбора, то Неопределено, <ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
<Заголовок> (необязательный) Тип: Строка.
Заголовок окна выбора. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
<Элемент> (необязательный) Тип: ЭлементСпискаЗначений.
Задает элемент, на который следует изначально спозиционироваться при интерактивном выборе. Если значением параметра не является элементом списка значений, входящим в данный список, позиционирования не произойдет.
Описание: Вызывает окно для интерактивного выбора одного из элементов, входящих в список значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Синтаксис: ПоказатьОтметкуЭлементов(<ОписаниеОповещенияОЗакрытии>, <Заголовок>)
Параметры:
<ОписаниеОповещенияОЗакрытии> (обязательный) Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после закрытия диалога выбора элемента со следующими параметрами: <Список> - если нажата кнопка "OK", то СписокЗначений, отметка элементов которого была завершена; Неопределено - если была нажата кнопка "Отмена"; <ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
<Заголовок> (необязательный) Тип: Строка.
Заголовок окна диалога. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
Описание: Предназначен для интерактивной установки состояний пометок у элементов списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Синтаксис: Получить(<Индекс>)
Параметры:
<Индекс> (обязательный) Тип: Число.
Индекс элемента.
Возвращаемое значение: Тип: ЭлементСпискаЗначений.
Описание: Получает значение по индексу. Работает аналогично оператору [].
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: Сдвинуть(<Элемент>, <Смещение>)
Параметры:
<Элемент> (обязательный) Тип: Число, ЭлементСпискаЗначений.
Индекс сдвигаемого элемента списка либо сам элемент.
<Смещение> (обязательный) Тип: Число.
Количество позиций, на которое следует сдвинуть элемент. Положительное значение соответствует смещению элемента в сторону конца списка (увеличение индекса), отрицательное - к началу.
Описание: Сдвигает элемент списка значений на заданное количество позиций вперед или назад.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: Скопировать()
Возвращаемое значение: Тип: СписокЗначений.
Описание: Создает копию списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: СортироватьПоЗначению(<Направление>)
Параметры:
<Направление> (необязательный) Тип: НаправлениеСортировки.
Способ сортировки - по возрастанию или по убыванию.
Значение по умолчанию: Возр.
Описание: Сортирует список значений в порядке возрастания или убывания хранимых элементами значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: СортироватьПоПредставлению(<Направление>)
Параметры:
<Направление> (необязательный) Тип: НаправлениеСортировки.
Способ сортировки - по возрастанию или по убыванию.
Значение по умолчанию: Возр.
Описание: Сортирует список значений по возрастанию или по убыванию в алфавитном порядке представлений входящих в состав списка значений элементов.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Синтаксис: Удалить(<Элемент>)
Параметры:
<Элемент> (обязательный) Тип: Число, ЭлементСпискаЗначений.
Индекс удаляемого элемента либо сам элемент.
Описание: Удаляет элемент из списка значений.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.