Вход | Регистрация


Отбор справочника Номенклатура - скрытие групп

Отбор справочника Номенклатура - скрытие групп
Я
   Tornadius
 
08.12.17 - 07:09
Доброго дня всем! Форумчане, может кто подскажет как при включенном отборе в форме выбора справочника "Номенклатура" скрывать пустые группы? Убрать из показа нужно те группы, в которых после отбора нет ни одного элемента. Можно конечно отключить иерархию просмотра, но это не выход. Отбор делаю стандартным образом. Он работает, но остается много пустых групп.
<Code+>
Процедура ВыбНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ВыпускПродукции.Продукция.Ссылка КАК Продукция
        |ИЗ
        |    РегистрНакопления.ВыпускПродукцииБухгалтерскийУчет КАК ВыпускПродукции
        |ГДЕ
        |    НЕ ВыпускПродукции.КодОперации В (&СписокКодовОпераций)
        |    И ВыпускПродукции.Период МЕЖДУ &ДатаНачала И &ДатаКонца
        |    И ВыпускПродукции.Подразделение = &ВыбПодразделение
        |    И ВыпускПродукции.Организация = &ВыбОрганизация";

    Запрос.УстановитьПараметр("ВыбОрганизация", ВыбОрганизация);
    Запрос.УстановитьПараметр("ВыбПодразделение", ВыбПодразделениеОрганизации);
    Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(НачПериода));
    Запрос.УстановитьПараметр("ДатаКонца", КонецДня(КонПериода));
    Запрос.УстановитьПараметр("СписокКодовОпераций", СписокКодовОпераций);

    Выборка = Запрос.Выполнить().Выбрать();
    СписокВыпущеннойНоменклатуры = Новый СписокЗначений;
    
    Пока Выборка.Следующий() Цикл
        СписокВыпущеннойНоменклатуры.Добавить(Выборка.Продукция);    
    КонецЦикла;
    

    Форма = Справочники.Номенклатура.ПолучитьФормуВыбора();
    ФормаОтбор = Форма.Отбор;
    ФормаОтбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    ФормаОтбор.Ссылка.Значение = СписокВыпущеннойНоменклатуры;
    ФормаОтбор.Ссылка.Использование = Истина;    
    Форма.Открыть();
    
КонецПроцедуры
<Code->
 
 
   nordbox
 
1 - 08.12.17 - 07:16
А откуда  у тебя столько пустых групп набирается?
если они тебе не нужны зачем они существуют?
   Тихий омут
 
2 - 08.12.17 - 07:17
Сам делал через видимость в условном оформлении списка.
    ЭлементОформления = ДС_ПодборУслуг.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
    
    ЭлементОформления = ДС_ПодборУслуг.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина );
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина );
    
    ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
    ОтборПоГруппе.ПравоеЗначение = СписокГрупп;
   Tornadius
 
3 - 08.12.17 - 07:28
(1) У нас очень большой справочник Номенклатура, разные подразделения выпускают разную номенклатуру. в отбор должна попадать только номенклатура выпущенная в конкретном подразделении за конкретный период. отсюда возникают пустые группы. в них содержалась номенклатура других подразделений которая была отфильтрована отбором.
   Tornadius
 
4 - 08.12.17 - 07:32
(2) а список групп как получали?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует