ПоляПостроителяОтчета.Очистить

Методы · Clear

Очищает коллекцию.

Синтаксис

Очистить()

Примеры платформы

ПостроительОтчета.ВыбранныеПоля.Очистить();
Полное описание, параметры и ограничения

ПоляПостроителяОтчета.Очистить (ReportBuilderFields.Clear)

ПоляПостроителяОтчета (ReportBuilderFields)

Очистить (Clear)

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

Синтаксис:
Очистить()
Описание:

Очищает коллекцию.

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

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

Пример:

ПостроительОтчета.ВыбранныеПоля.Очистить();

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

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

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

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

Вывести три учебных товара через ПостроительОтчета

Отчёт строится из своей ТаблицаЗначений. Нет запроса к справочникам и нет внешних зависимостей старого кода.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Учебная внешняя обработка с пустой управляемой основной формой. Создайте команду УчебныйПример, кнопку команды и назначьте действие УчебныйПример.

  2. Вставьте полный модуль урока: клиентский обработчик и серверную функцию. Каждый урок — отдельная копия модуля.

  3. Откройте EPF в тонком клиенте Windows. Данные Книга/Ручка/Коробка создаются только в памяти; запрос урока с параметрами не читает таблицы базы.

  4. ПостроительОтчета — существующий API для изучения/сопровождения старого кода. Это не СистемаКомпоновкиДанных и не рекомендация заменять ею современные отчёты.

&НаКлиенте
Процедура УчебныйПример(Команда)
    ТабДок = СформироватьУчебныйОтчет();
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.Показать("Учебный ПостроительОтчета");
КонецПроцедуры

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

    ТабДок = Новый ТабличныйДокумент;
    Построитель.Вывести(ТабДок);
    Возврат ТабДок;
КонецФункции

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

  1. Сначала создаём свои три строки и вычисляем Сумма = Количество × Цена.

  2. ОписаниеИсточникаДанных оборачивает готовую таблицу. Колонки описания задают доступность выбора, отбора, порядка и измерений.

  3. ВыбранныеПоля явно содержит четыре выводимых поля: категория не выводится в этой задаче.

  4. ИсточникДанных установлен, поэтому ПолучитьЗапрос не вызывается: этот метод для такого режима недоступен по справке.

  5. Вывести формирует ТабличныйДокумент на сервере. Клиент только показывает его, не печатает.

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

  1. Проверки исходных трёх строк и суммы 860 — Истина.

  2. В отчёте Книга 3/250/750, Ручка 1/50/50, Коробка 2/30/60.

  3. Заголовок учебный, в рабочей базе не создаются новые товары.

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

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

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

  1. ЗаполнитьНастройки автоматически заполняет настройки из текста запроса; его не используем для этого табличного источника.

  2. ТаблицаЗначений формируется на сервере: нельзя переносить её создание в тонкий клиент без изменения архитектуры.

  3. Наличие этого API не делает его тождественным СКД.

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

Управлять колонками отчёта, не меняя исходную таблицу

ПутьКДанным указывает исходное поле, Имя — имя настройки, Представление — подпись. Проверяем все девять методов выбора полей.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Учебная внешняя обработка с пустой управляемой основной формой. Создайте команду УчебныйПример, кнопку команды и назначьте действие УчебныйПример.

  2. Вставьте полный модуль урока: клиентский обработчик и серверную функцию. Каждый урок — отдельная копия модуля.

  3. Откройте EPF в тонком клиенте Windows. Данные Книга/Ручка/Коробка создаются только в памяти; запрос урока с параметрами не читает таблицы базы.

  4. ПостроительОтчета — существующий API для изучения/сопровождения старого кода. Это не СистемаКомпоновкиДанных и не рекомендация заменять ею современные отчёты.

&НаКлиенте
Процедура УчебныйПример(Команда)
    ТабДок = СформироватьУчебныйОтчет();
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.Показать("Учебный ПостроительОтчета");
КонецПроцедуры

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

    ТабДок = Новый ТабличныйДокумент;
    Построитель.Вывести(ТабДок);
    Возврат ТабДок;
КонецФункции

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

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

  2. Для Товара источник Наименование, имя настройки Товар, подпись Учебный товар — три разных понятия.

  3. Вставить получает путь, имя и позицию последним параметром; это не сигнатура Вставить у массива.

  4. Найти ищет Имя настройки. Индекс/Получить работают с позицией. Сдвигаем количество и возвращаем исходный порядок.

  5. Временную цену удаляем из выбранных полей, не из исходных данных. Итог: Товар, Количество, Стоимость.

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

  1. Шесть проверок Истина.

  2. В отчёте три колонки: Учебный товар, Количество, шт., Стоимость, руб.

  3. Исходная таблица всё ещё содержит Категория/Наименование/Количество/Цена/Сумма.

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

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

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

  1. Удаление выбранного поля не удаляет данные таблицы или реквизит конфигурации.

  2. Имя настройки не всегда совпадает с ПутьКДанным; искать по неправильному имени нельзя.

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

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

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

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

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