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