Умные списки выбора и фильтрации. Пометки (галочки), сортировка, представления и поддержка сложных типов данных.
A1sVL поддерживает как статические функции для быстрых операций, так и мощный Fluent интерфейс для работы с пометками.
// ✨ Fluent API — Управление списком выбора // 1. Создание списка с представлениями (для формы) Список = A1sVL.On() .Add(A1sDS.Of("Value", 1, "Presentation", "Активен")) .Add(A1sDS.Of("Value", 2, "Presentation", "Заблокирован")) .Sort("Asc", Истина) // По названию .Value(); // 2. Управление пометками (галочками) A1sVL.On(Список) .Check("Активен,Заблокирован") // Отметить несколько .CheckAll() // Отметить все .Value(); // 3. Получение только отмеченных Выбранные = A1sVL.On(Список) .FilterChecked() // Только с галочками .ToArray();
// 📦 Static API — Утилиты и Создание // Создание из строки Месяцы = A1sVL.Of("Январь,Февраль,Март"); // Пометки (Checkmarks) // Отметить нужные элементы A1sVL.Check(Список, "Январь,Март"); // Сортировка (Static) A1sVL.Sort(Список, "Desc", Истина); // По убыванию, по представлению // Фильтрация пометок Отмеченные = A1sVL.GetChecked(Список);
| Задача | ❌ Было (Классика) | ✅ Стало (A1sVL) |
|---|---|---|
| Создание списка |
Список = Новый СписокЗначений;
|
Список = A1sVL.Of(1, 2, 3);
|
| Отметить несколько |
// Цикл поиска по значению
|
A1sVL.Check(Список, "Знач1,Знач2");
|
| Получить отмеченные |
// Цикл с проверкой Элемент.Пометка
|
Массив = A1sVL.GetChecked(Список);
|
Методы `Check`, `Uncheck`, `Toggle` позволяют управлять пометками в одну строку, а не через цикл.
Умное добавление элементов с поддержкой `Presentation`, `Picture` и `Check`. Идеально для выпадающих списков.
Сортировка как по значению (Asc/Desc), так и по представлению.
`GetChecked` и `GetUnchecked` возвращают массивы значений соответствующих элементов.
Метод `Unique` удаляет дубликаты из списка, оставляя только уникальные значения.
Разбор строки с разделителем в список значений (`From`).
Пример создания полноценного списка выбора для формы.
// ═════════════════════════════════════════════════════════════ // СЦЕНАРИЙ: Список валют для выпадающего списка // ═════════════════════════════════════════════════════════════ // A1sVL автоматически создаст структуру для каждого элемента Валюты = A1sVL.On() // Добавляем элементы со структурой данных .Add(A1sDS.Of( "Value", Справочники.Валюты.Доллар, // Значение (ключ) "Presentation", "Доллар США", // Представление (текст) "Check", Истина // Выбран по умолчанию? )) .Add(A1sDS.Of("Value", Справочники.Валюты.Евро, "Presentation", "Евро")) .Add(A1sDS.Of("Value", Справочники.Валюты.Рубль, "Presentation", "Рубль")) .Sort("Asc", Истина) // Сортируем по представлению .Value(); // Готово для привязки к полю формы ЭлементыФормы.Валюта.СписокВыбора = Валюты;
Точка входа: A1sVL.On()
| Метод | Описание |
|---|---|
.Add(...) |
Добавить элементы. Принимает значения или A1sDS (Value, Pres, Check). |
.Insert(Index, Val) |
Вставить по индексу. |
.Delete(Values) |
Удалить по значению. |
.Clear() |
Очистить список. |
.Sort(Dir, ByPres) |
Сортировка (Asc/Desc, по представлению). |
.Reverse() |
Обратный порядок. |
.Unique() |
Удалить дубликаты. |
.Check(Values) |
Поставить галочки на значения. |
.Uncheck(Values) |
Снять галочки. |
.ToggleCheck(Values) |
Инвертировать галочки. |
.CheckAll() |
Отметить все. |
.UncheckAll() |
Снять все. |
.Union(Source) |
Добавить элементы из другого списка. |
| Метод | Возвращает | Описание |
|---|---|---|
.Value() |
ValueList | Результирующий список. |
.Clone() |
ValueList | Полная копия. |
.ToArray() |
Array | Массив значений. |
.ToStructArray() |
Array | Массив структур {Value, Presentation}. |
.At(Index) |
Variant | Значение элемента. |
.First() / .Last() |
Variant | Первый/последний элемент. |
.Count() |
Number | Количество элементов. |
.IsEmpty() |
Boolean | Проверка на пустоту. |
.Contains(Value) |
Boolean | Проверка наличия. |
.Checked() |
Array | Массив значений отмеченных элементов. |
.Unchecked() |
Array | Массив значений неотмеченных элементов. |
| Функция | Описание |
|---|---|
.Of(...) |
Создает список из значений (до 20 шт). |
.From(String, Delim) |
Парсит строку с разделителем. |
.OfRange(Start, End) |
Числовой диапазон (например, 2010-2020). |
.FromSource(Source) |
Из массива или другого списка. |
| Функция | Описание |
|---|---|
.Check(VL, Values) |
Отметить элементы (строка значений). |
.Uncheck(VL, Values) |
Снять пометки. |
.Toggle(VL, Values) |
Инвертировать пометки. |
.CheckAll(VL) |
Отметить все. |
.UncheckAll(VL) |
Снять все. |
.Sort(VL, Dir, ByPres) |
Сортировка. |
.Unique(VL) |
Удалить дубликаты. |
| Функция | Описание |
|---|---|
.GetChecked(VL) |
Массив отмеченных значений. |
.GetUnchecked(VL) |
Массив неотмеченных. |
.Find(VL, Value) |
Элемент списка. |
.Contains(VL, Value) |
Проверка наличия. |
.At(VL, Index) |
Значение по индексу. |
.First(VL) / .Last(VL) |
Первый/последний элемент. |
| Функция | Описание |
|---|---|
.ToArray(VL) |
Массив значений. |
.ToStructArray(VL) |
Массив структур {Value, Pres, Check}. |
.Clone(VL) |
Копия списка. |
.ToString(VL, Delim) |
Строка с разделителем. |