Как разрешить выбор групп справочника в параметрах консоли запросов 1С?

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

При работе с консолью запросов — как стандартной от фирмы «1С», так и различными сторонними разработками — специалисты часто сталкиваются с досадным ограничением: при попытке указать в качестве параметра запроса не конкретный элемент справочника, а его группу (папку), система просто не дает её выбрать. В диалоговом окне выбора группы либо отображаются серым цветом, либо при нажатии на них ничего не происходит.

В этой статье мы подробно разберем причины такого поведения платформы «1С:Предприятие 8» и изучим несколько способов решения проблемы: от простых интерактивных настроек до внесения правок в программный код обработки.

Выясним причину: почему платформа блокирует выбор папок?

Проанализируем техническую составляющую вопроса. В платформе 1С для каждого элемента формы типа «Поле ввода», который связан с типом данных СправочникСсылка, существует специальное свойство — ВыборГруппИЭлементов. Это свойство определяет, что именно пользователь может выбрать из иерархического списка.

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

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

Способ 1. Интерактивная настройка в палитре свойств (для разработчиков)

Если вы используете консоль запросов как внешнюю обработку и имеете доступ к конфигуратору, мы можем исправить проблему «в корне», изменив настройки самой формы. Рассмотрим, как это сделать:

  1. Откроем консоль запросов в конфигураторе.
  2. Найдем форму, в которой редактируются параметры запроса. Обычно это табличная часть или динамический список с колонкой Значение.
  3. Выделим элемент формы, отвечающий за ввод значения параметра (например, поле ввода в колонке списка).
  4. В палитре свойств найдем раздел «Использование».
  5. Найдем свойство «Выбор групп и элементов».
  6. Установим значение в положение «Группы и элементы».

После этого, при условии, что тип данных колонки определен корректно, платформа позволит открывать группы и выбирать их двойным кликом или кнопкой «Выбрать».

Способ 2. Программное исправление в модуле формы

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

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


// В обработчике ПриИзменении типа параметра или НачалоВыбора значения
Элементы.ПолеЗначениеПараметра.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.ГруппыИЭлементы;

Если же вы не хотите изменять код навсегда, но имеете права на отладку, можно выполнить этот код «на лету» в окне вычисления выражений, предварительно остановившись на точке останова в форме консоли. Это установит нужное свойство для текущего сеанса работы.

Способ 3. Лайфхаки для работы в пользовательском режиме

Если у вас нет возможности править код (например, консоль встроена в закрытую конфигурацию), проанализируем альтернативные варианты обхода ограничения, которые часто срабатывают в управляемых формах:

Сравнение со встроенными механизмами: почему в СКД это работает?

Многие пользователи замечают, что в конструкторе СКД или в отчетах на базе компоновки данных такой проблемы нет. Выясним, почему так происходит. Система компоновки данных — это более высокоуровневый механизм. Платформа 1С при генерации форм настроек СКД автоматически анализирует структуру метаданных. Если она видит, что справочник иерархический, она интеллектуально настраивает поле выбора, устанавливая ВыборГруппИЭлементов.ГруппыИЭлементы автоматически.

В простых же консолях запросов разработчик часто вручную описывает типы данных, и платформа ведет себя более «строго», требуя явного указания всех разрешений.

Рекомендация по выбору инструмента

Если вы постоянно сталкиваетесь с подобными неудобствами в стандартных инструментах, рекомендуем обратить внимание на профессиональные наборы инструментов, такие как «Инструменты разработчика» (irtools). В подобных сборках алгоритмы генерации полей ввода написаны с учетом иерархии справочников, и проблема выбора групп там отсутствует как класс, так как система автоматически разрешает выбор папок для любых иерархических объектов.

Таким образом, мы выяснили, что проблема выбора групп — это не поломка программы, а особенность настройки свойств элементов формы ВыборГруппИЭлементов. Используя приведенные выше программные методы или интерактивные приемы, вы сможете эффективно работать с иерархическими данными в любых запросах.

← На главную