Как выбрать группу справочника в параметрах консоли запросов для условия В ИЕРАРХИИ?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При работе с запросами в 1С часто возникает задача получить все дочерние элементы для определенной группы справочника. Для этого используется оператор В ИЕРАРХИИ. Однако при попытке указать в качестве параметра запроса нужную группу (папку) в консоли запросов, многие, особенно начинающие разработчики, сталкиваются с проблемой: форма выбора не позволяет выбрать группу, а предлагает только конечные элементы. Давайте разберемся, почему так происходит и как это исправить.

Проанализируем типичную ситуацию: вы пишете совершенно корректный запрос, но он не работает из-за ограничений инструмента. Например, такой:


ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.Наименование
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Ссылка В ИЕРАРХИИ(&ВыбраннаяГруппа)

Вы пытаетесь задать значение для параметра &ВыбраннаяГруппа, открывается форма выбора справочника "Номенклатура", но все папки в ней неактивны для выбора. Выясним причину этого поведения и рассмотрим несколько способов решения.

Причина проблемы: настройки формы консоли запросов

Основная причина заключается не в ошибке вашего запроса и не в платформе 1С как таковой, а в настройках конкретной обработки "Консоль запросов", которую вы используете. Элемент управления на форме (поле ввода), предназначенный для выбора значения параметра, по умолчанию может быть настроен так, чтобы разрешать выбор только элементов справочника, игнорируя группы.

Это сделано для универсальности, но создает неудобства при работе с иерархическими запросами. К счастью, эту проблему можно обойти несколькими путями.

Решение 1: Использование другой, более функциональной консоли

Самый простой и быстрый способ, не требующий навыков конфигурирования. Сообщество 1С-разработчиков создало множество продвинутых инструментов для работы с запросами. Многие из них лишены недостатков стандартных или упрощенных консолей.

Что можно использовать:

Замена консоли — это самый рекомендуемый путь, так как вы не только решаете текущую проблему, но и получаете в свое распоряжение гораздо более удобный и функциональный инструмент для дальнейшей работы.

Решение 2: Настройка текущей консоли в режиме Конфигуратора

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

Разберем по шагам, как изменить настройки формы:

  1. Откройте обработку в Конфигураторе. Найдите файл вашей консоли запросов (обычно это внешняя обработка с расширением .epf) и откройте его в режиме конфигурации.
  2. Перейдите к форме. В дереве объектов обработки найдите основную форму и откройте ее.
  3. Найдите элемент управления параметрами. Обычно параметры запроса выводятся в таблицу на форме. Найдите эту таблицу (например, с именем "Параметры") и выделите ее.
  4. Измените свойства колонки "Значение". Внутри таблицы найдите колонку, которая отвечает за ввод значения параметра (часто называется "Значение" или "ЗначениеПараметра"). Выделите эту колонку.
  5. Установите свойство "Выбор групп и элементов". В палитре свойств для выделенной колонки найдите свойство ВыборГруппИЭлементов (ChoiceMode). Скорее всего, у него установлено значение "Элементы" (Items). Измените его на "Группы и элементы" (FoldersAndItems).
  6. Сохраните изменения. Сохраните обработку. Теперь, при открытии этой консоли в режиме 1С:Предприятие, вы сможете выбирать как элементы, так и группы справочников в качестве параметров.

Этот способ позволяет "починить" ваш любимый инструмент и продолжить с ним работать. Важно: если консоль является частью конфигурации, а не внешней обработкой, для внесения изменений потребуется снять ее с поддержки.

Решение 3: Указать значение параметра "обходным путем"

Это скорее временный workaround, чем полноценное решение, но он тоже может выручить в безвыходной ситуации.

Идея в том, чтобы получить ссылку на нужную группу другим способом и вставить ее в поле параметра. Некоторые консоли позволяют вводить текст вручную, даже если интерактивный выбор ограничен.

Как это сделать:

  1. Выполните в этой же или другой консоли простой запрос, чтобы найти нужную группу. Например, по наименованию:
    
    ВЫБРАТЬ ПЕРВЫЕ 1
        Номенклатура.Ссылка
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        Номенклатура.Наименование = "Комплектующие для ПК" И Номенклатура.ЭтоГруппа
    
  2. Скопируйте результат (представление ссылки) из этого запроса.
  3. Вернитесь к своему основному иерархическому запросу и попробуйте вставить скопированное значение в поле параметра &ВыбраннаяГруппа.

К сожалению, как показывает практика, многие простые консоли блокируют и ручной ввод текста для полей ссылочного типа, поэтому этот метод срабатывает не всегда. Но попробовать стоит.

Подводя итог, можно сказать, что проблема выбора группы в параметрах запроса — это известное ограничение некоторых консолей. Наиболее правильным решением будет переход на более современный и функциональный инструмент, что положительно скажется на вашей продуктивности в целом.

← На главную