Исходные количества 3 и 2 дают сумму 5. Добавляем условие больше 2 — остаётся 3; затем удаляем условие и проверяем обратное изменение результата.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В учебной обработке или общем модуле выполните каждый фрагмент отдельно на сервере. Все запросы используют только свои числа и параметры, без справочников, документов и регистров рабочей базы.
СхемаЗапроса редактирует структуру и формирует текст, а Запрос выполняет этот текст. Родительская схема должна оставаться в переменной, пока используются её дочерние объекты.
Не переносите полученные дочерние объекты между разными схемами и не обращайтесь к элементу после его удаления. Упражнения удаления работают только со своей структурой в памяти.
Схема = Новый СхемаЗапроса;
Схема.УстановитьТекстЗапроса("ВЫБРАТЬ Книги.Название КАК Название, СУММА(Книги.Количество) КАК Количество
|ИЗ (ВЫБРАТЬ ""Книга"" КАК Название, 3 КАК Количество ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ""Книга"", 2) КАК Книги
|ГДЕ Книги.Количество > 1
|СГРУППИРОВАТЬ ПО Книги.Название");
Если Схема.ПакетЗапросов.Количество() <> 1 Тогда
ВызватьИсключение "Ожидался один свой запрос";
КонецЕсли;
Выбор = Схема.ПакетЗапросов.Получить(0);
Если ТипЗнч(Выбор) <> Тип("ЗапросВыбораСхемыЗапроса") Тогда
ВызватьИсключение "Ожидалась своя выборка";
КонецЕсли;
Если Выбор.Операторы.Количество() <> 1 Тогда
ВызватьИсключение "Ожидался один внешний оператор своего запроса";
КонецЕсли;
Оператор = Выбор.Операторы.Получить(0);
Отбор = Оператор.Отбор;
Если Отбор.Количество() <> 1 Тогда
ВызватьИсключение "Ожидалось одно собственное условие";
КонецЕсли;
Исходное = Отбор.Найти("Книги.Количество > 1");
Если Исходное = Неопределено Тогда
ВызватьИсключение "Не найдено исходное собственное условие";
КонецЕсли;
Сообщить(Отбор.Индекс(Исходное) = 0);
Сообщить(Отбор.Получить(0) <> Неопределено);
Сообщить(Отбор.Найти("Книги.Количество < 0") = Неопределено);
Запрос = Новый Запрос(Схема.ПолучитьТекстЗапроса());
До = Запрос.Выполнить().Выгрузить();
Если До.Количество() <> 1 Тогда
ВызватьИсключение "Ожидалась одна группа собственных книг";
КонецЕсли;
Сообщить(До[0].Название = "Книга" И До[0].Количество = 5);
Дополнительное = Отбор.Добавить(Новый ВыражениеСхемыЗапроса("Книги.Количество > 2"));
Если Дополнительное = Неопределено Тогда
ВызватьИсключение "Не добавилось собственное условие";
КонецЕсли;
Сообщить(Отбор.Количество() = 2);
Запрос = Новый Запрос(Схема.ПолучитьТекстЗапроса());
Строгий = Запрос.Выполнить().Выгрузить();
Если Строгий.Количество() <> 1 Тогда
ВызватьИсключение "Ожидалась одна группа собственных книг";
КонецЕсли;
Сообщить(Строгий[0].Название = "Книга" И Строгий[0].Количество = 3);
ИндексДополнительного = Отбор.Индекс(Дополнительное);
Если ИндексДополнительного < 0 Или ИндексДополнительного >= Отбор.Количество() Тогда
ВызватьИсключение "Нет допустимого индекса своего условия";
КонецЕсли;
Отбор.Удалить(ИндексДополнительного);
Отбор.Установить(0, Новый ВыражениеСхемыЗапроса("Книги.Количество >= 0"));
Сообщить(Отбор.Количество() = 1);
Запрос = Новый Запрос(Схема.ПолучитьТекстЗапроса());
ПослеЗамены = Запрос.Выполнить().Выгрузить();
Если ПослеЗамены.Количество() <> 1 Тогда
ВызватьИсключение "Ожидалась одна группа собственных книг";
КонецЕсли;
Сообщить(ПослеЗамены[0].Название = "Книга" И ПослеЗамены[0].Количество = 5);
Отбор.Очистить();
Сообщить(Отбор.Количество() = 0);
Запрос = Новый Запрос(Схема.ПолучитьТекстЗапроса());
БезОтбора = Запрос.Выполнить().Выгрузить();
Если БезОтбора.Количество() <> 1 Тогда
ВызватьИсключение "Ожидалась одна группа собственных книг";
КонецЕсли;
Сообщить(БезОтбора[0].Название = "Книга" И БезОтбора[0].Количество = 5);
Разбор по шагам
Во внешнем запросе одна группа Книга и две исходные строки 3/2. Вложенная таблица сформирована собственными константами.
Найти ищет текст выражения с игнорированием форматирования, не наименование товарного объекта.
Дополнительное условие больше 2 сужает результат одновременно с исходным условием больше 1.
Удаляем только дополнительное условие по проверенному индексу. Заменяем оставшееся через объект ВыражениеСхемыЗапроса.
Очистить удаляет условия отбора, а не строки в базе. На собственных исходных числах снова получается сумма 5.
Как проверить результат
Все сообщения-сравнения Истина.
Четыре расчёта показывают суммы 5 → 3 → 5 → 5 при названии Книга.
Ожидаемый результат
Каждое изменение отбора сопоставлено с фактическим числовым результатом.
На что обратить внимание
Очистка рабочего отбора может расширить выборку; здесь используется только своя схема констант.
После удаления Дополнительное и заменённое Исходное больше не используются.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.