ПоляПостроителяЗапроса.Удалить

Методы · Delete

Удаляет поле из коллекции.

Синтаксис

Удалить(<Поле>)
Полное описание, параметры и ограничения

ПоляПостроителяЗапроса.Удалить (QueryBuilderFields.Delete)

ПоляПостроителяЗапроса (QueryBuilderFields)

Удалить (Delete)

Доступен, начиная с версии 8.0.

Синтаксис:
Удалить(<Поле>)
Параметры:

<Поле> (обязательный)
Тип: ПолеПостроителяЗапроса.
Удаляемое поле.
Описание:

Удаляет поле из коллекции.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Выбрать и переставить поля будущего результата

Имя поля, путь к данным, пользовательское представление и индекс — разные понятия.

Где и как запускать

Полный серверный общий модуль собственной учебной базы.

Подготовка

  1. Создайте собственный общий модуль УчебныйПостроительЗапроса в учебной базе 8.5.1.1343. Установите флаг Сервер. Каждый урок — отдельный полный текст модуля с процедурой ВыполнитьПример() Экспорт.

  2. Из серверного обработчика команды своей учебной обработки вызовите УчебныйПостроительЗапроса.ВыполнитьПример(). Не переносите серверные таблицы значений в тонкий клиент.

  3. Данные Книга/Ручка/Коробка создаются самим уроком в памяти. Нет чтения справочников, документов, регистров, внешних сервисов или записи информационной базы.

  4. ПостроительЗапроса — отдельный старый API, не объект Запрос и не конструктор запросов. У него нет Вывести и оформительских свойств ПостроительОтчета.

  5. Проверки рассчитаны на исходные вымышленные значения. После изменения образцов пересчитайте контрольные суммы и количества строк.

Процедура ВыполнитьПример() Экспорт
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Категория", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
    Данные.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
    Данные.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
    Образцы = Новый Массив;
    Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Книга", 3, 250));
    Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Ручка", 1, 50));
    Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Упаковка", "Коробка", 2, 30));
    Для Каждого Образец Из Образцы Цикл
        СтрокаДанных = Данные.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаДанных, Образец);
        СтрокаДанных.Сумма = СтрокаДанных.Количество * СтрокаДанных.Цена;
    КонецЦикла;
    Описание = Новый ОписаниеИсточникаДанных(Данные);
    Для Каждого Колонка Из Описание.Колонки Цикл
        Колонка.Поле = Истина;
        Колонка.Отбор = Истина;
        Колонка.Порядок = Истина;
        Колонка.Измерение = Колонка.Имя = "Категория";
    КонецЦикла;
    Построитель = Новый ПостроительЗапроса;
    Построитель.ИсточникДанных = Описание;
    Построитель.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
    Построитель.ВыбранныеПоля.Очистить();
    Построитель.ВыбранныеПоля.Добавить("Категория");
    Построитель.ВыбранныеПоля.Добавить("Наименование");
    Построитель.ВыбранныеПоля.Добавить("Количество");
    Построитель.ВыбранныеПоля.Добавить("Цена");
    Построитель.ВыбранныеПоля.Добавить("Сумма");
    Поля = Построитель.ВыбранныеПоля;
    Поля.Очистить();
    Наименование = Поля.Добавить("Наименование", "УчебноеНазвание");
    Наименование.Представление = "Товар для учебного примера";
    Сумма = Поля.Вставить("Сумма", "УчебнаяСумма", 0);
    Сообщить(Поля.Количество() = 2);
    Сообщить(Поля.Индекс(Сумма) = 0);
    Сообщить(Поля.Получить(0) = Сумма);
    Сообщить(Поля.Найти("УчебноеНазвание") = Наименование);
    Сообщить(Наименование.ПутьКДанным = "Наименование");
    Сообщить(Наименование.Имя = "УчебноеНазвание");
    Сообщить(Наименование.Представление = "Товар для учебного примера");
    Поля.Сдвинуть(Сумма, 1);
    Сообщить(Поля.Получить(0) = Наименование);
    Поля.Удалить(Сумма);
    Сообщить(Поля.Количество() = 1);
    Сообщить(Поля.Найти("УчебнаяСумма") = Неопределено);
    Поля.Добавить("Сумма");
    Построитель.Выполнить();
    Сообщить(Данные.Итог("Сумма") = 860);
    Сообщить(Поля.Количество() = 2);
КонецПроцедуры

Разбор по шагам

  1. Очищаем только настройки полей собственного построителя, не таблицу исходных товаров.

  2. Добавляем поле названия и вставляем сумму в позицию 0. У Вставить позиция — третий аргумент, не первый.

  3. Находим поле по собственному имени УчебноеНазвание. Путь остаётся Наименование.

  4. Сдвинуть принимает сам элемент поля. У коллекции Порядок другой контракт — не переносите его сюда.

  5. Удаляем настройку суммы и добавляем её заново. Исходные товарные значения сохраняются.

Как проверить результат

  1. Двенадцать булевых проверок Истина. Итог исходной таблицы остаётся 860.

  2. После удаления УчебнаяСумма поиск возвращает Неопределено; после добавления остаются два поля.

Ожидаемый результат

Настроен компактный набор двух полей, разобраны все методы коллекции полей запроса.

На что обратить внимание

  1. Имя и ПутьКДанным только для чтения; их задают аргументы Добавить/Вставить.

  2. Представление не переименовывает колонку исходной таблицы.

  3. Не полагайтесь на пользовательское имя поля как на имя выгруженной колонки без проверки схемы результата.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.