Консоль запросов 1С — это обработка, в которой пишут и выполняют запросы к рабочей базе без конфигуратора и без правки конфигурации. В ней проверяют, что лежит в регистрах, ищут, откуда в отчёте взялась лишняя сумма, отлаживают текст запроса перед тем, как вставить его в модуль. Сразу ниже можно скачать нашу бесплатную консоль для управляемых форм, дальше — другие варианты, как открыть консоль, основные приёмы, план запроса и мини-консоль своими руками на случай, когда скачивать файлы нельзя.
Консоль запросов 1C-Only — бесплатная внешняя обработка для 1С:Предприятие 8.3 на управляемых формах. Работает в тонком, толстом и веб-клиенте, в любой конфигурации: БП 3.0, УТ 11, ERP, КА 2, УНФ, ЗУП. Нужна платформа 8.3.8 или новее, доступ к ИТС не нужен.
Скачать консоль запросов (EPF, 38 КБ) версия 1.3 от 02.10.2026

Валюты.Ссылка = &Ссылка поле значения сразу открывает выбор валюты, для даты — календарь, без окна «Выбор типа данных».В (&Параметр) — с подбором нескольких значений из формы выбора.Как подключить: сохраните файл, в 1С откройте главное меню → «Файл» → «Открыть» (Ctrl+O) и выберите .epf. Нужно право на интерактивное открытие внешних обработок; при первом открытии типовая конфигурация может показать предупреждение безопасности — подтвердите открытие. Консоль только читает данные: язык запросов 1С не умеет изменять базу.
Сам запрос данные не меняет: язык запросов 1С умеет только читать. Но тяжёлый запрос без отборов нагружает сервер, поэтому на рабочей базе начинайте с ВЫБРАТЬ ПЕРВЫЕ 100 и отбора по периоду.
| Вариант | Формы и клиент | Когда подходит |
|---|---|---|
| Консоль запросов 1C-Only | Управляемые формы: тонкий, толстый и веб-клиент | Бесплатно и без ИТС: подсветка синтаксиса, типы параметров, временные таблицы |
| Консоль с ИТС | Отдельные версии для обычного и управляемого приложения | Официальный инструмент без лишнего, нужен доступ к ИТС |
| Инструменты разработчика (ИР) | Толстый клиент | Нужен максимум: план запроса, технологический журнал, разбор пакета |
| Обработка в конфигурации или расширении | Как у встроенной обработки | Консоль нужна постоянно, в том числе аналитикам |
| Консоли от сообщества | Чаще управляемые формы | Нужна конкретная функция: выгрузка в Excel, коллекция запросов |
Фирма «1С» публикует консоль на its.1c.ru в методической поддержке для разработчиков и администраторов, раздел «Запросы и отчеты». Исторически там две версии: старая — для обычного приложения, и «Консоль запросов для управляемого приложения». Для БП 3.0, УТ 11, ERP, КА 2, УНФ и других конфигураций на управляемых формах нужна вторая — управляемая консоль запросов, которая работает в тонком клиенте. Для скачивания нужен доступ к ИТС. Там же лежит консоль системы компоновки данных: запрос для отчёта на СКД удобнее отлаживать в ней, вместе с параметрами и отборами схемы.
«Инструменты разработчика» — бесплатный набор обработок от сообщества. Их консоль умеет больше остальных: дерево пакета, выполнение отдельного подзапроса, просмотр временных таблиц, SQL-текст и план запроса через технологический журнал. Портативный вариант открывается как внешняя обработка. Ограничение — ИР рассчитаны на толстый клиент, в базе на тонком клиенте для них придётся запускать толстый под администратором.
Если консолью пользуются каждый день, её удобнее встроить: в конфигураторе в контекстном меню ветки «Обработки» есть команда вставки внешней обработки. В типовой конфигурации на поддержке лучше добавить обработку в расширение — обновления будут ставиться как обычно. Не забудьте роль с правом на обработку и подсистему, иначе команда не появится в интерфейсе.
Прежде чем что-то скачивать, загляните в «Все функции» → «Обработки»: консоль в базу мог добавить предыдущий программист. Если пункта «Все функции» нет, включите его в параметрах: главное меню → «Сервис» → «Параметры», флажок «Отображать команду "Все функции"».
В открытом доступе есть десятки консолей на управляемых формах: с подсветкой синтаксиса, выгрузкой в Excel, коллекцией сохранённых запросов. Качество разное, поэтому перед запуском на рабочей базе загляните в модуль: внешний файл выполняется с вашими правами, а у администратора они полные. Модуль консоли 1C-Only открыт: его можно посмотреть и доработать в конфигураторе.
.epf на диск.Вариант консоли должен совпадать с режимом запуска: обработка на обычных формах открывается только в толстом клиенте в режиме обычного приложения, консоль на управляемых формах — и в тонком, и в толстом.
Через справочник «Дополнительные отчеты и обработки» БСП консоль с ИТС не подключить: БСП требует в модуле объекта экспортную функцию СведенияОВнешнейОбработке(), а у консоли её нет. Открывайте через «Файл» → «Открыть».
Текст пишут вручную или через конструктор запроса — в большинстве консолей для него есть кнопка. Некоторые консоли выполняют только выделенный фрагмент. Если язык запросов пока непривычен, начните со статьи о синтаксисе запросов 1С с примерами.
Параметры в тексте начинаются с амперсанда. Консоль находит их и показывает таблицу для ввода значений: дата, число, ссылка на справочник, список значений для условия В (&Список). Пример запроса для проверки дублей номеров реализаций за период (документ есть в БП 3.0 и УТ 11). Номера обычно нумеруются заново каждый год, поэтому группируем ещё и по году:
ВЫБРАТЬ
ГОД(Реализация.Дата) КАК Год,
Реализация.Номер КАК Номер,
КОЛИЧЕСТВО(*) КАК Документов
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Дата МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)
И Реализация.Проведен
СГРУППИРОВАТЬ ПО
ГОД(Реализация.Дата),
Реализация.Номер
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
Обратите внимание на КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ). Дата, введённая в консоли, обычно имеет время 00:00:00, и без этой функции документы последнего дня в выборку не попадут. Подробнее — в статье о датах в запросе 1С. Значения перечислений и предопределённые элементы удобнее писать прямо в тексте через функцию ЗНАЧЕНИЕ(), а не заводить под них параметры.
Пакетный запрос с ПОМЕСТИТЬ выполняется целиком. Хорошие консоли показывают результат каждого запроса пакета, а для временной таблицы — число записей. Если ваша выводит только последний результат, временно допишите в конец пакета, отделив точкой с запятой: ; ВЫБРАТЬ * ИЗ ВТ_Нужная. Так видно, на каком шаге теряются строки. Как передать в запрос таблицу значений и выгрузить результат обратно — в статье о таблице значений в запросе.
Остановитесь в отладчике после установки параметров, откройте «Вычислить выражение» (Shift+F9) и вычислите Запрос.Текст — текст можно скопировать, параметры лежат в Запрос.Параметры. Временных таблиц, созданных раньше в менеджере временных таблиц, в консоли нет: добавьте в начало пакета запросы, которые их создают. В актуальных версиях 8.3 содержимое временных таблиц видно прямо в отладчике через свойство Таблицы менеджера временных таблиц.
Время выполнения показывают почти все консоли. Замеряйте два-три раза: первый запуск обычно медленнее, потому что при повторном часть данных уже лежит в кэше СУБД.
План запроса показывает, как СУБД выполняет SQL-запрос, в который платформа превратила запрос 1С: какие индексы использованы, где идёт полное сканирование таблицы. Смотреть его имеет смысл в клиент-серверной базе на MS SQL или PostgreSQL. Способы получить план:
conf платформы кладут файл logcfg.xml с элементом plansql; план появится в событиях DBMSSQL или DBPOSTGRS в свойстве planSQLText;Минимальная настройка журнала для одной базы:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\TechLog\Plans" history="1">
<event>
<eq property="name" value="DBMSSQL"/>
<eq property="p:processName" value="ИмяИнформационнойБазы"/>
</event>
<event>
<eq property="name" value="DBPOSTGRS"/>
<eq property="p:processName" value="ИмяИнформационнойБазы"/>
</event>
<property name="all"/>
</log>
<plansql/>
</config>
Журнал с планами растёт быстро: включайте его на время замера и удаляйте файл настройки сразу после работы.
Бывает, что скачать ничего нельзя: закрытый контур или запрет на сторонние файлы. Тогда консоль запросов 1С 8.3 на управляемых формах собирается за несколько минут: в конфигураторе «Файл» → «Новый» → «Внешняя обработка», форма и реквизиты формы, как в комментарии в начале листинга. На форму выведите многострочное поле ТекстЗапроса, таблицу ПараметрыЗапроса, поле табличного документа Результат и две кнопки. Код модуля формы:
// Мини-консоль запросов: модуль формы внешней обработки.
// Управляемая форма, платформа 8.3, работает в тонком клиенте.
//
// Реквизиты формы:
// ТекстЗапроса - Строка неограниченной длины (поле многострочное);
// ПараметрыЗапроса - ТаблицаЗначений с колонками:
// Имя - Строка (150),
// Значение - составной тип: Число (15, 3), Строка (неограниченной длины),
// Дата (состав «Дата и время»), Булево, ЛюбаяСсылка;
// Результат - ТабличныйДокумент.
// Команды формы: ВыполнитьЗапрос, ЗаполнитьПараметры.
&НаКлиенте
Процедура ВыполнитьЗапрос(Команда)
Если ПустаяСтрока(ТекстЗапроса) Тогда
ПоказатьПредупреждение(, "Введите текст запроса.");
Возврат;
КонецЕсли;
ВыполнитьЗапросНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПараметры(Команда)
ЗаполнитьПараметрыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПараметрыНаСервере()
Запрос = Новый Запрос(ТекстЗапроса);
Попытка
ОписанияПараметров = Запрос.НайтиПараметры();
Исключение
СообщитьОбОшибке(ИнформацияОбОшибке());
Возврат;
КонецПопытки;
// Запоминаем уже введенные значения, чтобы не набирать их заново.
ВведенныеЗначения = Новый Соответствие;
Для Каждого СтрокаПараметра Из ПараметрыЗапроса Цикл
ВведенныеЗначения.Вставить(ВРег(СтрокаПараметра.Имя), СтрокаПараметра.Значение);
КонецЦикла;
ПараметрыЗапроса.Очистить();
Для Каждого ОписаниеПараметра Из ОписанияПараметров Цикл
НоваяСтрока = ПараметрыЗапроса.Добавить();
НоваяСтрока.Имя = ОписаниеПараметра.Имя;
ПрежнееЗначение = ВведенныеЗначения.Получить(ВРег(ОписаниеПараметра.Имя));
Если ПрежнееЗначение = Неопределено Тогда
// Пустое значение подходящего типа: пустая ссылка, 0, пустая дата.
НоваяСтрока.Значение = ОписаниеПараметра.ТипЗначения.ПривестиЗначение(Неопределено);
Иначе
НоваяСтрока.Значение = ПрежнееЗначение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗапросНаСервере()
МаксимумСтрок = 1000;
Запрос = Новый Запрос(ТекстЗапроса);
Для Каждого СтрокаПараметра Из ПараметрыЗапроса Цикл
Запрос.УстановитьПараметр(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
КонецЦикла;
Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
Попытка
РезультатЗапроса = Запрос.Выполнить();
Исключение
СообщитьОбОшибке(ИнформацияОбОшибке());
Возврат;
КонецПопытки;
Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
Результат.Очистить();
// Шапка: имена колонок результата.
ИменаКолонок = Новый Массив;
Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
ИменаКолонок.Добавить(Колонка.Имя);
НомерКолонки = ИменаКолонок.Количество();
Результат.Область(1, НомерКолонки, 1, НомерКолонки).Текст = Колонка.Имя;
Результат.Область("C" + Формат(НомерКолонки, "ЧГ=0")).ШиринаКолонки = 25;
КонецЦикла;
// Строки результата, но не больше МаксимумСтрок.
Выборка = РезультатЗапроса.Выбрать();
НомерСтроки = 1;
Пока НомерСтроки <= МаксимумСтрок И Выборка.Следующий() Цикл
НомерСтроки = НомерСтроки + 1;
Для НомерКолонки = 1 По ИменаКолонок.Количество() Цикл
Значение = Выборка[ИменаКолонок[НомерКолонки - 1]];
Результат.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки).Текст = Строка(Значение);
КонецЦикла;
КонецЦикла;
Заголовок = "Строк: " + Формат(Выборка.Количество(), "ЧН=0; ЧГ=0")
+ ", время: " + Формат(Длительность, "ЧН=0; ЧГ=0") + " мс";
КонецПроцедуры
&НаСервере
Процедура СообщитьОбОшибке(Информация)
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = КраткоеПредставлениеОшибки(Информация);
Сообщение.Сообщить();
КонецПроцедуры
Запрос.НайтиПараметры() возвращает параметры из текста с типами, которые платформа вывела из контекста. По типу подставляется пустое значение, введённые ранее значения сохраняются.&НаСервере: на клиенте объекта Запрос нет.Попытка вокруг Выполнить() превращает ошибку в тексте в сообщение с номером строки и колонки.ТекущаяУниверсальнаяДатаВМиллисекундах() замеряет только выполнение, без вывода.Строка(Значение) для ссылки получает представление отдельным обращением к базе, на больших выборках это долго. Общее число строк видно в заголовке формы.Ограничения мини-версии: список значений и таблицу значений в параметр через эту форму не передать, результат виден только у последнего запроса пакета. Для таких задач берите полноценную консоль.
{(5, 3)} — опечатка в имени поля или реквизит, которого нет в этой конфигурации. Первое число — строка текста запроса, второе — позиция в строке.Нет, запрос только читает. Некоторые консоли, например в ИР, умеют выполнять произвольный код, но это уже не запрос — на рабочей базе с ним осторожнее.
В режиме 1С:Предприятие штатной консоли нет, в конфигураторе запрос можно составить конструктором, но не выполнить. Поэтому консоль — это всегда обработка: внешняя или в составе конфигурации.
Частые причины: у пользователя работают ограничения доступа, которые усложняют SQL-запрос; в коде запрос выполняется в цикле; в консоли данные уже в кэше СУБД. Замерьте под тем же пользователем.
Можно, но лучше встроенную в расширение и с отдельной ролью. Запрос выполняется с правами пользователя; при ограничениях доступа на уровне записей пишите ВЫБРАТЬ РАЗРЕШЕННЫЕ, иначе запрос завершится ошибкой доступа.
Если запрос нужен не разово, а регулярно — с отборами, выгрузкой в Excel или по расписанию, — его стоит оформить отчётом на СКД или обработкой: это делают в рамках услуги разработка отчётов и обработок 1С. Опишите задачу и разместите её на площадке — оценка бесплатная, ответ в течение рабочего дня. Если отчёт уже есть, но медленный запрос тормозит работу пользователей, загляните в раздел «1С тормозит».
Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.