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

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

Консоль запросов в 1С: что это такое и как с ней работать

Что такое консоль запросов в 1С, где её найти, как написать и отладить запрос, типичные ошибки и отличия от конструктора запроса.

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

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

Консоль запросов не входит в типовую поставку большинства конфигураций как отдельный объект — чаще всего это внешняя обработка (файл с расширением .epf), которую открывают через меню «Файл → Открыть». В некоторых конфигурациях на управляемых формах консоль встроена в подсистему инструментов разработчика. Ниже разберём, как её найти, запустить и использовать на практике.

Что такое консоль запросов и для чего она нужна

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

Основные задачи, которые решает консоль:

  • отладка запроса перед вставкой в модуль или схему компоновки данных;
  • быстрый анализ данных — остатки, обороты, движения документа по регистрам;
  • поиск проблем в данных: дубли, пустые ссылки, «битые» записи;
  • проверка, какие данные реально возвращает запрос при конкретных параметрах;
  • обучение языку запросов на живых данных рабочей или тестовой базы.

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

Где взять и как запустить консоль запросов

В типовых конфигурациях консоль запросов обычно не видна в интерфейсе пользователя. Существует несколько способов её получить:

  • Внешняя обработка. Консоль запросов входит в состав диска ИТС, а также распространяется как отдельная обработка (.epf). Открывается через «Файл → Открыть» в режиме предприятия.
  • Встроенные инструменты разработчика. В некоторых конфигурациях есть подсистема «Инструменты разработчика», где консоль доступна из меню.
  • Конструктор запроса в конфигураторе. Это не полноценная консоль, но позволяет собрать текст запроса визуально — правда, без выполнения на реальных данных.
Как открыть консоль запросов
  1. 1
    Получите файл обработки консоли запросов (.epf) из дистрибутива ИТС или от администратора
  2. 2
    Запустите 1С в режиме предприятия под пользователем с достаточными правами
  3. 3
    Откройте меню «Файл → Открыть» и выберите файл обработки
  4. 4
    Убедитесь, что консоль запустилась и показывает дерево метаданных или поле текста запроса

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

Как написать и выполнить первый запрос

Интерфейс большинства консолей состоит из поля текста запроса, списка параметров и области результата. Простейший запрос выглядит так:

ВЫБРАТЬ ПЕРВЫЕ 100

Номенклатура.Ссылка КАК Товар,

Номенклатура.Код КАК Код

ИЗ

Справочник.Номенклатура КАК Номенклатура

ГДЕ

НЕ Номенклатура.ПометкаУдаления

Порядок работы: вводите текст запроса, при необходимости заполняете параметры (например, период или конкретный документ), нажимаете кнопку выполнения — и получаете таблицу результата. Конструкция «ВЫБРАТЬ ПЕРВЫЕ 100» ограничивает выборку, что полезно на больших таблицах, чтобы не ждать выполнения несколько минут.

bsl
ВЫБРАТЬ
	ТоварыНаСкладах.Номенклатура КАК Товар,
	ТоварыНаСкладах.КоличествоОстаток КАК Остаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладах

Параметры в тексте обозначаются символом «&». Перед выполнением их нужно заполнить в отдельной таблице параметров консоли: указать тип и значение. Частая ошибка новичков — забыть заполнить параметр даты, из-за чего виртуальная таблица остатков считается на пустую дату и возвращает не то, что ожидалось.

Работа с параметрами и временными таблицами

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

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

Отдельный нюанс — передача списка значений в параметр. В языке запросов 1С в условии «В (&Список)» можно передать массив или список значений. В консоли такой параметр заполняется через соответствующий тип значения; если консоль не поддерживает списки, придётся временно заменить условие на перечисление конкретных значений.

Консоль запросов и конструктор запроса: что выбрать

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

Консоль или конструктор

Конструктор запроса

Подходит новичкам и для сборки сложных соединений таблиц. Ограничение: сам по себе не выполняет запрос и не показывает данные

Консоль запросов

Подходит для отладки и анализа данных на живой базе. Требует базового знания синтаксиса языка запросов

Схема компоновки данных (СКД)

Нужна для отчётов с настройками пользователя. Избыточна, если требуется просто посмотреть выборку

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

Типичные ошибки и ограничения

При работе с консолью запросов пользователи регулярно сталкиваются с одними и теми же проблемами. Большинство из них связаны не с самой консолью, а с особенностями языка запросов и структуры данных.

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

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

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

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

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

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

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

Совпадает с ожидаемым объёмом выборки или данными отчёта

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

Строк в разы больше — вероятно лишнее соединение без условия

Суммы и остатки
Норма

Сходятся со штатным отчётом по тем же отборам

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

Расхождения — проверьте период, отборы и вид виртуальной таблицы

Время выполнения
Норма

Запрос выполняется за секунды

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

Минуты ожидания — нужна оптимизация или отборы в параметрах виртуальных таблиц

Готовый текст запроса переносится в код модуля: создаётся объект «Запрос», текст вставляется в свойство «Текст», параметры устанавливаются методом «УстановитьПараметр». Многие консоли умеют формировать готовый фрагмент кода автоматически — это экономит время и исключает ошибки при ручном переносе параметров.

Итог

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

Консоль запросов — безопасный инструмент чтения и отладки данных в 1С. Запускается как внешняя обработка, требует прав на чтение объектов, позволяет проверить запрос на реальных данных перед переносом в код или отчёт. Тяжёлые запросы сначала тестируйте на копии базы.

Частые вопросы о консоли запросов в 1С

Может ли консоль запросов испортить данные в базе?

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

Почему запрос в консоли работает, а в отчёте — нет?

Чаще всего причина в правах доступа (RLS) или в параметрах: в отчёте период и отборы задаются иначе, чем вы заполнили в консоли. Сравните значения параметров и выполните запрос под тем же пользователем, у которого проблема в отчёте.

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

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

Нужны ли права администратора для работы с консолью?

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

Как отладить запрос с временными таблицами?

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

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

Да, это один из лучших способов: вы сразу видите результат каждой конструкции на реальных данных. Начинайте с простых выборок из справочников, затем переходите к соединениям, группировкам и виртуальным таблицам регистров.