Программно проверить на существование отбора по определенным значениям отбора в ПриКомпоновкеРезультата, и если его нет то добавить определенный отбор. Просто добавить отбор проблем нет, просто когда заново формируешь добавляется такой же отбор, очищать настройки вроде такого не пойдет:
ЭтотОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();
Как мне найти поле отбора по условиям левого значения, сравнения и правого значения?
Для каждого ЭлементОтбора Из Отбор.Элементы Цикл
Если ТолькоПоЛевомуЗначению Тогда
НайденныйОтбор = ЭлементОтбора;
Прервать;
Иначе
Если (ЭлементОтбора.ЛевоеЗначение = сЛевоеЗначение)
И (ЭлементОтбора.ВидСравнения = сВидСравнения)
И (ЭлементОтбора.Использование = сИспользование) Тогда
НайденныйОтбор = ЭлементОтбора;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если НайденныйОтбор <> Неопределено Тогда
НайденныйОтбор.ЛевоеЗначение = нПоле;
НайденныйОтбор.Использование = нИспользование;
НайденныйОтбор.ВидСравнения = нВидСравнения;
НайденныйОтбор.ПравоеЗначение = нЗначение;
КонецЕсли;
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший