gifts2017

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

Опубликовал Стас Стас (glime) в раздел Программирование - Практика программирования

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

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

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

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

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

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

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Serj (Serj1C) 10.07.13 07:13
С производителем проблема решена.
Порождена новая - с производительностью
2. Стас Стас (glime) 10.07.13 08:42
На производительность не влияет, проверено на 98 тыс номенклатуры со 150 производителями, данный запрос исполняется на сервере и добавление даже вложенного запроса(обращение к параметру реквизита через точку) не сильно повлияет на производительность.
3. vic777tor (vic777tor) 10.07.13 08:47
"РеквИзит" пишется через "и", а не "РеквЕзит".
"то есть мы не влазием" - а "влазиЕм" это как?
4. Стас Стас (glime) 10.07.13 09:16
5. Дмитрий Елисеев (w-divin) 10.07.13 11:04
(2) glime,

а как будет если имеем порядка 500 тыщ номенклатуры и 15 тыщ производителей?
а ежели по такому принципу подобавлять фильтры не тока по производителю, а по другим реквизитам? на производительности скажется очень даже заметно...
6. Стас Стас (glime) 10.07.13 11:43
(5) w-divin, очень интересно было бы поэкспериментировать, но у меня нет такой базы, попробую сечас обработками догнать экспериментальную до такого количества.
7. Стас Стас (glime) 10.07.13 15:31
(5) w-divin, буду краток, эксперимент проведен удачно.
8. Serj (Serj1C) 11.07.13 09:10
(7) Даже с видом сравнения "Подобно" ?
Ваш запрос не удовлетворяет как минимум двум пунктам Типичных причин неоптимальной работы запросов
9. Стас Стас (glime) 12.07.13 11:09
(8) так "подобно" использоваться и в стандартной конфигурации, запрос отличается только одной строчкой.
К сожалению не могу опубликовать данную базу, так как в ней содержится информация клиента. По принципу не ухудшить показатели типового решения, так тут практически прокатывает.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа