Имя: Пароль:
1C
1С v8
динамический список. параметры или отбор?
0 prtx
 
10.05.17
15:22
добрый день всем!

вот задумался над такой вещею, что лучше использовать: устанавливать параметры для динамического списка или юзать отбор?

ситуация:
есть обработка, в ней форма, а на форме динамический список(далее ДС),и вот задача сего ДС показывать остатки товара на разных складах, НО юзеру нужно их увидеть то на одном складу, то на другом, то на всех складах. с запросом все понятно, и мы даем юзеру реквизит для для выбора склада, после того как он его поменяет как лучше, логичнее, правильнее и самое главное быстрее получить данные:

вариант 1 (юзать параметры):
ДС.Параметры.УстановитьЗначениеПараметра("Склад", Склад);

вариант 2 (юзать отбор):
ЭлементОтбора = ДС.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Склад;


все время юзал вариант 1, и не думал, тупо красивее оно, но вот где-то наткнулся на использование варианта 2 и теперь вот меня МУЧАЮТ И РАЗРЫВАЮТ НА ЧАСТИ сомнения... как быть граждане?)))
1 Вафель
 
10.05.17
15:27
Если параметр всегда задан, то можно и параметром. А если может быть не задан, то лучше через отбор
2 Fedor-1971
 
10.05.17
16:08
(0) смотря какую задачу решаешь:
1. если нужно ограничить список для пользователя только документами, которые он создал - параметр ДС даёт 100% гарантию, что чел не снимет каким-нить образом фильтр. (Логика следующая: пользователь видит своё и только, остальное ему недоступно)
2. если по умолчанию пользователь видит "свои" документы, но нужно дать возможность смотреть все - тогда отбор, т.к. он не дёргает БД при снятии/установке (если быть точным, то работает с уже прочитанной выборкой, что по времени гораздо выигрышнее)

Еще один голос за отбор: отбор даёт возможность дёргать БД по минимуму
3 Fedor-1971
 
10.05.17
16:10
2+ к стати, отбором просто реализуется логика "ИЛИ" что в запросе может порождать некоторые неочевидности
4 Вафель
 
10.05.17
16:23
Отбор не дергает БД? Это как так?
5 Fedor-1971
 
10.05.17
16:38
(4) Отбор работает с уже полученной из БД выборкой, т.е. все соединения и проч условия наложены и сформировано представление (нечто типа временной таблицы), дальше отборы работают с сим представлением. Объёмы работы по формированию списка меньше или сравним (при простом запросе) с запросом в БД.
AdBlock убивает бесплатный контент. 1Сергей