Добрый день! Столкнулся со следующей проблемой: хочу реализовать произвольный поиск по наименованию. Нужно чтобы выводился общий результат отбора как по "ключ газовый", так и по "газовый ключ". Прошу помочь.
---
Примерный вариант реализации
```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ОбработатьНастройки(Настройки);

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

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

    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    КонецПроцедуры

    Процедура ОбработатьНастройки(Настройки)

    ПолеОтбора = Новый ПолеКомпоновкиДанных("Наименование");

    НайденныйЭлемент = Неопределено;

    Для Каждого Элемент Из Настройки.Отбор.Элементы Цикл

    Если Элемент.Использование
    И ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных")
    И Элемент.ЛевоеЗначение = ПолеОтбора
    И Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит Тогда

    СловаПоиска = СтрРазделить(Элемент.ПравоеЗначение, " ", Ложь);

    Если СловаПоиска.Количество() > 1 Тогда
    НайденныйЭлемент = Элемент;
    Прервать;
    КонецЕсли;

    КонецЕсли;

    КонецЦикла;

    Если НайденныйЭлемент = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Настройки.Отбор.Элементы.Удалить(НайденныйЭлемент);

    Для Каждого Слово Из СловаПоиска Цикл
    ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.ПравоеЗначение = Слово;
    КонецЦикла;

    КонецПроцедуры
```
---
Можно в ПриКомпоновкеРезультата отловить такой отбор и преобразовать его в группу отборов И, разделив текст поиска по словам.
---
Спасибо. Будем посмотреть
---
Примерный вариант реализации
```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ОбработатьНастройки(Настройки);

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

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

    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    КонецПроцедуры

    Процедура ОбработатьНастройки(Настройки)

    ПолеОтбора = Новый ПолеКомпоновкиДанных("Наименование");

    НайденныйЭлемент = Неопределено;

    Для Каждого Элемент Из Настройки.Отбор.Элементы Цикл

    Если Элемент.Использование
    И ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных")
    И Элемент.ЛевоеЗначение = ПолеОтбора
    И Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит Тогда

    СловаПоиска = СтрРазделить(Элемент.ПравоеЗначение, " ", Ложь);

    Если СловаПоиска.Количество() > 1 Тогда
    НайденныйЭлемент = Элемент;
    Прервать;
    КонецЕсли;

    КонецЕсли;

    КонецЦикла;

    Если НайденныйЭлемент = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Настройки.Отбор.Элементы.Удалить(НайденныйЭлемент);

    Для Каждого Слово Из СловаПоиска Цикл
    ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.ПравоеЗначение = Слово;
    КонецЦикла;

    КонецПроцедуры
```
---
Получилось с минимальной доработкой примера:

```1c
    Для Каждого Слово Из СловаПоиска Цикл
    ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Подобно;
    ЭлементОтбора.ПравоеЗначение = "%" + Слово + "%";
    КонецЦикла;
```