Тип: ПоляНастройки. Доступные поля.
Полное описание, параметры и ограничения
ПостроительЗапроса.ДоступныеПоля (QueryBuilder.AvailableFields)
ПостроительЗапроса (QueryBuilder)
ДоступныеПоля (AvailableFields)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: ПоляНастройки.
Доступные поля.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Построить результат из собственных трёх товарных строк
ТаблицаЗначений оборачивается в ОписаниеИсточникаДанных; колонки отдельно разрешаются для полей, отбора и порядка.
Где и как запускать
Полный серверный общий модуль собственной учебной базы.
Подготовка
Создайте собственный общий модуль УчебныйПостроительЗапроса в учебной базе 8.5.1.1343. Установите флаг Сервер. Каждый урок — отдельный полный текст модуля с процедурой ВыполнитьПример() Экспорт.
Из серверного обработчика команды своей учебной обработки вызовите УчебныйПостроительЗапроса.ВыполнитьПример(). Не переносите серверные таблицы значений в тонкий клиент.
Данные Книга/Ручка/Коробка создаются самим уроком в памяти. Нет чтения справочников, документов, регистров, внешних сервисов или записи информационной базы.
ПостроительЗапроса — отдельный старый API, не объект Запрос и не конструктор запросов. У него нет Вывести и оформительских свойств ПостроительОтчета.
Проверки рассчитаны на исходные вымышленные значения. После изменения образцов пересчитайте контрольные суммы и количества строк.
Процедура ВыполнитьПример() Экспорт
Данные = Новый ТаблицаЗначений;
Данные.Колонки.Добавить("Категория", Новый ОписаниеТипов("Строка"));
Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Данные.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
Данные.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
Образцы = Новый Массив;
Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Книга", 3, 250));
Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Ручка", 1, 50));
Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Упаковка", "Коробка", 2, 30));
Для Каждого Образец Из Образцы Цикл
СтрокаДанных = Данные.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДанных, Образец);
СтрокаДанных.Сумма = СтрокаДанных.Количество * СтрокаДанных.Цена;
КонецЦикла;
Описание = Новый ОписаниеИсточникаДанных(Данные);
Для Каждого Колонка Из Описание.Колонки Цикл
Колонка.Поле = Истина;
Колонка.Отбор = Истина;
Колонка.Порядок = Истина;
Колонка.Измерение = Колонка.Имя = "Категория";
КонецЦикла;
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Описание;
Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
Построитель.ВыбранныеПоля.Очистить();
Построитель.ВыбранныеПоля.Добавить("Категория");
Построитель.ВыбранныеПоля.Добавить("Наименование");
Построитель.ВыбранныеПоля.Добавить("Количество");
Построитель.ВыбранныеПоля.Добавить("Цена");
Построитель.ВыбранныеПоля.Добавить("Сумма");
Сообщить(ТипЗнч(Построитель.ИсточникДанных) = Тип("ОписаниеИсточникаДанных"));
Сообщить(Построитель.ДоступныеПоля.Количество() = 5);
Сообщить(Построитель.ДоступныеПоля.Найти("Сумма") <> Неопределено);
Сообщить(Построитель.ВыбранныеПоля.Количество() = 5);
Сообщить(Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять);
Построитель.Выполнить();
Строки = Построитель.Результат.Выгрузить();
Сообщить(Строки.Количество() = 3);
Сообщить(Строки.Итог("Сумма") = 860);
Сообщить(Данные.Количество() = 3);
Сообщить(Данные.Итог("Сумма") = 860);
Для Каждого СтрокаРезультата Из Строки Цикл
Сообщить(СтрШаблон("%1: %2", СтрокаРезультата.Наименование, СтрокаРезультата.Сумма));
КонецЦикла;
КонецПроцедурыРазбор по шагам
Создаются пять типизированных колонок и три строки: 750, 50, 60; общий итог 860.
ОписаниеИсточникаДанных содержит доступные операции каждой колонки. Это не метаданные и не запрос к базе.
Категория дополнительно разрешена как измерение, остальные колонки — детали.
ВыбранныеПоля определяет состав результата; ДоступныеПоля — разрешённый набор, а не выбранные строки.
Здесь не нужен текст запроса и запрещён ПолучитьЗапрос. Результат выгружается после Выполнить.
Как проверить результат
Девять булевых проверок Истина, затем строки Книга 750, Ручка 50, Коробка 60.
Порядок строк без явного Порядок не используется как условие успешности.
Ожидаемый результат
Получен содержательный результат из локального источника; исходная таблица не изменена.
На что обратить внимание
ДобавлениеПредставлений относится к представлениям данных, не к дизайну отчёта. В этом наборе нет ссылок; разницу режимов на них урок не доказывает.
Не присваивайте ТаблицаЗначений непосредственно ИсточникДанных: используется документированный объект описания.
ПостроительЗапроса не выводит табличный документ сам.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.