A1sQ.UnloadColumn
Назначение: выполнить запрос и получить Массив значений одной колонки по имени.
Экономит: вместо Unload(...).ВыгрузитьКолонку("Имя") — один вызов.
Экономит: вместо Unload(...).ВыгрузитьКолонку("Имя") — один вызов.
Сигнатура
Function UnloadColumn(
QueryText,
ColumnName,
Value1 = Undefined, Value2 = Undefined, Value3 = Undefined, Value4 = Undefined,
Value5 = Undefined, Value6 = Undefined, Value7 = Undefined, Value8 = Undefined
) Export
Как работает
// По коду A1sQ
Функция UnloadColumn(Текст, ColumnName, V1..V8) Экспорт
ТЗ = Unload(Текст, V1, V2, V3, V4, V5, V6, V7, V8);
Возврат ТЗ.ВыгрузитьКолонку(ColumnName); // Массив
КонецФункции
Исключения не перехватываются: если колонки с именем ColumnName нет в результате, платформа бросит ошибку «колонка не найдена». Используйте корректные имена или проверяйте заранее состав колонок.
Параметры
- QueryText — текст запроса 1С.
- ColumnName — имя колонки в результате (учитывает алиасы в SELECT).
- Value1..Value8 — значения для первых уникальных параметров (позиционно, как в BuildQ).
Возвращает
Массив — значения указанной колонки, в порядке строк результата. Если строк нет — пустой массив.
Примеры
1) Список ссылок пользователей
IDList = A1sQ.UnloadColumn("
|ВЫБРАТЬ Ссылка КАК ID
|ИЗ Справочник.Пользователи
|ГДЕ НЕ Заблокирован", "ID");
2) Параметры периода
Документы = A1sQ.UnloadColumn("
|ВЫБРАТЬ Ссылка
|ИЗ Документ.ПоступлениеТоваровУслуг
|ГДЕ Дата МЕЖДУ &D1 И &D2", "Ссылка",
НачалоПериода, КонецПериода);
3) Только уникальные значения — делайте это в запросе
// Идеально — сразу в запросе, чтобы не фильтровать массив вручную
Коды = A1sQ.UnloadColumn("
|ВЫБРАТЬ
| РАЗЛИЧНЫЕ Код
|ИЗ Справочник.Номенклатура", "Код");
4) Отфильтровать пустые значения после выгрузки
Значения = A1sQ.UnloadColumn("ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура", "Наименование");
Непустые = Новый Массив;
Для Каждого V Из Значения Цикл
Если ЗначениеЗаполнено(V) Тогда Непустые.Добавить(V); КонецЕсли;
КонецЦикла;
Нюансы и ограничения
✅ Быстрый способ получить список значений из результата
✅ Учитывает алиасы — можно выбирать "Колонка КАК Имя" и использовать Имя
❗ Полная выгрузка (через Unload) → держите в уме расход памяти
❗ Ошибки не ловятся (нет Try/Except) — используйте корректное имя колонки
❗ Для уникальности/сортировки/фильтрации лучше использовать SQL: РАЗЛИЧНЫЕ, СГРУППИРОВАТЬ, УПОРЯДОЧИТЬ