Консоль запросов в 1С 8.3: где взять, как открыть и чем заменить
Содержание
Чтобы вызвать консоль запросов в 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С:Предприятие под пользователем с нужными правами.
- Нажмите кнопку главного меню (значок с тремя полосками или стрелкой в левом верхнем углу окна).
- Выберите
Файл → Открытьили нажмитеCtrl+O. - Укажите файл
КонсольЗапросов.epfи нажмите «Открыть». - Если платформа покажет предупреждение безопасности, подтвердите открытие (подробнее — в разделе про права).
Консоль откроется отдельной вкладкой. Вставьте текст запроса, при необходимости заполните параметры и нажмите кнопку выполнения.
Способ 2. Перетащить файл в окно
Файл .epf можно перетащить мышью из проводника прямо в окно 1С:Предприятия. Платформа откроет его так же, как через Файл → Открыть, и задаст те же вопросы безопасности.
Способ 3. Из конфигуратора одной кнопкой
Если вы и так сидите в конфигураторе, запустите пользовательский режим оттуда:
F5— запуск 1С:Предприятия в режиме отладки;Ctrl+F5— запуск без отладки.
Дальше консоль открывается через Ctrl+O, как в способе 1. Запуск в режиме отладки удобен тем, что точки останова в модулях конфигурации будут срабатывать, пока вы гоняете запросы.
Можно ли встроить консоль в меню конфигурации
Можно, если конфигурация ваша или вы готовы поддерживать доработку. Варианты:
| Вариант | Когда подходит | Минусы |
|---|---|---|
Открывать .epf из файла | Типовая база, разовые задачи | Нужно право на внешние обработки |
| Добавить обработку в расширение конфигурации | Типовая база, консоль нужна постоянно | Расширение надо обновлять под новые релизы |
| Добавить обработку в саму конфигурацию | Самописная база без поддержки | В типовой снимает конфигурацию с полной поддержки |
Расширение — самый аккуратный путь для типовых баз. Консоль появится в разделе как обычная команда, а основная конфигурация останется на поддержке. Расширения доступны начиная с платформы 8.3.6.
Горячие клавиши и быстрые команды
Собственных клавиш у консоли немного, и они зависят от конкретной обработки. Подсказка к кнопке появляется, если навести на неё курсор. Платформенные сочетания ниже работают всегда.
| Сочетание | Где | Что делает |
|---|---|---|
Ctrl+O | 1С:Предприятие | Открыть внешнюю обработку (консоль) из файла |
F5 | Конфигуратор | Запустить 1С:Предприятие в режиме отладки |
Ctrl+F5 | Конфигуратор | Запустить 1С:Предприятие без отладки |
Shift+F9 | Конфигуратор, режим отладки | Вычислить выражение в точке останова |
Ctrl+F | Текст запроса | Поиск по тексту |
Ctrl+C, Ctrl+V | Таблица результата | Копирование ячеек, вставка текста запроса |
Конструктор запроса вместо консоли
В конфигураторе есть конструктор запроса. Встаньте курсором в модуль, нажмите правую кнопку мыши и выберите «Конструктор запроса». Если курсор стоит внутри строки с текстом запроса, конструктор откроет её для правки.
Конструктор собирает текст, но не выполняет его. Поэтому обычная связка такая: собрать запрос конструктором, скопировать текст, выполнить в консоли и посмотреть на данные.
Выполнить запрос прямо в отладчике
Если консоли под рукой нет, запрос можно проверить в отладчике:
- Поставьте точку останова на строке после
Запрос.Выполнить(). - Когда выполнение остановится, нажмите
Shift+F9. - В поле выражения введите текст ниже и нажмите «Рассчитать».
Запрос.Выполнить().Выгрузить()
Окно покажет таблицу значений с результатом. Так удобно ловить ошибку в конкретном месте кода с теми параметрами, которые реально пришли в процедуру. Временные таблицы смотрят через менеджер временных таблиц:
МенеджерВТ.Таблицы[0].ПолучитьДанные().Выгрузить()
Здесь МенеджерВТ — имя переменной менеджера временных таблиц в вашем коде, 0 — индекс первой таблицы.
Права доступа и защита от опасных действий
Чаще всего консоль «не запускается» из-за прав. Разберём три уровня, на которых платформа может её не пустить.
Право на открытие внешних обработок
В конфигураторе это право роли «Интерактивное открытие внешних обработок». В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) есть отдельная роль с похожим названием, её включают в группу доступа или профиль пользователя через Администрирование → Настройки пользователей и прав. У пользователя с полными правами это право уже есть.
Не давайте право на внешние обработки всем подряд. Вместе с консолью пользователь сможет открыть любую чужую обработку, в том числе ту, что пишет в базу.
Защита от опасных действий
В свойствах пользователя есть флажок «Защита от опасных действий». Если он включён, при открытии внешнего файла платформа показывает предупреждение и просит подтвердить, что файл безопасен. Для разработчика на тестовой базе флажок можно снять, для рабочих пользователей его лучше оставить.
Ограничения на уровне записей
Консоль работает с правами текущего пользователя. Если в базе настроено ограничение доступа на уровне записей (RLS), запрос к закрытым данным упадёт с ошибкой о недостатке прав. Решения два:
- добавить в запрос
ВЫБРАТЬ РАЗРЕШЕННЫЕ— тогда вернутся только те строки, которые пользователю видны; - запустить консоль под администратором, если нужна полная картина.
Результат консоли под рядовым пользователем и под администратором может отличаться. Если цифры в отчёте и в консоли не сходятся, сначала проверьте, под кем вы работаете.
Различия в версиях платформы и клиентах
Как вызвать консоль запросов, зависит не столько от номера 8.3.x, сколько от типа клиента и форм.
| Клиент | Какую консоль открывать | Что учесть |
|---|---|---|
| Тонкий клиент | На управляемых формах | Основной вариант для БП 3.0, ЗУП 3.1, УТ 11 |
| Толстый клиент (управляемое приложение) | На управляемых формах | Обычные формы откроются, только если это разрешено в свойствах конфигурации |
| Толстый клиент (обычное приложение) | На обычных формах | Только для старых конфигураций на обычных формах |
| Веб-клиент | На управляемых формах | Файл сначала загружается в браузер, работа медленнее |
Если осталась консоль от 8.2
Консоль из 8.2 написана на обычных формах. В тонком клиенте 8.3 она не откроется. Есть два выхода:
- Взять консоль на управляемых формах. Это правильный путь для всех текущих типовых конфигураций.
- Запустить толстый клиент. В окне запуска выберите базу, нажмите «Изменить» и на последнем шаге поставьте основной режим запуска «Толстый клиент». Или запустите
1cv8.exeс параметром/RunModeOrdinaryApplication.
Второй путь годится для старой конфигурации на обычных формах. Для «Такси» он неудобен и не всегда работает.
Файловая и клиент-серверная база
В файловой базе консоль выполняет запрос на компьютере пользователя, и тяжёлый запрос тормозит только его. В клиент-серверной запрос выполняет рабочий процесс сервера 1С и СУБД. Долгий запрос к большому регистру нагружает сервер для всех пользователей, поэтому массовые выборки запускайте в нерабочее время.
Как проверить скорость запроса в консоли
Консоль — первый инструмент, когда отчёт или документ тормозит. Порядок работы:
- Скопируйте текст медленного запроса из модуля в консоль вместе с параметрами.
- Выполните его два-три раза. Первый прогон часто медленнее: данные ещё не в кэше СУБД.
- Засеките время выполнения. Большинство консолей показывает его после запроса.
- Меняйте запрос по одному изменению и сравнивайте время.
Что обычно ускоряет запрос
- 🎯 Отбор в параметрах виртуальной таблицы. Условие в скобках
Остатки(&Период, Склад = &Склад)работает быстрее, чем то же условие вГДЕ. - 🧱 Временные таблицы вместо вложенных запросов. Промежуточный результат кладут в
ПОМЕСТИТЬи индексируют по полям соединения. - 🔗 Меньше разыменований через точку. Каждое
Документ.Контрагент.ИННв составном типе порождает лишние соединения. - 📏 Только нужные поля.
ВЫБРАТЬ *тянет всё, включая табличные части.
Пример с отбором в параметрах виртуальной таблицы:
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки
Имя регистра здесь условное: подставьте регистр своей конфигурации.
Когда консоли мало
Консоль показывает общее время, но не говорит, где именно теряется скорость. Дальше подключают:
- замер производительности в конфигураторе — меню «Отладка», показывает время по строкам кода;
- технологический журнал — фиксирует запросы к СУБД и их длительность на сервере;
- план запроса в СУБД — для клиент-серверной базы на MS SQL или PostgreSQL.
Включение технологического журнала с подробными событиями быстро заполняет диск сервера. Включайте его на короткое время и с отбором по базе.
Ошибки при запуске и как их снять
Ещё одна частая ловушка — параметры. Если параметр &Период вообще не передан, платформа остановит запрос с ошибкой о неустановленном параметре. Хуже, когда параметр есть, но в нём пустая дата или пустая ссылка: запрос выполнится без ошибки и вернёт ноль строк. Прежде чем искать ошибку в соединениях, проверьте таблицу параметров консоли.