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

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

Конструктор запросов в 1С 8.3: как открыть и начать работу

Как открыть конструктор запросов в 1С 8.3: через конфигуратор, модуль объекта, консоль запросов и контекстное меню. Пошаговые инструкции и разбор ошибок.

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

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

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

Где находится конструктор запросов и почему его нет в режиме «Предприятие»

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

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

Как открыть конструктор запросов из модуля объекта или формы

Основной и самый частый сценарий — вызов конструктора при написании кода в модуле документа, справочника, отчёта или обработки. Порядок действий одинаков для любого модуля.

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

Если курсор стоит внутри уже существующего текста запроса (между кавычками строки, присвоенной переменной запроса), пункт «Конструктор запроса…» откроет этот текст для редактирования. Платформа распознаёт границы строки автоматически, но только если курсор находится строго внутри литерала запроса.

Тот же пункт доступен через главное меню конфигуратора: «Текст → Конструктор запроса…». Это удобно, если контекстное меню по какой-то причине не отображает нужный пункт.

Как открыть конструктор в общем модуле и модуле менеджера

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

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

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

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

Здесь работает тот же визуальный конструктор, но с дополнительными закладками, специфичными для СКД: «Компоновка данных», «Характеристики», поля, вычисляемые в компоновке. Изменения применяются к набору данных схемы, а не к программному модулю.

Способы открыть конструктор

Контекстное меню в модуле

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

Меню «Текст → Конструктор запроса»

Дублирует контекстное меню, подходит, когда правая кнопка недоступна или пункт не отображается.

Через схему компоновки данных

Единственный штатный путь для запросов отчётов на СКД. Требует открытия макета схемы.

Консоль запросов (внешняя обработка)

Позволяет создавать и отлаживать запросы в режиме «Предприятие» без изменения конфигурации. Требует прав на открытие внешних файлов.

Как работать с запросом без доступа к конфигуратору

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

Консоль открывается в режиме «Предприятие» через «Файл → Открыть» (или через механизм дополнительных отчётов и обработок, если он настроен администратором). Учтите: выполнение произвольных запросов требует соответствующих прав, а в файловых базах с ограниченным доступом администратор может запретить открытие внешних файлов.

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

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

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

Типичные ошибки
01
Курсор стоит рядом со строкой запроса, а не внутри неё — конструктор создаёт новый пустой запрос вместо редактирования существующего.
02
Попытка открыть запрос, собранный конкатенацией строк с условиями — конструктор не может разобрать такой текст.
03
Редактирование запроса в модуле объекта, заблокированного поставщиком — изменения не сохраняются без снятия объекта с поддержки.
04
Поиск конструктора в режиме «Предприятие» — штатно его там нет, нужна консоль запросов или конфигуратор.

Как проверить, что запрос собран правильно

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

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

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

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

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

Текст соответствует собранной структуре, модуль проходит синтаксическую проверку

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

Платформа сообщает об ошибке разбора или проверка модуля выдаёт синтаксические ошибки

Выполнение запроса на копии базы
Норма

Запрос выполняется, количество строк и данные соответствуют ожиданиям

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

Ошибка выполнения, пустой результат при наличии данных или задвоение строк

Сохранение изменений в объекте
Норма

Модуль сохраняется, конфигурация базы данных обновляется без предупреждений

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

Объект заблокирован поставщиком, изменения не сохраняются

Итог

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

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

Частые вопросы

Можно ли открыть конструктор запросов в тонком или веб-клиенте?

Нет. Конструктор — инструмент конфигуратора, а конфигуратор существует только в виде Windows-приложения. В тонком и веб-клиенте работают только пользовательские режимы, где конструктора нет.

Почему конструктор открывается пустым, хотя запрос в модуле есть?

Скорее всего, курсор стоит вне строкового литерала запроса либо текст содержит ошибку, которую конструктор не смог разобрать. Поставьте курсор точно между кавычками текста запроса и проверьте синтаксис.

Как открыть конструктор, если конфигурация на поддержке без изменений?

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

Есть ли горячая клавиша для вызова конструктора?

Штатного сочетания клавиш для конструктора запросов в платформе не назначено. Вызов выполняется через контекстное меню или пункт «Текст → Конструктор запроса…».

Чем консоль запросов отличается от конструктора?

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