8.х Отбор по уровню группировки

Тема в разделе "Система компоновки данных (СКД)", создана пользователем ILDARIAN, 3 апр 2016.

  1. TopicStarter Overlay
    ILDARIAN
    Offline

    ILDARIAN Опытный в 1С

    Регистрация:
    6 янв 2013
    Сообщения:
    131
    Симпатии:
    1
    Баллы:
    29
    Добрый день.

    Вобщем задача такая. Нужно дать пользователю возможность в отборе ставить цифру. Эта цифра будет означать уровень иерархии до которого нужно детализировать данные.

    То есть мы выводим допустим продажи, таблица Товар и количество. Для группировки в настройках отчета ставим "Иерархия". Тогда в отчете будет выводится номенклатура со всей структурой как в справочнике. В отборе есть системное поле "Уровень". Если его указать, то иерархия номенклатуры будет разворачиватся только до того уровня что там указан.

    Вопрос: Как указать этот параметр программно ?
    --- Объединение сообщений, 3 апр 2016 ---
    скриншот поля во тут http://pixs.ru/showimage/lvlpng_8830861_21385879.png
    Последнее редактирование: 3 апр 2016
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    1. Картинку к тексту при крепите, а то не видно
    2. почему бы Вам в зависисости от параметра не формировать запрос динамически.
  3. TopicStarter Overlay
    ILDARIAN
    Offline

    ILDARIAN Опытный в 1С

    Регистрация:
    6 янв 2013
    Сообщения:
    131
    Симпатии:
    1
    Баллы:
    29
    Решил задачу. В модуле объект нужно было написать такой код.



    Элемент = Настройки.Структура[0].Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Элемент.ПравоеЗначение = 3;
    Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
    Элемент.Использование = Истина;
    Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("SystemFields.level");
    Элемент.Применение = ТипПримененияОтбораКомпоновкиДанных.Иерархия;


    Для того чтобы указать уровень нужно обязательно(!) писать название поля по английски: SystemFields.level. Если написать по руски, то вылетает ошибка что поле не найдено.
    Draco нравится это.

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