При работе с запросами в 1С часто возникает задача получить все дочерние элементы для определенной группы справочника. Для этого используется оператор В ИЕРАРХИИ. Однако при попытке указать в качестве параметра запроса нужную группу (папку) в консоли запросов, многие, особенно начинающие разработчики, сталкиваются с проблемой: форма выбора не позволяет выбрать группу, а предлагает только конечные элементы. Давайте разберемся, почему так происходит и как это исправить.
Проанализируем типичную ситуацию: вы пишете совершенно корректный запрос, но он не работает из-за ограничений инструмента. Например, такой:
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В ИЕРАРХИИ(&ВыбраннаяГруппа)
Вы пытаетесь задать значение для параметра &ВыбраннаяГруппа, открывается форма выбора справочника "Номенклатура", но все папки в ней неактивны для выбора. Выясним причину этого поведения и рассмотрим несколько способов решения.
Основная причина заключается не в ошибке вашего запроса и не в платформе 1С как таковой, а в настройках конкретной обработки "Консоль запросов", которую вы используете. Элемент управления на форме (поле ввода), предназначенный для выбора значения параметра, по умолчанию может быть настроен так, чтобы разрешать выбор только элементов справочника, игнорируя группы.
Это сделано для универсальности, но создает неудобства при работе с иерархическими запросами. К счастью, эту проблему можно обойти несколькими путями.
Самый простой и быстрый способ, не требующий навыков конфигурирования. Сообщество 1С-разработчиков создало множество продвинутых инструментов для работы с запросами. Многие из них лишены недостатков стандартных или упрощенных консолей.
Что можно использовать:
Замена консоли — это самый рекомендуемый путь, так как вы не только решаете текущую проблему, но и получаете в свое распоряжение гораздо более удобный и функциональный инструмент для дальнейшей работы.
Если вы по каким-то причинам хотите продолжать использовать текущую консоль, ее можно доработать. Этот способ требует доступа к Конфигуратору и базового понимания, как работать с формами.
Разберем по шагам, как изменить настройки формы:
ВыборГруппИЭлементов (ChoiceMode). Скорее всего, у него установлено значение "Элементы" (Items). Измените его на "Группы и элементы" (FoldersAndItems).Этот способ позволяет "починить" ваш любимый инструмент и продолжить с ним работать. Важно: если консоль является частью конфигурации, а не внешней обработкой, для внесения изменений потребуется снять ее с поддержки.
Это скорее временный workaround, чем полноценное решение, но он тоже может выручить в безвыходной ситуации.
Идея в том, чтобы получить ссылку на нужную группу другим способом и вставить ее в поле параметра. Некоторые консоли позволяют вводить текст вручную, даже если интерактивный выбор ограничен.
Как это сделать:
ВЫБРАТЬ ПЕРВЫЕ 1
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование = "Комплектующие для ПК" И Номенклатура.ЭтоГруппа
&ВыбраннаяГруппа.К сожалению, как показывает практика, многие простые консоли блокируют и ручной ввод текста для полей ссылочного типа, поэтому этот метод срабатывает не всегда. Но попробовать стоит.
Подводя итог, можно сказать, что проблема выбора группы в параметрах запроса — это известное ограничение некоторых консолей. Наиболее правильным решением будет переход на более современный и функциональный инструмент, что положительно скажется на вашей продуктивности в целом.