Ошибка в расстановке операций. Полнотекстовый поиск
Добрый день.
Использую программно полнотекстовый поиск.
Кусок кода написал вот такой:
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(ТекстПоиска, 1000);
СписокПоиска.ПолучатьОписание = Истина;
ПоказыватьОписания = Истина;
СписокПоиска.ПорогНечеткости = 25;
СписокПоиска.ОбластьПоиска.Добавить(Метаданные.Справочники.Номенклатура);
СписокПоиска.ПерваяЧасть();
На строке "СписокПоиска.ПерваяЧасть()" валится ошибка : ошибка в расстановке операций.
Дело в строке поиска, когда пытаюсь искать по простым названиям, все работает как надо.
В частности, валится на строке "рама 5500 x 1375 ( 60 x 2 ) (с опорой вн.60)"
Понятное дело, надо как-то строку преобразовать, чтобы все сработало. Но как? (точку уже пытался убирать, не сработало)
Использую программно полнотекстовый поиск.
Кусок кода написал вот такой:
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(ТекстПоиска, 1000);
СписокПоиска.ПолучатьОписание = Истина;
ПоказыватьОписания = Истина;
СписокПоиска.ПорогНечеткости = 25;
СписокПоиска.ОбластьПоиска.Добавить(Метаданные.Справочники.Номенклатура);
СписокПоиска.ПерваяЧасть();
На строке "СписокПоиска.ПерваяЧасть()" валится ошибка : ошибка в расстановке операций.
Дело в строке поиска, когда пытаюсь искать по простым названиям, все работает как надо.
В частности, валится на строке "рама 5500 x 1375 ( 60 x 2 ) (с опорой вн.60)"
Понятное дело, надо как-то строку преобразовать, чтобы все сработало. Но как? (точку уже пытался убирать, не сработало)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В общем, методом научного тыка выяснил, что конкретно в данном случае решает проблему запятая между скобками.
Окей, удаляю программно запятую между скобками.
Но тут же столкнулся еще с проблемой уже в строке : "профиль c образный (45 х 25 х 2,0), l=1581"
В общем, в итоге просто обрезаю строку после завершения первой скобки:
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(ТекстПоиска, 1000);
СписокПоиска.ПолучатьОписание = Истина;
ПоказыватьОписания = Истина;
СписокПоиска.ПорогНечеткости = 25;
СписокПоиска.ОбластьПоиска.Добавить(Метаданные.Справочники.Номенклатура);
Попытка
СписокПоиска.ПерваяЧасть();
Исключение
ПозицияСкобки = СтрНайти(СписокПоиска.СтрокаПоиска, ")");
СписокПоиска.СтрокаПоиска = Лев(СписокПоиска.СтрокаПоиска, ПозицияСкобки);
Попытка
СписокПоиска.ПерваяЧасть();
Исключение
Сообщить("Не удалось подобрать похожие товары по наименованию. Пожалуйста, найдите товары вручную!");
КонецПопытки;
КонецПопытки;
Окей, удаляю программно запятую между скобками.
Но тут же столкнулся еще с проблемой уже в строке : "профиль c образный (45 х 25 х 2,0), l=1581"
В общем, в итоге просто обрезаю строку после завершения первой скобки:
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(ТекстПоиска, 1000);
СписокПоиска.ПолучатьОписание = Истина;
ПоказыватьОписания = Истина;
СписокПоиска.ПорогНечеткости = 25;
СписокПоиска.ОбластьПоиска.Добавить(Метаданные.Справочники.Номенклатура);
Попытка
СписокПоиска.ПерваяЧасть();
Исключение
ПозицияСкобки = СтрНайти(СписокПоиска.СтрокаПоиска, ")");
СписокПоиска.СтрокаПоиска = Лев(СписокПоиска.СтрокаПоиска, ПозицияСкобки);
Попытка
СписокПоиска.ПерваяЧасть();
Исключение
Сообщить("Не удалось подобрать похожие товары по наименованию. Пожалуйста, найдите товары вручную!");
КонецПопытки;
КонецПопытки;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот