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