Консоль запросов в 1С 8.3: где взять обработку, как открыть и проверить запрос
Содержание
Консоль запросов в 1С 8.3 не «включается» галочкой: это внешняя обработка, файл .epf. Чтобы её запустить, скачайте обработку (для управляемых форм обычно QueryConsole.epf), откройте базу в режиме 1С:Предприятие и выберите в главном меню Файл → Открыть. Пользователю нужны права на интерактивное открытие внешних обработок, а в типовых конфигурациях ещё и отключённая защита от опасных действий.
Порядок одинаковый для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигураций на платформе 8.3: консоль работает на уровне платформы и от конкретного решения почти не зависит. Различаются только настройки безопасности, о них ниже.
Где взять обработку консоли запросов
Встроенной консоли запросов в типовых конфигурациях нет. В разделе Все функции → Обработки её искать бесполезно, там только обработки самой конфигурации.
Варианты, из которых выбирают на практике:
| Источник | Что это | Когда подходит |
|---|---|---|
| 📦 Обработка с портала ИТС | Набор универсальных обработок от фирмы 1С, среди них консоль запросов для управляемых форм | Есть подписка ИТС, нужен «официальный» инструмент |
| 🧰 «Инструменты разработчика» (ИР) | Сторонний бесплатный набор, своя консоль запросов с расширенными функциями | Нужны дерево результата, история, удобный разбор пакетов |
| 🗂 Старая консоль для обычных форм | Файл вида КонсольЗапросов.epf из времён 8.1–8.2 | Только толстый клиент и обычное приложение |
Для современной базы в интерфейсе «Такси» берите версию для управляемых форм. Обработка для обычных форм в тонком клиенте и веб-клиенте не откроется.
Не скачивайте .epf со случайных файлообменников. Внешняя обработка исполняет код с правами пользователя и может изменить или выгрузить данные. Берите файл из ИТС или с официальной страницы автора набора.
Как запустить консоль запросов в 1С 8.3
Шаг 1. Сохраните файл обработки
Положите QueryConsole.epf в постоянную папку, например C:\1C\Tools\. Если база клиент-серверная, файл достаточно держать на компьютере пользователя: при открытии клиент сам передаёт его на сервер.
Шаг 2. Откройте базу в режиме 1С:Предприятие
Запуск идёт именно в пользовательском режиме, не в Конфигураторе. В Конфигураторе есть конструктор запроса, но он только собирает текст и ничего не выполняет.
Шаг 3. Откройте обработку через меню «Файл»
- Нажмите кнопку главного меню — значок с тремя полосками в левом верхнем углу окна.
- Выберите
Файл → Открыть(или нажмитеCtrl+O). - Укажите файл
QueryConsole.epf. - Если появилось предупреждение безопасности — подтвердите открытие (см. раздел про права).
Форма консоли откроется в отдельной вкладке. Чтобы не искать файл каждый раз, используйте список последних файлов в том же меню Файл.
Шаг 4. Проверьте работу коротким запросом
Вставьте в поле текста запроса простой запрос и нажмите кнопку выполнения:
ВЫБРАТЬ ПЕРВЫЕ 10
Контрагенты.Ссылка,
Контрагенты.ИНН
ИЗ
Справочник.Контрагенты КАК Контрагенты
Если внизу появилась таблица из 10 строк — консоль запросов включена и работает.
💡 Для БП 3.0 и УТ 11 справочник называется Контрагенты, в ЗУП 3.1 его нет — для проверки возьмите Справочник.Сотрудники.
Права и настройки безопасности для открытия консоли
Чаще всего консоль «не включается» не из-за файла, а из-за прав. Проверьте три уровня.
Право на внешние обработки
Открыть .epf может пользователь, у роли которого есть право «Интерактивное открытие внешних обработок». В типовых конфигурациях оно входит в полные права. У бухгалтера с урезанным профилем его обычно нет.
Кто может выдать доступ:
- 👤 администратор базы — через профиль группы доступа в разделе
Администрирование → Настройки пользователей и прав; - 🛠 разработчик — через роль в Конфигураторе, если профили не используются.
Защита от опасных действий
С платформы 8.3.9 у пользователя есть свойство «Защита от опасных действий». Если оно включено, при открытии внешней обработки платформа показывает предупреждение и может блокировать часть операций.
Как снять флажок:
- Откройте базу в Конфигураторе.
- Перейдите в
Администрирование → Пользователи. - Откройте карточку пользователя и снимите флажок «Защита от опасных действий».
- Сохраните. Пользователю нужно перезайти в базу.
Снимайте защиту только у администраторов и разработчиков, а не у всех пользователей подряд.
Ограничение доступа на уровне записей
Консоль выполняет запрос с правами текущего пользователя. Если в базе включено ограничение доступа на уровне записей (RLS), запрос к закрытой таблице упадёт с ошибкой нехватки прав. Добавьте в текст слово РАЗРЕШЕННЫЕ: ВЫБРАТЬ РАЗРЕШЕННЫЕ ... — тогда вернутся только доступные строки.
Что умеет консоль запросов: интерфейс и возможности
Форма делится на три зоны: список сохранённых запросов, текст текущего запроса и область результата. Набор кнопок зависит от версии обработки, но базовые функции есть в любой.
Что можно делать:
- 📝 Писать и править текст запроса на языке запросов 1С с подсветкой.
- 🧩 Открывать конструктор запроса — тот же, что в Конфигураторе. Удобно, если не помните имена полей.
- 📊 Выполнять пакетные запросы и смотреть результат каждого пакета отдельно.
- 🗃 Работать с временными таблицами: смотреть их содержимое и передавать в запрос заранее подготовленные таблицы.
- ⏱ Видеть время выполнения — основа для сравнения двух вариантов запроса.
- 💾 Сохранять набор запросов в файл и открывать его позже на другой базе.
- 📤 Выводить результат в табличный документ и выгружать в Excel через стандартное сохранение таблицы.
Консоль запросов только читает данные. Язык запросов 1С не содержит команд изменения: аналогов INSERT, UPDATE, DELETE в нём нет. Исключение — УНИЧТОЖИТЬ для временных таблиц внутри пакета. Исправлять данные через консоль запросов нельзя.
Отсюда частая путаница: консоль запросов — это не SQL-клиент. Запрос пишется к объектам метаданных (Справочник.Номенклатура, РегистрНакопления.ТоварыНаСкладах), а не к таблицам СУБД. Перевод в SQL платформа делает сама.
Пакетный запрос и временные таблицы
Пакет — несколько запросов через точку с запятой. Первый кладёт данные во временную таблицу, второй её читает:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ЭтоГруппа
;
ВЫБРАТЬ ПЕРВЫЕ 20
ВТ_Товары.Номенклатура
ИЗ
ВТ_Товары КАК ВТ_Товары
В консоли видно результат каждой части пакета. Так удобно искать, на каком шаге «теряются» строки: смотрите, сколько записей попало во временную таблицу и сколько дошло до итоговой выборки.
Как перенести в консоль запрос из кода конфигурации
Типичная задача — понять, почему отчёт или документ выдаёт не то. Запрос проще всего взять прямо из отладчика:
- Откройте Конфигуратор и запустите отладку (
F5). - Найдите в модуле строку
Запрос.Выполнить()и поставьте на неё точку останова (F9). - Выполните действие в пользовательском режиме, чтобы сработала остановка.
- Выделите
Запрос.Тексти вычислите выражение (Shift+F9), скопируйте текст. - Там же раскройте
Запрос.Параметрыи выпишите значения параметров. - Вставьте текст в консоль, заполните параметры и выполняйте по частям.
Параметры запроса: как задать даты, ссылки и списки
Параметры в тексте обозначают амперсандом: &НачалоПериода, &Организация. Консоль не выполнит запрос, пока у каждого параметра нет значения.
Пример с параметрами:
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Остатки
ГДЕ
Остатки.КоличествоОстаток > 0
Как заполнить:
- Перейдите на вкладку или в таблицу параметров консоли.
- Нажмите команду заполнения параметров из текста — консоль сама найдёт
&Датаи&Склад. - Для каждого параметра выберите тип:
Дата,СправочникСсылка.Складыи т. д. - Укажите значение. Для ссылки откроется форма выбора элемента справочника.
- Выполните запрос.
Что учесть при выборе значений:
- 📅 Дата для остатков.
&Дата = 31.03.2025 00:00:00даёт остатки на начало дня 31 марта. Нужен конец дня — укажите31.03.2025 23:59:59или передайтеНовый Граница(...)в коде. - 📋 Списки. Для условия
В (&Список)выберите тип «Список значений» и добавьте несколько элементов. - 🔗 Пустая ссылка. Если оставить ссылочный параметр пустым, запрос отберёт записи с пустым значением, а не «все подряд».
💡 Регистры в БП 3.0 и УТ 11 называются по-разному. Если имя регистра не подходит — откройте конструктор запроса и посмотрите дерево доступных таблиц.
Как оценить скорость запроса и посмотреть план выполнения
Время выполнения в консоли — первая метрика. Запустите запрос два-три раза: первый прогон часто медленнее из-за холодного кэша СУБД. Сравнивайте варианты запроса по повторным прогонам.
Что ускоряет запрос чаще всего
- ✂️ отбор в параметрах виртуальной таблицы (
Остатки(&Дата, Склад = &Склад)), а не вГДЕ; - 🔗 отказ от разыменования через точку по составным полям (
Регистратор.Дата) — каждая точка даёт лишнее соединение; - 🗃 вынос подзапросов во временную таблицу с индексом:
ПОМЕСТИТЬ ВТ ... ИНДЕКСИРОВАТЬ ПО Номенклатура; - 🔢
ВЫБРАТЬ ПЕРВЫЕ Nна время отладки, чтобы не тянуть миллион строк в форму.
Как получить план запроса
Сама консоль показывает текст запроса 1С, но не SQL-план. Для плана используют технологический журнал платформы. Создайте файл logcfg.xml в каталоге conf установленной платформы (обычно C:\Program Files\1cv8\conf\) на компьютере, где выполняется запрос: в клиент-серверном варианте — на сервере 1С.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\v8logs" history="2">
<event>
<eq property="name" value="DBMSSQL"/>
</event>
<property name="all"/>
</log>
<plansql/>
</config>
После сохранения файла платформа подхватит настройку в течение минуты. Выполните запрос в консоли и откройте свежий лог в C:\v8logs: в событии DBMSSQL будут текст SQL-запроса, длительность и план. Для PostgreSQL событие называется DBPOSTGRS. В файловой базе плана СУБД нет.
Технологический журнал с <plansql/> быстро растёт и нагружает сервер. Включайте его на 10–15 минут в спокойное время, затем удаляйте logcfg.xml. Сеансы пользователей при этом не обрываются.
Ещё один способ без журнала — замер производительности в Конфигураторе: Отладка → Замер производительности. Он покажет, сколько времени заняла строка кода с Запрос.Выполнить(), но не план.
Частые ошибки при запуске и выполнении
Администрирование → Пользователи).ИЗ или опечатка в имени таблицы.ПЕРВЫЕ 100, отбор в параметрах виртуальной таблицы и ограничение периода.Ещё одна ловушка: консоль нельзя просто подключить в Дополнительные отчеты и обработки в БП 3.0 или УТ 11. Обработка не содержит описания для регистрации в справочнике, поэтому программа откажется её добавить. Открывайте её через Файл → Открыть.
Частые вопросы
Можно ли запустить консоль запросов в облачной 1С (1cfresh)?
Работает ли консоль запросов в файловой базе?
Нужна ли монопольная блокировка базы?
Чем консоль запросов отличается от консоли отчётов?
Можно ли скопировать запрос из консоли в код?
Запрос.УстановитьПараметр("Дата", ...).