Разработка и Конфигурация · 9 мин
Конструктор запросов в 1С 8.3: как открыть и начать работу
Как открыть конструктор запросов в 1С 8.3: через конфигуратор, модуль объекта, консоль запросов и контекстное меню. Пошаговые инструкции и разбор ошибок.
Конструктор запросов — встроенный визуальный инструмент платформы 1С:Предприятие 8.3, который позволяет собирать запросы к базе данных без ручного написания текста на языке запросов. Он доступен только в конфигураторе (и в отладочных инструментах разработчика), поэтому открыть его напрямую из режима «Предприятие» штатными средствами нельзя — это первая причина, по которой у пользователей возникает вопрос.
Существует несколько способов вызвать конструктор: из модуля объекта или формы, из общего модуля, через контекстное меню в тексте программного кода, а также через внешние инструменты вроде консоли запросов. Выбор способа зависит от того, где именно вы пишете код и есть ли у вас права на изменение конфигурации.
Ниже разобраны все рабочие способы открытия конструктора запросов, условия, при которых кнопка вызова недоступна, типовые ошибки и варианты работы, если доступ в конфигуратор закрыт.
Где находится конструктор запросов и почему его нет в режиме «Предприятие»
Конструктор запросов — часть инструментария разработчика, встроенная в конфигуратор платформы. Он не является самостоятельным приложением или отдельным пунктом главного меню: вызвать его можно только в контексте редактирования программного модуля, где предполагается работа с запросом.
В пользовательском режиме «1С:Предприятие» конструктор отсутствует по замыслу: конечные пользователи не должны изменять программный код и структуру запросов. Если нужно выполнить произвольный запрос к данным без входа в конфигуратор, применяют внешние обработки — консоли запросов, которые открываются через меню «Файл → Открыть» (при наличии соответствующих прав).
Как открыть конструктор запросов из модуля объекта или формы
Основной и самый частый сценарий — вызов конструктора при написании кода в модуле документа, справочника, отчёта или обработки. Порядок действий одинаков для любого модуля.
- 1Откройте конфигуратор и нужный объект конфигурации (например, документ или отчёт).
- 2Откройте модуль объекта или модуль формы: правый клик по объекту → «Открыть модуль объекта» или через закладки «Модуль» / «Форма».
- 3Установите курсор в то место кода, где должен располагаться запрос.
- 4Нажмите правую кнопку мыши и выберите пункт «Конструктор запроса…».
- 5Если текст запроса ещё не написан, платформа предложит создать новый запрос — подтвердите.
- 6Соберите запрос в открывшемся окне и нажмите «ОК»: текст появится в модуле.
Если курсор стоит внутри уже существующего текста запроса (между кавычками строки, присвоенной переменной запроса), пункт «Конструктор запроса…» откроет этот текст для редактирования. Платформа распознаёт границы строки автоматически, но только если курсор находится строго внутри литерала запроса.
Тот же пункт доступен через главное меню конфигуратора: «Текст → Конструктор запроса…». Это удобно, если контекстное меню по какой-то причине не отображает нужный пункт.
Как открыть конструктор в общем модуле и модуле менеджера
В общих модулях и модулях менеджеров объектов вызов идентичен: откройте модуль через ветку «Общие → Общие модули» дерева конфигурации, поставьте курсор в нужное место и вызовите конструктор из контекстного меню. Никаких дополнительных настроек не требуется.
Единственное ограничение — модуль должен быть доступен для редактирования. Если конфигурация находится на поддержке с запретом изменений или объект заблокирован поставщиком, конструктор откроется, но сохранить изменённый текст в модуль не получится без снятия объекта с поддержки.
Как открыть конструктор через схему компоновки данных
В отчётах на СКД запрос хранится не в модуле, а в макете схемы компоновки данных. Чтобы добраться до конструктора, откройте отчёт в конфигураторе, перейдите на закладку «Основная схема компоновки данных», нажмите «Открыть схему компоновки данных», затем на закладке «Наборы данных» дважды щёлкните по полю текста запроса или нажмите кнопку вызова конструктора.
Здесь работает тот же визуальный конструктор, но с дополнительными закладками, специфичными для СКД: «Компоновка данных», «Характеристики», поля, вычисляемые в компоновке. Изменения применяются к набору данных схемы, а не к программному модулю.
Способы открыть конструктор
Самый быстрый способ при написании кода. Ограничение: курсор должен стоять внутри модуля или текста запроса.
Дублирует контекстное меню, подходит, когда правая кнопка недоступна или пункт не отображается.
Единственный штатный путь для запросов отчётов на СКД. Требует открытия макета схемы.
Позволяет создавать и отлаживать запросы в режиме «Предприятие» без изменения конфигурации. Требует прав на открытие внешних файлов.
Как работать с запросом без доступа к конфигуратору
Если у вас нет права «Конфигурирование» или доступ разрешён только в пользовательском режиме, штатный конструктор недоступен. Практическая альтернатива — консоль запросов: внешняя обработка, которая содержит собственный конструктор и позволяет выполнять запросы на реальных данных с просмотром результата.
Консоль открывается в режиме «Предприятие» через «Файл → Открыть» (или через механизм дополнительных отчётов и обработок, если он настроен администратором). Учтите: выполнение произвольных запросов требует соответствующих прав, а в файловых базах с ограниченным доступом администратор может запретить открытие внешних файлов.
Почему пункт «Конструктор запроса» неактивен: разбор причин
Наиболее частая ситуация — пункт меню есть, но недоступен или открывает пустой конструктор вместо существующего запроса. Причины обычно следующие: курсор стоит вне строкового литерала, текст запроса содержит синтаксические ошибки, которые конструктор не может разобрать, либо запрос собран динамически из нескольких строк.
Если конструктор сообщает об ошибке разбора текста, проверьте запрос вручную: незакрытые скобки, пропущенные запятые, неверные имена полей. Конструктор не открывает синтаксически некорректный текст — сначала исправьте ошибку, затем вызывайте конструктор снова.
Как проверить, что запрос собран правильно
После закрытия конструктора кнопкой «ОК» текст вставляется в модуль. Минимальная проверка — сохранить модуль и выполнить синтаксическую проверку конфигуратора (меню «Конфигурация → Проверка конфигурации» или кнопка проверки модуля), чтобы убедиться в отсутствии ошибок.
Полноценная проверка — выполнение запроса на копии базы: запустите процедуру или отчёт в отладке и убедитесь, что результат содержит ожидаемые данные. Для запросов с соединениями и группировками проверяйте не только факт выполнения, но и количество строк: дублирование строк — типичный признак неверно настроенного соединения.
Как проверить результат
Текст соответствует собранной структуре, модуль проходит синтаксическую проверку
Платформа сообщает об ошибке разбора или проверка модуля выдаёт синтаксические ошибки
Запрос выполняется, количество строк и данные соответствуют ожиданиям
Ошибка выполнения, пустой результат при наличии данных или задвоение строк
Модуль сохраняется, конфигурация базы данных обновляется без предупреждений
Объект заблокирован поставщиком, изменения не сохраняются
Что важно запомнить
Конструктор запросов открывается только в конфигураторе через контекстное меню модуля или меню «Текст». Для отчётов на СКД путь лежит через схему компоновки данных. В пользовательском режиме вместо конструктора применяют консоль запросов. Отладку выполняйте на копии базы.
Частые вопросы
Можно ли открыть конструктор запросов в тонком или веб-клиенте?
Нет. Конструктор — инструмент конфигуратора, а конфигуратор существует только в виде Windows-приложения. В тонком и веб-клиенте работают только пользовательские режимы, где конструктора нет.
Почему конструктор открывается пустым, хотя запрос в модуле есть?
Скорее всего, курсор стоит вне строкового литерала запроса либо текст содержит ошибку, которую конструктор не смог разобрать. Поставьте курсор точно между кавычками текста запроса и проверьте синтаксис.
Как открыть конструктор, если конфигурация на поддержке без изменений?
Конструктор откроется, но сохранить текст в заблокированный модуль нельзя. Варианты: вынести запрос в общий модуль расширения конфигурации или отладить запрос в консоли запросов на копии базы.
Есть ли горячая клавиша для вызова конструктора?
Штатного сочетания клавиш для конструктора запросов в платформе не назначено. Вызов выполняется через контекстное меню или пункт «Текст → Конструктор запроса…».
Чем консоль запросов отличается от конструктора?
Конструктор — визуальный редактор текста запроса внутри конфигуратора. Консоль запросов — внешняя обработка, которая позволяет писать, редактировать и сразу выполнять запросы на реальных данных в режиме «Предприятие»; многие консоли включают собственный встроенный конструктор.