К статье
Практический материал

Разработка и Конфигурация · 8 мин

Конструктор запросов 1С: где находится и как его открыть

Где находится конструктор запросов в 1С: как открыть его в конфигураторе и в режиме 1С:Предприятие, какие есть способы вызова и типичные ошибки новичков.

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

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

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

Где находится конструктор запросов в конфигураторе

Основное место работы с конструктором — конфигуратор. Чтобы его открыть, запустите 1С в режиме «Конфигуратор», откройте нужный модуль (модуль объекта, общий модуль, модуль формы) и установите курсор в то место кода, где должен появиться текст запроса. После этого вызовите контекстное меню правой кнопкой мыши и выберите пункт «Конструктор запроса…».

Тот же пункт доступен через главное меню: раздел «Текст» → «Конструктор запроса». Если курсор стоит внутри уже существующего текста запроса (между кавычками), конструктор откроет именно этот запрос для редактирования. Если курсор находится в пустом месте модуля, будет создан новый запрос с нуля.

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

Как открыть конструктор запросов в конфигураторе
  1. 1
    Запустите базу в режиме «Конфигуратор»
  2. 2
    Откройте нужный модуль (общий модуль, модуль объекта или формы)
  3. 3
    Поставьте курсор в место, где должен быть запрос
  4. 4
    Нажмите правую кнопку мыши и выберите «Конструктор запроса…»
  5. 5
    Соберите запрос: выберите таблицы, поля, условия — и нажмите «ОК»

Как открыть конструктор при написании запроса в коде

На практике чаще всего конструктор вызывают прямо в процессе написания процедуры. Типовой сценарий: вы объявляете переменную Запрос = Новый Запрос;, затем начинаете задавать свойство Запрос.Текст = и в этой точке открываете конструктор. Платформа сама обрамит готовый текст вертикальной чертой и кавычками по правилам многострочных строк.

Если запрос уже написан вручную и его нужно доработать, не обязательно удалять текст: установите курсор внутрь строки запроса и вызовите конструктор — он распарсит существующий текст и покажет его в визуальном виде. Это удобно для исправления чужого или старого кода. Учтите ограничение: если в тексте есть конструкции, которые конструктор не поддерживает (некоторые сложные выражения), он может сообщить, что запрос нельзя загрузить, — тогда править придётся вручную.

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

Конструктор запросов в консоли запросов и режиме 1С:Предприятие

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

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

Конструктор запроса в схеме компоновки данных (СКД)

Ещё одно место, где встречается конструктор запросов, — отчёты на системе компоновки данных. В конфигураторе откройте отчёт, перейдите к макету «Основная схема компоновки данных», на закладке «Наборы данных» откройте набор данных типа «Запрос» — рядом с полем текста запроса будет кнопка вызова конструктора.

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

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

Почему пункт «Конструктор запроса» неактивен или отсутствует

Самая частая причина — курсор стоит не в модуле, а, например, в окне свойств или в текстовом документе без синтаксического контекста. Конструктор доступен только внутри модулей с кодом на встроенном языке. Проверьте, что активно именно окно модуля.

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

Типичные ошибки
01
Искать конструктор в меню режима 1С:Предприятие — его там нет, нужен конфигуратор или консоль запросов
02
Вызывать конструктор при курсоре вне модуля — пункт меню будет неактивен
03
Пытаться открыть в конструкторе запрос с неподдерживаемыми конструкциями — платформа откажет, текст правят вручную
04
Путать конструктор запроса с конструктором СКД — у них разные возможности и область применения

Что проверить после создания запроса

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

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

Контрольные точки

Как проверить результат

Текст запроса вставился в модуль
Норма

Текст обрамлён вертикальными чертами, синтаксис подсвечен без ошибок

Тревожный признак

Появились ошибки синтаксического контроля или текст вставился без кавычек

Результат выполнения
Норма

Запрос возвращает ожидаемое число строк с корректными данными

Тревожный признак

Пустой результат, дубли строк или значения NULL там, где их не должно быть

Скорость выполнения
Норма

Запрос выполняется быстро на реальном объёме данных

Тревожный признак

Заметная пауза или зависание — нужны отборы и индексируемые поля

FAQ

Можно ли открыть конструктор запросов в обычном режиме 1С:Предприятие?

Напрямую — нет, в пользовательском режиме отдельного пункта меню нет. Обходной путь — консоль запросов (внешняя обработка) или настройка отчётов на СКД, если в конфигурации разрешено редактирование запросов.

Где находится пункт «Конструктор запроса» в меню конфигуратора?

В главном меню: «Текст» → «Конструктор запроса», а также в контекстном меню по правой кнопке мыши в окне модуля. Пункт активен только когда курсор находится в модуле с кодом.

Почему конструктор не открывает мой существующий запрос?

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

Чем конструктор запроса отличается от конструктора СКД?

Конструктор в схеме компоновки данных поддерживает расширения языка запросов для отчётов (характеристики, периоды, вычисляемые поля компоновки). Обычный конструктор в модуле этих расширений не понимает.

Можно ли вызвать конструктор горячими клавишами?

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

Нужны ли особые права для работы с конструктором?

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

Итог

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

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