Расширение функционала поиска по справочникам УТ 11

Доработка конфигурации для быстрого поиска по реквизитам справочников.

Всем добрый день.

Данная статья предназначена для ускорения понимания разработки. Не секрет что многие предприятия «допиливают» под себя «Управление торговлей» и самой «страдаемой» формой являются формы списков справочников. Одно из требований заказчиков, это организация поиска по наименованию значений реквизитов справочника.

Рассмотрим это на примере справочника «Номенклатура».

Одно из требований заказчика было организация быстрого отбора по значению наименования реквизита «Производитель»

Способ установки фильтра из «Все действия» клиента не устроил.

Решения данной задачи наименьшими изменениями было осуществлено добавлением строк в запрос в функцию «ТекстЗапросаПоискаПоОбласти» в общем модуле «ПодборТоваровСервер».

//ТекстЗапроса = «
//|ВЫБРАТЬ ПЕРВЫЕ %МаксКоличество%
//| СправочникНоменклатура.Ссылка КАК Значение,
//| «»Номенклатура»» КАК Метаданные
//|ИЗ
//| Справочник.Номенклатура КАК СправочникНоменклатура
//|ГДЕ
//| (СправочникНоменклатура.Наименование %ВидСравнения% &СтрокаПоиска
//| Или СправочникНоменклатура.НаименованиеПолное %ВидСравнения% &СтрокаПоиска
//| Или СправочникНоменклатура.КодДляПоиска %ВидСравнения% &СтрокаПоиска
//| Или СправочникНоменклатура.Артикул %ВидСравнения% &СтрокаПоиска)»;

ТекстЗапроса = «
|ВЫБРАТЬ ПЕРВЫЕ %МаксКоличество%
| СправочникНоменклатура.Ссылка КАК Значение,
| «»Номенклатура»» КАК Метаданные
|ИЗ
| Справочник.Номенклатура КАК СправочникНоменклатура
|ГДЕ
| (СправочникНоменклатура.Наименование %ВидСравнения% &СтрокаПоиска
| Или СправочникНоменклатура.НаименованиеПолное %ВидСравнения% &СтрокаПоиска
| Или СправочникНоменклатура.КодДляПоиска %ВидСравнения% &СтрокаПоиска
| Или СправочникНоменклатура.Артикул %ВидСравнения% &СтрокаПоиска
| Или СправочникНоменклатура.Производитель.Наименование %ВидСравнения% &СтрокаПоиска)«; // решена проблема с производителем

Плюсом данного метода является минимальное изменение конфигурации, то есть мы не влезаем в интерфейсную часть и при грамотном комментирование имеем наименьшие проблемы с обновлением.

Данный метод так же подходит и к прочим справочникам.

9 Comments

  1. Serj1C

    С производителем проблема решена.

    Порождена новая — с производительностью

    Reply
  2. glime

    На производительность не влияет, проверено на 98 тыс номенклатуры со 150 производителями, данный запрос исполняется на сервере и добавление даже вложенного запроса(обращение к параметру реквизита через точку) не сильно повлияет на производительность.

    Reply
  3. vic777tor

    «РеквИзит» пишется через «и», а не «РеквЕзит».

    «то есть мы не влазием» — а «влазиЕм» это как?

    Reply
  4. glime

    спс, поправил

    Reply
  5. w-divin

    (2)

    а как будет если имеем порядка 500 тыщ номенклатуры и 15 тыщ производителей?

    а ежели по такому принципу подобавлять фильтры не тока по производителю, а по другим реквизитам? на производительности скажется очень даже заметно…

    Reply
  6. glime

    (5) w-divin, очень интересно было бы поэкспериментировать, но у меня нет такой базы, попробую сечас обработками догнать экспериментальную до такого количества.

    Reply
  7. glime

    (5) w-divin, буду краток, эксперимент проведен удачно.

    Reply
  8. Serj1C

    (7) Даже с видом сравнения «Подобно» ?

    Ваш запрос не удовлетворяет как минимум двум пунктам Типичных причин неоптимальной работы запросов

    Reply
  9. glime

    (8) так «подобно» использоваться и в стандартной конфигурации, запрос отличается только одной строчкой.

    К сожалению не могу опубликовать данную базу, так как в ней содержится информация клиента. По принципу не ухудшить показатели типового решения, так тут практически прокатывает.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *