📦 Core Module v1.0

A1sVL — Списки значений

Умные списки выбора и фильтрации. Пометки (галочки), сортировка, представления и поддержка сложных типов данных.

25+
Методов
2
Зависимостей
100%
Fluent
0
External
🚀 Быстрый старт

Два подхода

A1sVL поддерживает как статические функции для быстрых операций, так и мощный Fluent интерфейс для работы с пометками.

FluentPipeline.bsl
// ✨ 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();
StaticAPI.bsl
// 📦 Static API — Утилиты и Создание

// Создание из строки
Месяцы = A1sVL.Of("Январь,Февраль,Март");

// Пометки (Checkmarks)
// Отметить нужные элементы
A1sVL.Check(Список, "Январь,Март");

// Сортировка (Static)
A1sVL.Sort(Список, "Desc", Истина); // По убыванию, по представлению

// Фильтрация пометок
Отмеченные = A1sVL.GetChecked(Список);
Задача ❌ Было (Классика) ✅ Стало (A1sVL)
Создание списка Список = Новый СписокЗначений;
Элемент = Список.Добавить();
Элемент.Значение = 1;
Элемент.Пометка = ...;
Список = A1sVL.Of(1, 2, 3);
// Или с презентацией: A1sVL.On().Add(...)
Отметить несколько // Цикл поиска по значению
// Список.НайтиПоЗначению().Пометка = Истина;
A1sVL.Check(Список, "Знач1,Знач2");
Получить отмеченные // Цикл с проверкой Элемент.Пометка Массив = A1sVL.GetChecked(Список);
✨ Возможности

Почему A1sVL?

Smart Checkmarks

Методы `Check`, `Uncheck`, `Toggle` позволяют управлять пометками в одну строку, а не через цикл.

📋

UI Support

Умное добавление элементов с поддержкой `Presentation`, `Picture` и `Check`. Идеально для выпадающих списков.

🔄

Sort & Reverse

Сортировка как по значению (Asc/Desc), так и по представлению.

🔍

Filter Checks

`GetChecked` и `GetUnchecked` возвращают массивы значений соответствующих элементов.

Unique

Метод `Unique` удаляет дубликаты из списка, оставляя только уникальные значения.

📄

Parse

Разбор строки с разделителем в список значений (`From`).

🧠 Deep Dive

Presentations & Forms

Пример создания полноценного списка выбора для формы.

FormDropdown.bsl
// ═════════════════════════════════════════════════════════════
// СЦЕНАРИЙ: Список валют для выпадающего списка
// ═════════════════════════════════════════════════════════════

// A1sVL автоматически создаст структуру для каждого элемента
Валюты = A1sVL.On()
    // Добавляем элементы со структурой данных
    .Add(A1sDS.Of(
        "Value",       Справочники.Валюты.Доллар, // Значение (ключ)
        "Presentation", "Доллар США",           // Представление (текст)
        "Check",       Истина                      // Выбран по умолчанию?
    ))
    .Add(A1sDS.Of("Value", Справочники.Валюты.Евро, "Presentation", "Евро"))
    .Add(A1sDS.Of("Value", Справочники.Валюты.Рубль, "Presentation", "Рубль"))
    .Sort("Asc", Истина) // Сортируем по представлению
    .Value();

// Готово для привязки к полю формы
ЭлементыФормы.Валюта.СписокВыбора = Валюты;
🔗 Fluent API

A1sDP_VL — Методы цепочек

Точка входа: 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 Массив значений неотмеченных элементов.
📦 Static API

A1sVL — Статические функции

🔹 Создание

Функция Описание
.Of(...) Создает список из значений (до 20 шт).
.From(String, Delim) Парсит строку с разделителем.
.OfRange(Start, End) Числовой диапазон (например, 2010-2020).
.FromSource(Source) Из массива или другого списка.

🔹 Checkmarks & Sort

Функция Описание
.Check(VL, Values) Отметить элементы (строка значений).
.Uncheck(VL, Values) Снять пометки.
.Toggle(VL, Values) Инвертировать пометки.
.CheckAll(VL) Отметить все.
.UncheckAll(VL) Снять все.
.Sort(VL, Dir, ByPres) Сортировка.
.Unique(VL) Удалить дубликаты.

🔹 Access

Функция Описание
.GetChecked(VL) Массив отмеченных значений.
.GetUnchecked(VL) Массив неотмеченных.
.Find(VL, Value) Элемент списка.
.Contains(VL, Value) Проверка наличия.
.At(VL, Index) Значение по индексу.
.First(VL) / .Last(VL) Первый/последний элемент.

🔹 Conversion

Функция Описание
.ToArray(VL) Массив значений.
.ToStructArray(VL) Массив структур {Value, Pres, Check}.
.Clone(VL) Копия списка.
.ToString(VL, Delim) Строка с разделителем.