Отбор на форме списком значений
☑
0
vanyshan
11.10.18
✎
11:55
Добрый день! Делаю отбор в событии НачалоВыбора:
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(,Элемент);
Отбор = ФормаВыбора.СправочникСписок.Отбор.Ссылка;
Отбор.Использование = Истина;
Отбор.ВидСравнения = ВидСравнения.ВСпискеПоИерархии;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.Номенклатура,
| УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.Цена
|ИЗ
| РегистрСведений.УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.СрезПоследних(
| &Период,
| ДоговорКонтрагента = &ДоговорКонтрагента
| И Грузополучатель = &Грузополучатель) КАК УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних
|ГДЕ
| УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.Цена <> 0";
Запрос.УстановитьПараметр("Период", Дата);
Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
Запрос.УстановитьПараметр("Грузополучатель", Грузополучатель);
Результат = Запрос.Выполнить();
СписокЭлементов = Новый СписокЗначений;
Если Не Результат.Пустой() Тогда
СписокЭлементов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Номенклатура"));
Иначе
СписокЭлементов.Добавить(Справочники.Номенклатура.ПустаяСсылка());
КонецЕсли;
Отбор.Значение = СписокЭлементов;
ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
ФормаВыбора.НачальноеЗначениеВыбора = Элемент.Значение;
ФормаВыбора.Открыть();
Если запрос не пустой, то все работает и форма заполняется списком значений из запроса, в противном случае если не делать проверку и не присваивать списку значений пустое значение, то при открытии формы появляется куча ненужных позиций и отбор вообще не работает. Нужно ли в моем случае проверять запрос на пустоту и правильно ли я это делаю? Обычное приложение.
1
aleks_default
11.10.18
✎
12:04
А как должен работать отбор при пустом списке? Может правильнее сначала делать запрос а потом в зависимости непустоты запроса накладывать отбор?
2
VenSaitto
11.10.18
✎
13:37
| УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.Цена
- Выбор не используемых полей
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший