Добрый день, коллеги! Подскажите, пожалуйста, можно ли как-то выполнить следующую задачу:

Имеет независимый регистр сведений, с одним измерением с типом строка. В нем указан номер и наименование чертежа. Выглядит это примерно так:

254.587.57. гайка круглая

круглая гайка 254.587.57.

Шайба под гайку 254.587.57. 10 мм. круглая

и т.д. т.е. есть чертежный номер 254.587.57. и описание изделия. Никакой логики, позволяющей вытащить номер в отдельное измерение, в этих описаниях нет. написано может быть как угодно. Сам номер тоже может быть как 254.587.57. а может 254. 587. 57. и еще куча вариаций.

Есть справочник, на форме которого размещен динамический список (ДС) связаны с этим регистром. Есть реквизит справочника, содержащий чертежный номер. Задача сделать в ДС отбор по всем записям, в которых фигурирует этот самый чертежный номер. Если в форме поиска ДС вбить его в ручную - результат получен. Но это надо делать автоматически, при открытии формы справочника....

Собственно вопрос: как инициализировать поиск по ДС программно?
---
А ларчик то ведь просто открывался)))))

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

Единственный минус, как-то долго выполняется. Хотя регистр не сказать что сильно большой +- 2000 записей.
---
Программно вбить строку в поле поиска динамического списка вряд ли получится. Но можно попробовать осуществить полнотекстовый поиск в регистре программно, а затем самостоятельно вывести результат. У Вас типовая конфигурация? Встроена БСП?
---
Самописка, без БСП.

Но можно попробовать осуществить полнотекстовый поиск в регистре программно

Это как?
---
Хотел сперва предложить Вам примерно следующее решение:

```1c
    Функция ВыполнитьПоискНаСервере()

    РазмерПорции = 5;
    Результат = Новый Массив;

    СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска, РазмерПорции);

    СписокПоиска.ОбластьПоиска = Новый Массив;
    СписокПоиска.ОбластьПоиска.Добавить(Метаданные.РегистрыСведений.МойРегистрСНомерами);

    СписокПоиска.ПерваяЧасть();
    Если СписокПоиска.СлишкомМногоРезультатов() Тогда
    ВызватьИсключение НСтр("ru = 'Слишком много результатов, уточните запрос'");
    КонецЕсли;

    ПолноеКоличество = СписокПоиска.ПолноеКоличество();
    Если ПолноеКоличество = 0 Тогда
    ВызватьИсключение НСтр("ru = 'По запросу ничего не найдено'");
    КонецЕсли;

    Индекс = 0;
    Пока Индекс < ПолноеКоличество Цикл

    Для каждого Элемент Из СписокПоиска Цикл
    Индекс = Индекс + 1;
    Результат.Добавить(Элемент.Значение.Номер);
    КонецЦикла;

    Если Индекс < ПолноеКоличество Тогда
    СписокПоиска.СледующаяЧасть(Индекс);
    КонецЕсли;

    КонецЦикла;

    Возврат Результат;

    КонецФункции
```

Но его проверка ни привела меня ожидаемому результату. Функция работает непредсказуемо. Извините. Быть может на ее основе Вам удастся что-нибудь получить дельное.
---
В любом случае большое спасибо, что потратили время! Идея, кстати, очень неплохая и может пригодится на других задачах!
---
А ларчик то ведь просто открывался)))))

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

Единственный минус, как-то долго выполняется. Хотя регистр не сказать что сильно большой +- 2000 записей.
---
А зачем собственно в данном случае динамический список? он потому и долго отрабатывает что запрос а не полнотекстовый поиск.
Не проще и быстрее задать СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок("СтрокаПоиска");
Установить метаданные и считать порцию в ТЗ на форме? опять же всякие вкусности вроде процента соответствия и прочего?
---
Там фишка в том, что запись регистра надо открывать. т.е. не просто список строк выводить, а именно как записи регистра.
---
Только убедитесь что по регистру он включен и индексы обновлены)