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