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