Приложение: управляемое
Конфигурация: самописная
Добрый день!
Помогите, пожалуйста, решить проблему.
Возникла проблема, при реализации отбора списка справочника по ТЧ элементов, используя несколько табличных полей на обычной форме списка.
Более-менее вышел на результат, используя следующий код:
Процедура ОтборСправочникСписок()
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СистемыОкраски.Ссылка КАК Ссылка
|ИЗ
| Справочник.СистемыОкраски КАК СистемыОкраски
|ГДЕ
| СистемыОкраски.СферыПрименения.Сфера В(&Сфера)
| И СистемыОкраски.ХарактеристикаТовара.Характеристика В(&Характеристика)";
Запрос.УстановитьПараметр("Сфера", СферыПримененияОтбор); //ТП на форме
Запрос.УстановитьПараметр("Характеристика", ТоварХарактеристикаОтбор); //ТП на форме
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
СписокДляОтбора=Новый СписокЗначений;
//Сообщить(ВыборкаДетальныеЗаписи.Количество());
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СписокДляОтбора.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
СправочникСписок.Отбор.Ссылка.Значение = СписокДляОтбора;
СправочникСписок.Отбор.Ссылка.Использование = Истина;
КонецПроцедуры
Но данный алгоритм:
-не удаляет из отбора элементы, в которых нет элемента списка из ТП ("Поры открытые" на скриншоте).
-при СферыПримененияОтбор.Количество()=0 и ТоварХарактеристикаОтбор.Количество()=0, удаляет из отбора все элементы и не отображает их в СправочникСписк.
Возможно есть способ попроще, натолкните на мысль, пожалуйста.