8.х как указать в запросе групу с подгруппами номенклатуры?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем maritime, 19 сен 2011.

  1. TopicStarter Overlay
    maritime
    Offline

    maritime

    Регистрация:
    22 апр 2011
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Как указать в отчете на СКД такое условие:

    Выбираем группу номенклатуры и по ней строим отчет (это работает)
    Если группа пустая то выводить отчет по всем группам или если указан родитель группы выводить по всем подгруппам как это указать???
    Как это условие указать если запрос пишется на схеме компоновки данных.
  2. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Сделать это лучше с помощью отборов.
    Удаляете параметр из условия.
    Если я правильно понял, у Вас подобная структура справочника Номенклатура:
    Группа
    Подгруппа
    Номенклатура
    Создаете в закладке "Отборы" новое поле, слева ставите Номенклатура.Родитель (если я правильно понял что вам нужна группа номенклатуры а не одноименный справочник).
    Вид сравнения В Группе или В Группе из списка.
    Если нужно выводить все записи, тогда значение Использование (флаг слева от строки с отбором) ставим в Ложь.
    Для удобства работы можно вынести реквизит Группа на форму, и перед формированием отчета вставить примерно следующий код:
    Код:
    ОтборГруппа = КомпоновщикНастроек.Настройки.Отбор.Элементы[0];
    ОтборГруппа.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура.Родитель");
    ОтборГруппа.ВидСравнения = ВидСравненияКомпоновкиДанных.ВГруппе;
    ОтборГруппа.ПравоеЗначение   = Группа;
    ОтборГруппа.Использование     = ЗначениеЗаполнено(Группа);
    
    Можно конечно сделать и с использованием параметра, поставив условие ВИерархии, но использовать отборы в данном случае более разумно с точки зрения производительности и удобства работы с отчетом.

Поделиться этой страницей