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