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

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

Как посмотреть запрос в 1С

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

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

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

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

Если запрос написан в модуле объекта, документа или общем модуле, откройте конфигуратор, найдите нужный модуль через дерево конфигурации и поиском (Ctrl+F) по слову «Запрос» или фрагменту «ВЫБРАТЬ». Обычно текст запроса задаётся конструкцией вида Запрос.Текст = "ВЫБРАТЬ ..." и хранится в виде многострочного строкового литерала.

Для удобного просмотра и редактирования поставьте курсор внутрь строки с текстом запроса, нажмите правую кнопку мыши и выберите «Конструктор запроса». Конфигуратор распознает текст и откроет его в визуальном виде: таблицы, связи, поля, условия и группировки. Если запрос написан с ошибками синтаксиса, конструктор предупредит об этом при открытии.

Когда запрос собирается динамически (текст формируется по условиям), статически его увидеть нельзя. В этом случае используйте отладку: поставьте точку останова после строки присвоения текста и посмотрите значение в момент выполнения.

Как посмотреть запрос через отладчик

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

Поставьте точку останова (F9) на строке Запрос.Выполнить() или сразу после присвоения текста. Когда выполнение остановится, выделите выражение Запрос.Текст и нажмите Shift+F9 — откроется окно «Вычислить выражение» с полным текстом запроса, включая динамически добавленные части. Аналогично посмотрите Запрос.Параметры, чтобы увидеть, какие значения реально передаются в запрос.

Просмотр результата запроса в отладчике

Результат запроса — объект «РезультатЗапроса», в табло он не раскрывается как таблица. Чтобы увидеть данные, вычислите выражение Запрос.Выполнить().Выгрузить() — получится таблица значений, которую можно просмотреть построчно через кнопку «Показать значение в отдельном окне» (F2 по значению). Так видны все строки и колонки, которые вернула база.

Порядок действий в отладчике
  1. 1
    Включите отладку и запустите сеанс или подключитесь к рабочему
  2. 2
    Поставьте точку останова на строке выполнения запроса (F9)
  3. 3
    Дождитесь остановки и вычислите Запрос.Текст через Shift+F9
  4. 4
    Проверьте Запрос.Параметры тем же способом
  5. 5
    Вычислите Запрос.Выполнить().Выгрузить() и откройте таблицу значений

Как посмотреть запрос через консоль запросов

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

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

В консоли удобно экспериментировать: добавить условие, поменять порядок соединений, убрать группировку — и сразу видеть, как меняется результат. Это безопасно: запросы на выборку не изменяют данные базы.

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

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

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

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

Как посмотреть запрос отчёта на СКД

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

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

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

Проверка результата и ограничения

После того как запрос найден и выполнен в консоли, сверьте результат с эталоном: количество строк сравните со списком в форме, суммы — с отчётом по тем же данным. Расхождение обычно означает лишние соединения (дубли строк), потерю данных из-за внутреннего соединения вместо левого или отбор, который не виден в пользовательском режиме.

Учитывайте ограничения доступа. Запросы выполняются с учётом прав и ограничений RLS: один и тот же запрос под разными пользователями может вернуть разный результат. Если проверяете чужую проблему «отчёт пустой», выполняйте запрос под тем же пользователем, у которого возникла проблема.

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

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

Количество строк результата
Норма

Совпадает с числом записей в списке при тех же отборах

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

Строк больше — вероятны дубли от соединения; меньше — лишний отбор или внутреннее соединение

Значения параметров
Норма

Все параметры заполнены и имеют ожидаемый тип

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

Параметр пуст или имеет неверный тип — результат пустой или ошибка

Выполнение под пользователем
Норма

Результат одинаков для администратора и пользователя с учётом его прав

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

Под пользователем данных меньше — срабатывают ограничения RLS

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

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

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

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

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

Как увидеть итоговый запрос СКД со всеми отборами пользователя?

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

Опасно ли выполнять запросы в консоли на рабочей базе?

Запросы на выборку (ВЫБРАТЬ) не изменяют данные и безопасны. Опасны произвольные фрагменты кода в консолях кода — они выполняются с правами пользователя и могут изменить или удалить данные. Эксперименты лучше проводить на копии базы.

Что делать, если запрос в отладчике показывает не те параметры?

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

Как посмотреть запрос в обычных формах (толстый клиент)?

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

Итог

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

Текст запроса смотрят в модуле через конструктор, реальный запрос с параметрами — в отладчике через Shift+F9, результат — в консоли запросов. Запрос динамического списка находится в свойствах реквизита формы, запрос отчёта СКД — в схеме компоновки данных. Всегда учитывайте права пользователя и проверяйте изменения на копии базы.