0
prtx
10.05.17
✎
15:22
|
добрый день всем!
вот задумался над такой вещею, что лучше использовать: устанавливать параметры для динамического списка или юзать отбор?
ситуация:
есть обработка, в ней форма, а на форме динамический список(далее ДС),и вот задача сего ДС показывать остатки товара на разных складах, НО юзеру нужно их увидеть то на одном складу, то на другом, то на всех складах. с запросом все понятно, и мы даем юзеру реквизит для для выбора склада, после того как он его поменяет как лучше, логичнее, правильнее и самое главное быстрее получить данные:
вариант 1 (юзать параметры):
ДС.Параметры.УстановитьЗначениеПараметра("Склад", Склад);
вариант 2 (юзать отбор):
ЭлементОтбора = ДС.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Склад;
все время юзал вариант 1, и не думал, тупо красивее оно, но вот где-то наткнулся на использование варианта 2 и теперь вот меня МУЧАЮТ И РАЗРЫВАЮТ НА ЧАСТИ сомнения... как быть граждане?)))
|
|
2
Fedor-1971
10.05.17
✎
16:08
|
(0) смотря какую задачу решаешь:
1. если нужно ограничить список для пользователя только документами, которые он создал - параметр ДС даёт 100% гарантию, что чел не снимет каким-нить образом фильтр. (Логика следующая: пользователь видит своё и только, остальное ему недоступно)
2. если по умолчанию пользователь видит "свои" документы, но нужно дать возможность смотреть все - тогда отбор, т.к. он не дёргает БД при снятии/установке (если быть точным, то работает с уже прочитанной выборкой, что по времени гораздо выигрышнее)
Еще один голос за отбор: отбор даёт возможность дёргать БД по минимуму
|
|
5
Fedor-1971
10.05.17
✎
16:38
|
(4) Отбор работает с уже полученной из БД выборкой, т.е. все соединения и проч условия наложены и сформировано представление (нечто типа временной таблицы), дальше отборы работают с сим представлением. Объёмы работы по формированию списка меньше или сравним (при простом запросе) с запросом в БД.
|
|