Консоль запросов в 1С 8.3: где взять, как открыть и чем заменить

· 9 мин

Содержание

Чтобы вызвать консоль запросов в 1С 8.3, откройте файл внешней обработки консоли через главное меню: Файл → Открыть или Ctrl+O в режиме 1С:Предприятие. Отдельной кнопки «Консоль запросов» в типовых конфигурациях и в конфигураторе нет. Консоль — это обработка .epf, которую запускают как любую внешнюю обработку .

Для запуска нужны три вещи: сам файл консоли на управляемых формах, право открывать внешние обработки и тонкий или толстый клиент. Разработчику удобнее стартовать из конфигуратора: Ctrl+F5 поднимает пользовательский режим, а дальше тот же Ctrl+O. Администратору чаще приходится разбираться не с запуском, а с правами пользователя.

Что нужно до запуска консоли запросов

Консоль запросов — инструмент разработчика. Она принимает текст запроса на языке 1С, параметры и показывает результат таблицей или деревом. Данные она только читает: язык запросов 1С не умеет UPDATE и DELETE, поэтому записать или удалить что-то через консоль нельзя.

Перед запуском проверьте:

  • 📁 Файл консоли. Обычно это КонсольЗапросов.epf. Версию для управляемых форм распространяет фирма 1С в составе материалов ИТС, есть и сторонние консоли с расширенными функциями.
  • 🖥️ Тип формы. Для 1С 8.3 с интерфейсом «Такси» нужна консоль на управляемых формах. Старые консоли на обычных формах из эпохи 8.2 в тонком клиенте не открываются.
  • 🔑 Права. У пользователя должно быть право интерактивно открывать внешние обработки. Без него появится сообщение Нарушение прав доступа!.
  • 🧪 База. Тяжёлые запросы лучше отлаживать на копии. Запрос не меняет данные, но может надолго нагрузить сервер.

Храните консоль в одной папке на сервере или в общем каталоге отдела. Тогда у всей команды одна версия и не нужно искать файл по рабочим столам.

Как открыть консоль запросов в режиме 1С:Предприятие

Основной способ — открыть обработку из файла. Он работает в любой конфигурации: БП 3.0, ЗУП 3.1, УТ 11, ERP и самописных.

Способ 1. Через меню «Файл»

  1. Запустите базу в режиме 1С:Предприятие под пользователем с нужными правами.
  2. Нажмите кнопку главного меню (значок с тремя полосками или стрелкой в левом верхнем углу окна).
  3. Выберите Файл → Открыть или нажмите Ctrl+O.
  4. Укажите файл КонсольЗапросов.epf и нажмите «Открыть».
  5. Если платформа покажет предупреждение безопасности, подтвердите открытие (подробнее — в разделе про права).

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

Способ 2. Перетащить файл в окно

Файл .epf можно перетащить мышью из проводника прямо в окно 1С:Предприятия. Платформа откроет его так же, как через Файл → Открыть, и задаст те же вопросы безопасности.

Способ 3. Из конфигуратора одной кнопкой

Если вы и так сидите в конфигураторе, запустите пользовательский режим оттуда:

  • F5 — запуск 1С:Предприятия в режиме отладки;
  • Ctrl+F5 — запуск без отладки.

Дальше консоль открывается через Ctrl+O, как в способе 1. Запуск в режиме отладки удобен тем, что точки останова в модулях конфигурации будут срабатывать, пока вы гоняете запросы.

Можно ли встроить консоль в меню конфигурации

Можно, если конфигурация ваша или вы готовы поддерживать доработку. Варианты:

ВариантКогда подходитМинусы
Открывать .epf из файлаТиповая база, разовые задачиНужно право на внешние обработки
Добавить обработку в расширение конфигурацииТиповая база, консоль нужна постоянноРасширение надо обновлять под новые релизы
Добавить обработку в саму конфигурациюСамописная база без поддержкиВ типовой снимает конфигурацию с полной поддержки

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

Горячие клавиши и быстрые команды

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

СочетаниеГдеЧто делает
Ctrl+O1С:ПредприятиеОткрыть внешнюю обработку (консоль) из файла
F5КонфигураторЗапустить 1С:Предприятие в режиме отладки
Ctrl+F5КонфигураторЗапустить 1С:Предприятие без отладки
Shift+F9Конфигуратор, режим отладкиВычислить выражение в точке останова
Ctrl+FТекст запросаПоиск по тексту
Ctrl+C, Ctrl+VТаблица результатаКопирование ячеек, вставка текста запроса

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

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

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

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

Если консоли под рукой нет, запрос можно проверить в отладчике:

  1. Поставьте точку останова на строке после Запрос.Выполнить().
  2. Когда выполнение остановится, нажмите Shift+F9.
  3. В поле выражения введите текст ниже и нажмите «Рассчитать».
Запрос.Выполнить().Выгрузить()

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

МенеджерВТ.Таблицы[0].ПолучитьДанные().Выгрузить()

Здесь МенеджерВТ — имя переменной менеджера временных таблиц в вашем коде, 0 — индекс первой таблицы.

