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

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

В этом руководстве мы разберем нативные инструменты платформы, позволяющие выбрать группу прямо из окна консоли. Вы узнаете, как использовать встроенный выбор объектов, фильтры по иерархии и обходные пути для старых версий платформы. Понимание этих механизмов существенно ускорит написание и отладку сложных SQL-подобных конструкций.

Нативный механизм выбора через Ctrl+Space

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

Для активации окна выбора необходимо установить курсор между кавычками строкового литерала или в месте параметра запроса. Затем следует нажать комбинацию клавиш Ctrl+Space (или Ctrl+Пробел). Если система корректно определила тип ожидаемого значения, откроется форма списка элементов.

Здесь важно понимать разницу между режимами ввода. Если вы пишете запрос к виртуальной таблице, тип может быть не определен явно. В таком случае Консоль запросов может не предложить выбор. Убедитесь, что тип поля в метаданных указан корректно, либо используйте явное приведение типов в тексте запроса для подсказки движку.

⚠️ Внимание: Механизм Ctrl+Space может не сработать, если вы находитесь внутри сложного выражения CASE или в комментарии. Убедитесь, что курсор стоит непосредственно в теле выборки или условия WHERE.

После появления окна выбора вы можете воспользоваться стандартным поиском 1С. Введите часть названия группы, например"Административный", и система отфильтрует список. Двойной клик по нужной строке вставит полное представление ссылки в текст запроса.

💡

Если окно выбора не появляется, попробуйте удалить кавычки перед нажатием Ctrl+Space, а затем поставить их снова после выбора значения. Иногда это помогает сбросить кэш автодополнения.

Работа с иерархическими справочниками

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

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

  • 📂 Используйте кнопку"Иерархический список" для переключения между плоским и древовидным видом.
  • 🔍 Фильтр по назначению помогает найти группы, помеченные флагом"Это группа".
  • 🚀 Горячие клавиши F7 позволяют быстро создать новую группу прямо из окна выбора, если нужной еще нет.

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

📊 Как вы чаще всего ищете значения для запросов?
Через Ctrl+Space в консоли
Копирую из формы списка 1С
Пишу UUID вручную
Использую внешние инструменты

Использование функции ЗНАЧЕНИЕ для предопределенных элементов

Если вам необходимо выбрать группу, которая является предопределенным элементом (создана в конфигураторе и имеет символьное имя), нет необходимости искать её GUID или полное представление. Платформа 1С предоставляет специальную функцию ЗНАЧЕНИЕ.

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

ВЫБРАТЬ

Справочник.Номенклатура.Ссылка КАК Ссылка

ИЗ

Справочник.Номенклатура

ГДЕ

Справочник.Номенклатура.Ссылка = ЗНАЧЕНИЕ(Справочник.Номенклатура.ОсновнаяГруппа)

Преимущество такого подхода в том, что вам не нужно ничего"выбирать" мышкой. Вы просто знаете имя, заданное разработчиком. Однако, если группа не является предопределенной, этот метод не сработает, и придется возвращаться к визуальному выбору или поиску по части имени.

⚠️ Внимание: Функция ЗНАЧЕНИЕ работает только с предопределенными элементами. Если вы попытаетесь указать имя обычной группы, созданной пользователем, консоль выдаст ошибку синтаксиса или сообщит, что объект не найден.

Для динамического формирования запроса в коде встроенного языка часто используют конструктор запроса, который также поддерживает подстановку таких значений. Но в самой консоли запросов ручное введение функции ЗНАЧЕНИЕ остается самым надежным способом фиксации ссылки на системную группу.

Поиск ссылки через таблицу значений

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

Суть метода заключается в том, чтобы сначала выбрать нужные данные в отдельной вкладке или временном результате, скопировать ссылку и вставить её в основной запрос. Это обходной путь, но он дает полный контроль над фильтрацией.

Алгоритм действий выглядит следующим образом:

  1. Напишите простой запрос: ВЫБРАТЬ Ссылка, Наименование ИЗ Справочник.ГруппыГде НАИМЕНОВАНИЕ ПОДОБНО"%Искомое%".
  2. Выполните запрос и найдите в результатах нужную строку.
  3. Кликните правой кнопкой мыши по ячейке со ссылкой.
  4. В контекстном меню выберите Копировать или Копировать значение.

☑️ Алгоритм копирования ссылки

Выполнено: 0 / 4

Полученное значение можно вставить в основной запрос в виде строкового литерала. Если вы скопировали представление (строку), убедитесь, что тип поля совместим, либо используйте функцию СсылкаИзСтроки, если контекст позволяет. Чаще всего консоль сама подставит правильный формат UUID при вставке из буфера обмена.

Таблица типов данных для выбора

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

Тип поля в БД Что возвращает выбор Особенности вставки
СправочникСсылка Уникальный идентификатор (UUID) Вставляется как строка в кавычках или объект
СправочникОбъект Не применимо для запросов В запросах используются только ссылки
Строка (50) Текстовое представление Требует явного приведения типов
ХранилищеЗначения Сериализованные данные Нельзя выбрать через стандартный диалог

Как видно из таблицы, для большинства задач по выбору группы вы будете работать с типом СправочникСсылка. Именно этот тип поддерживает интерактивный выбор. Если же поле имеет составной тип (например,"СправочникСсылка.Номенклатура ИЛИ СправочникСсылка.Контрагенты"), диалог выбора может предложить выбрать тип перед выбором конкретного элемента.

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

Почему иногда выбор не работает?

Если поле имеет тип"Любая ссылка", система не знает, какой именно список открыть. В этом случае нужно явно указать тип в запросе, например: КАК СправочникСсылка.Номенклатура.

Решение проблем с доступом и правами

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

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

Для диагностики попробуйте выполнить простой запрос ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ Справочник.ВашСправочник. Если результат равен нулю, значит, проблема именно в правах доступа, а не в инструменте выбора. В режиме предприятия с полными правами эта проблема обычно отсутствует.

⚠️ Внимание: Консоль запросов, запущенная из режима предприятия, наследует права текущего пользователя. Запуск из Конфигуратора дает полные права, но там недоступен интерактивный выбор объектов через Ctrl+Space в том же виде.

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

Часто задаваемые вопросы

Как выбрать группу, если я не знаю её точное название?

Используйте символ подстановки % в операторе ПОДОБНО во вспомогательном запросе. Например: ГДЕ Наименование ПОДОБНО"%Торгов%". Это покажет все группы, содержащие слово"Торгов".

Можно ли выбрать несколько групп одновременно через Ctrl+Space?

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

Почему при выборе вставляется UUID, а не имя?

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

Как вставить выбранную группу в параметр запроса?

Установите курсор в место параметра (например, после знака =), нажмите Ctrl+Space, выберите группу. Если используется именованный параметр (например, &МояГруппа), значение подставится в строку запроса как литерал.

💡

Главный инструмент для выбора группы — комбинация Ctrl+Space. Она универсальна, учитывает иерархию и права доступа, экономя время разработчика.