Разработка и Конфигурация · 9 мин
Как посмотреть запрос в 1С
Как посмотреть запрос в 1С: консоль запросов, отладчик, просмотр текста запроса в коде и в СКД. Пошаговые инструкции для управляемых и обычных форм.
Запрос в 1С — это основной инструмент получения данных из базы. Посмотреть запрос может понадобиться в разных ситуациях: проверить, какой текст уходит в базу при выполнении отчёта, отладить ошибку «Поле не найдено», разобраться в чужом коде или проанализировать динамический список. В зависимости от задачи используются разные инструменты — от встроенного конструктора запроса до консоли запросов и отладчика.
Важно сразу разделить два разных смысла фразы «посмотреть запрос». Первый — увидеть текст запроса, который хранится в коде, в динамическом списке или в схеме компоновки данных. Второй — выполнить запрос и посмотреть его результат, не изменяя конфигурацию. Ниже разобраны оба сценария для управляемого приложения, обычных форм и конфигуратора.
Как посмотреть текст запроса в коде модуля
Если запрос написан в модуле объекта, документа или общем модуле, откройте конфигуратор, найдите нужный модуль через дерево конфигурации и поиском (Ctrl+F) по слову «Запрос» или фрагменту «ВЫБРАТЬ». Обычно текст запроса задаётся конструкцией вида Запрос.Текст = "ВЫБРАТЬ ..." и хранится в виде многострочного строкового литерала.
Для удобного просмотра и редактирования поставьте курсор внутрь строки с текстом запроса, нажмите правую кнопку мыши и выберите «Конструктор запроса». Конфигуратор распознает текст и откроет его в визуальном виде: таблицы, связи, поля, условия и группировки. Если запрос написан с ошибками синтаксиса, конструктор предупредит об этом при открытии.
Когда запрос собирается динамически (текст формируется по условиям), статически его увидеть нельзя. В этом случае используйте отладку: поставьте точку останова после строки присвоения текста и посмотрите значение в момент выполнения.
Как посмотреть запрос через отладчик
Отладчик — самый надёжный способ увидеть реальный текст запроса и значения параметров в момент выполнения. Включите отладку в конфигураторе: меню «Сервис → Параметры → Отладка», затем запустите отладку (F5) или подключитесь к уже работающему сеансу через «Отладка → Подключение».
Поставьте точку останова (F9) на строке Запрос.Выполнить() или сразу после присвоения текста. Когда выполнение остановится, выделите выражение Запрос.Текст и нажмите Shift+F9 — откроется окно «Вычислить выражение» с полным текстом запроса, включая динамически добавленные части. Аналогично посмотрите Запрос.Параметры, чтобы увидеть, какие значения реально передаются в запрос.
Просмотр результата запроса в отладчике
Результат запроса — объект «РезультатЗапроса», в табло он не раскрывается как таблица. Чтобы увидеть данные, вычислите выражение Запрос.Выполнить().Выгрузить() — получится таблица значений, которую можно просмотреть построчно через кнопку «Показать значение в отдельном окне» (F2 по значению). Так видны все строки и колонки, которые вернула база.
- 1Включите отладку и запустите сеанс или подключитесь к рабочему
- 2Поставьте точку останова на строке выполнения запроса (F9)
- 3Дождитесь остановки и вычислите Запрос.Текст через Shift+F9
- 4Проверьте Запрос.Параметры тем же способом
- 5Вычислите Запрос.Выполнить().Выгрузить() и откройте таблицу значений
Как посмотреть запрос через консоль запросов
Консоль запросов — внешняя обработка, которая позволяет вставить текст запроса, задать параметры и выполнить его прямо в пользовательском режиме, без изменения конфигурации. Это основной инструмент, когда нужно проверить, что именно возвращает запрос: сколько строк, какие значения, не дублируются ли данные.
Откройте обработку через «Файл → Открыть» в режиме предприятия. Вставьте текст запроса, заполните таблицу параметров (консоль обычно сама подхватывает список параметров из текста) и нажмите «Выполнить». Результат появится в виде таблицы — можно сверить его с ожиданиями и с данными в формах списков.
В консоли удобно экспериментировать: добавить условие, поменять порядок соединений, убрать группировку — и сразу видеть, как меняется результат. Это безопасно: запросы на выборку не изменяют данные базы.
Как посмотреть запрос динамического списка
Списки документов и справочников в управляемых формах часто построены на динамических списках с собственным запросом. Чтобы увидеть его в конфигураторе, откройте нужную форму списка, найдите в дереве реквизитов основной реквизит типа «ДинамическийСписок» и откройте его свойства. Если установлен флаг «Произвольный запрос», рядом будет доступно поле с текстом запроса и кнопка открытия конструктора.
В пользовательском режиме часть запроса видна через настройку списка: «Ещё → Настроить список» показывает отбор, сортировку и группировку, которые накладываются поверх основного запроса. Полный текст произвольного запроса из пользовательского режима не виден — только через конфигуратор или отладку формы.
Если список тормозит или показывает неожиданные данные, сравните произвольный запрос в свойствах динамического списка с настройками отбора в пользовательском режиме: частая причина проблем — конфликт условий в запросе и пользовательского отбора по тому же полю.
Как посмотреть запрос отчёта на СКД
Отчёты на системе компоновки данных хранят запрос в схеме компоновки. В конфигураторе откройте отчёт, перейдите на закладку «Основная схема компоновки данных» и откройте её — на закладке «Наборы данных» будет текст запроса набора данных. Там же видны связи наборов, вычисляемые поля и ресурсы.
В пользовательском режиме часть информации доступна через «Ещё → Изменить вариант отчёта»: видны отборы, группировки и поля, но сам текст запроса набора данных оттуда не открывается. Для просмотра итогового запроса, который СКД фактически формирует со всеми отборами, используют отладку механизма компоновки или специализированные консоли СКД.
Проверка результата и ограничения
После того как запрос найден и выполнен в консоли, сверьте результат с эталоном: количество строк сравните со списком в форме, суммы — с отчётом по тем же данным. Расхождение обычно означает лишние соединения (дубли строк), потерю данных из-за внутреннего соединения вместо левого или отбор, который не виден в пользовательском режиме.
Учитывайте ограничения доступа. Запросы выполняются с учётом прав и ограничений RLS: один и тот же запрос под разными пользователями может вернуть разный результат. Если проверяете чужую проблему «отчёт пустой», выполняйте запрос под тем же пользователем, у которого возникла проблема.
Как проверить результат
Совпадает с числом записей в списке при тех же отборах
Строк больше — вероятны дубли от соединения; меньше — лишний отбор или внутреннее соединение
Все параметры заполнены и имеют ожидаемый тип
Параметр пуст или имеет неверный тип — результат пустой или ошибка
Результат одинаков для администратора и пользователя с учётом его прав
Под пользователем данных меньше — срабатывают ограничения RLS
Частые вопросы
Как посмотреть запрос без доступа к конфигуратору?
Используйте консоль запросов в режиме предприятия, если известен текст запроса, или настройку списка и варианта отчёта для просмотра отборов. Полный текст произвольного запроса динамического списка или набора данных СКД без конфигуратора не виден — потребуются права разработчика или отладка.
Почему конструктор запроса не открывает текст из модуля?
Конструктор не открывается, если текст содержит синтаксические ошибки, собирается конкатенацией строк или содержит обращения к временным таблицам, которых нет в контексте. Исправьте синтаксис или просматривайте текст через отладчик.
Как увидеть итоговый запрос СКД со всеми отборами пользователя?
СКД формирует итоговый запрос динамически. Его можно перехватить в отладчике при выполнении отчёта либо воспользоваться консолью СКД, которая показывает макет компоновки и результирующий текст запроса.
Опасно ли выполнять запросы в консоли на рабочей базе?
Запросы на выборку (ВЫБРАТЬ) не изменяют данные и безопасны. Опасны произвольные фрагменты кода в консолях кода — они выполняются с правами пользователя и могут изменить или удалить данные. Эксперименты лучше проводить на копии базы.
Что делать, если запрос в отладчике показывает не те параметры?
Проверьте порядок установки параметров в коде: параметр мог быть переустановлен позже или не установлен вовсе. Вычислите в отладчике Запрос.Параметры и сверьте типы значений — параметр с типом, отличным от типа поля, часто приводит к пустому результату.
Как посмотреть запрос в обычных формах (толстый клиент)?
В обычном приложении логика та же: текст запроса ищите в модулях формы и объекта, конструктор запроса вызывается из контекстного меню, а готовая консоль запросов для обычных форм запускается через «Файл → Открыть». Отладчик работает одинаково в обоих режимах.
Что важно запомнить
Текст запроса смотрят в модуле через конструктор, реальный запрос с параметрами — в отладчике через Shift+F9, результат — в консоли запросов. Запрос динамического списка находится в свойствах реквизита формы, запрос отчёта СКД — в схеме компоновки данных. Всегда учитывайте права пользователя и проверяйте изменения на копии базы.