Права доступа и защита от опасных действий

Чаще всего консоль «не запускается» из-за прав. Разберём три уровня, на которых платформа может её не пустить.

Право на открытие внешних обработок

В конфигураторе это право роли «Интерактивное открытие внешних обработок». В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) есть отдельная роль с похожим названием, её включают в группу доступа или профиль пользователя через Администрирование → Настройки пользователей и прав. У пользователя с полными правами это право уже есть.

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

Защита от опасных действий

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

Ограничения на уровне записей

Консоль работает с правами текущего пользователя. Если в базе настроено ограничение доступа на уровне записей (RLS), запрос к закрытым данным упадёт с ошибкой о недостатке прав. Решения два:

  • добавить в запрос ВЫБРАТЬ РАЗРЕШЕННЫЕ — тогда вернутся только те строки, которые пользователю видны;
  • запустить консоль под администратором, если нужна полная картина.

Результат консоли под рядовым пользователем и под администратором может отличаться. Если цифры в отчёте и в консоли не сходятся, сначала проверьте, под кем вы работаете.

Различия в версиях платформы и клиентах

Как вызвать консоль запросов, зависит не столько от номера 8.3.x, сколько от типа клиента и форм.

КлиентКакую консоль открыватьЧто учесть
Тонкий клиентНа управляемых формахОсновной вариант для БП 3.0, ЗУП 3.1, УТ 11
Толстый клиент (управляемое приложение)На управляемых формахОбычные формы откроются, только если это разрешено в свойствах конфигурации
Толстый клиент (обычное приложение)На обычных формахТолько для старых конфигураций на обычных формах
Веб-клиентНа управляемых формахФайл сначала загружается в браузер, работа медленнее

Если осталась консоль от 8.2

Консоль из 8.2 написана на обычных формах. В тонком клиенте 8.3 она не откроется. Есть два выхода:

  1. Взять консоль на управляемых формах. Это правильный путь для всех текущих типовых конфигураций.
  2. Запустить толстый клиент. В окне запуска выберите базу, нажмите «Изменить» и на последнем шаге поставьте основной режим запуска «Толстый клиент». Или запустите 1cv8.exe с параметром /RunModeOrdinaryApplication.

Второй путь годится для старой конфигурации на обычных формах. Для «Такси» он неудобен и не всегда работает.

Файловая и клиент-серверная база

В файловой базе консоль выполняет запрос на компьютере пользователя, и тяжёлый запрос тормозит только его. В клиент-серверной запрос выполняет рабочий процесс сервера 1С и СУБД. Долгий запрос к большому регистру нагружает сервер для всех пользователей, поэтому массовые выборки запускайте в нерабочее время.

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

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

  1. Скопируйте текст медленного запроса из модуля в консоль вместе с параметрами.
  2. Выполните его два-три раза. Первый прогон часто медленнее: данные ещё не в кэше СУБД.
  3. Засеките время выполнения. Большинство консолей показывает его после запроса.
  4. Меняйте запрос по одному изменению и сравнивайте время.

Что обычно ускоряет запрос

  • 🎯 Отбор в параметрах виртуальной таблицы. Условие в скобках Остатки(&Период, Склад = &Склад) работает быстрее, чем то же условие в ГДЕ.
  • 🧱 Временные таблицы вместо вложенных запросов. Промежуточный результат кладут в ПОМЕСТИТЬ и индексируют по полям соединения.
  • 🔗 Меньше разыменований через точку. Каждое Документ.Контрагент.ИНН в составном типе порождает лишние соединения.
  • 📏 Только нужные поля. ВЫБРАТЬ * тянет всё, включая табличные части.

Пример с отбором в параметрах виртуальной таблицы:

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

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

Когда консоли мало

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

  • замер производительности в конфигураторе — меню «Отладка», показывает время по строкам кода;
  • технологический журнал — фиксирует запросы к СУБД и их длительность на сервере;
  • план запроса в СУБД — для клиент-серверной базы на MS SQL или PostgreSQL.

Включение технологического журнала с подробными событиями быстро заполняет диск сервера. Включайте его на короткое время и с отбором по базе.

Ошибки при запуске и как их снять

Диагностика: выберите симптом

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

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

Есть ли консоль запросов в 1С 8.3 «из коробки»?
Отдельной команды в типовых конфигурациях нет. Консоль запускают как внешнюю обработку из файла или встраивают через расширение.
Можно ли через консоль запросов испортить данные?
Нет. Язык запросов 1С только читает данные. Риск один: тяжёлый запрос надолго нагрузит сервер.
Работает ли консоль в веб-клиенте?
Да, если это консоль на управляемых формах и у пользователя есть право на внешние обработки. Файл загружается через браузер.
Можно ли открыть консоль в базе в облаке 1С:Фреш?
Зависит от политики сервиса. Во многих облачных сервисах открытие произвольных внешних обработок запрещено, и консоль запустить не получится.
Чем консоль отличается от конструктора запроса?
Конструктор только собирает текст запроса в конфигураторе. Консоль выполняет запрос на реальных данных и показывает результат.