Где открыть конструктор запроса: Конфигуратор, СКД и консоль
Содержание
Конструктор запросов в 1С 8.3 запускают из Конфигуратора: откройте любой модуль, поставьте курсор в нужное место, нажмите правую кнопку мыши и выберите Конструктор запроса.... Если курсор стоит внутри уже написанного текста запроса, конструктор откроется с разобранным запросом. Если на пустой строке — предложит создать новый.
Без Конфигуратора тот же инструмент доступен в режиме 1С:Предприятие через внешнюю обработку «Консоль запросов». Ещё одна точка запуска — кнопка над текстом запроса в схеме компоновки данных отчёта. Сам конструктор везде один и тот же: меняется только место, куда он вернёт готовый текст.
Подготовка: какой режим запуска нужен и где писать запрос
Конструктор — часть редактора текста модулей. Поэтому сначала нужен режим, в котором вы редактируете код или схему отчёта.
Что проверить до старта:
- 🔑 Права. Для входа в Конфигуратор пользователю базы нужно право «Администрирование». Без него кнопка
Конфигураторв окне запуска пустит вас только до ошибки авторизации. - 🖥️ Режим. В окне запуска выберите базу и нажмите
Конфигуратор, а не1С:Предприятие. - 📂 Открытая конфигурация. Сразу после входа дерево объектов скрыто. Откройте его:
Конфигурация → Открыть конфигурацию. - ✏️ Модуль, доступный для правки. Конструктор пишет текст в модуль. Если модуль только для чтения, команда станет недоступной (подробно — в разделе про ошибки).
Конфигуратор можно открыть и из командной строки. Это удобно, если вы держите ярлык под конкретную базу:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор"
Для серверной базы вместо /F используют /S"сервер\имя_базы".
Учиться и экспериментировать удобнее во внешней обработке. В Конфигураторе выберите Файл → Новый → Внешняя обработка, откройте её модуль объекта и пишите запросы там. Конфигурацию базы вы при этом не трогаете, а обработку потом можно запускать в режиме Предприятия.
Как запустить конструктор запроса в Конфигураторе
Основной способ работает в любом модуле: модуле объекта, менеджера, формы, общем модуле, модуле внешней обработки.
Новый запрос с нуля
- Откройте модуль двойным щелчком по объекту или через контекстное меню объекта в дереве.
- Напишите заготовку, куда будет вставлен текст, например внутри процедуры:
Запрос = Новый Запрос;
Запрос.Текст =
- Поставьте курсор после знака
=или на пустую строку под ним. - Нажмите правую кнопку мыши и выберите
Конструктор запроса.... - Платформа сообщит, что текст запроса не найден, и спросит, создать ли новый. Ответьте
Да. - Соберите запрос в окне конструктора и нажмите
ОК. Текст вставится в модуль строковым литералом с символами|в начале строк.
Правка существующего запроса
Поставьте курсор в любое место текста запроса — между кавычками — и вызовите ту же команду. Конструктор разберёт текст и покажет таблицы, поля, условия и связи на своих вкладках.
Конструктор удаляет комментарии внутри текста запроса и переформатирует его. Если у вас в запросе были пояснения через //, после нажатия ОК их не останется. Важные комментарии держите над строкой Запрос.Текст = ..., а не внутри литерала.
Конструктор с обработкой результата
В том же контекстном меню есть вторая команда — Конструктор запроса с обработкой результата.... Она собирает не только текст, но и код вокруг него: создание запроса, выполнение и обход результата выборкой.
Когда что выбирать:
| Команда | Что вставляет | Когда удобна |
|---|---|---|
Конструктор запроса... | Только текст запроса | Правка готового запроса, запрос в существующем коде |
Конструктор запроса с обработкой результата... | Текст запроса и код выполнения с обходом результата | Новая процедура, где запрос пишется с нуля |
Вторую команду вызывают на пустой строке. Внутри уже готового текста запроса она бесполезна: продублирует код выполнения.
Через главное меню
Когда активно окно модуля, в главном меню Конфигуратора появляется пункт Текст. В нём есть те же команды конструкторов. Это запасной путь, если контекстное меню перегружено или вы работаете без мыши.
Вызов конструктора запросов с клавиатуры
Отдельной стандартной комбинации клавиш у конструктора запроса нет. Но вызвать его, не трогая мышь, можно двумя способами.
- ⌨️ Контекстное меню с клавиатуры. Поставьте курсор в текст запроса и нажмите
Shift+F10или клавишу контекстного меню (справа от правогоAltна полноразмерных клавиатурах). Дальше стрелками доКонструктор запроса...иEnter. - ⌨️ Главное меню. Нажмите
Alt, стрелками дойдите до пунктаТекст, раскройте его и выберите конструктор.
Внутри самого конструктора тоже многое делается без мыши:
Enterна поле в списке доступных таблиц переносит его в выбранные (то же, что двойной щелчок);Tabпереключает фокус между списками;Escзакрывает окно без сохранения изменений,ОК— с вставкой текста в модуль.
Перед тем как выйти из конструктора, нажмите кнопку Запрос в нижней части окна. Она покажет итоговый текст. Так проще поймать лишнее соединение или забытую группировку до того, как текст попадёт в модуль.
Конструктор запроса в схеме компоновки данных и динамическом списке
Запросы пишут не только в модулях. Ещё два места, где конструктор вызывается своей кнопкой.
Отчёт на СКД
- Откройте отчёт (или внешний отчёт) в Конфигураторе и перейдите к его схеме компоновки данных.
- На вкладке наборов данных добавьте набор данных типа «Запрос».
- Над полем текста запроса нажмите кнопку
Конструктор запроса....
В этом режиме у конструктора появляется вкладка «Компоновка данных». На ней настраивают поля, условия и параметры, доступные пользователю отчёта. В обычном модуле этой вкладки нет.
Динамический список на форме
У реквизита формы типа «Динамический список» есть настройка произвольного запроса. Включите в свойствах списка флажок «Произвольный запрос» — рядом с текстом запроса станет доступен вызов конструктора. Работает он так же, как в модуле, только результат сохраняется в свойствах реквизита.
Запуск конструктора в режиме 1С:Предприятие через консоль запросов
Если доступа к Конфигуратору нет или конфигурацию трогать нельзя, пользуйтесь консолью запросов. Это внешняя обработка, которая выполняет запрос прямо в пользовательском режиме и показывает результат таблицей. У неё есть кнопка вызова конструктора.
Порядок действий в интерфейсе «Такси»:
- Получите файл консоли. Его распространяет фирма 1С в составе инструментов разработчика для пользователей ИТС; файл обычно называется
QueryConsole.epf. Также консоль поставляется внутри некоторых конфигураций и наборов инструментов. - Запустите базу в режиме
1С:Предприятие. - Откройте главное меню (значок с тремя полосками в левом верхнем углу) и выберите
Файл → Открыть. - Укажите файл обработки.
- Если конфигурация покажет предупреждение безопасности о внешней обработке, подтвердите открытие — при условии, что файл получен из надёжного источника.
- В форме консоли нажмите кнопку конструктора запроса на панели над текстом запроса.
- Соберите запрос, нажмите
ОК, затем выполните его кнопкой выполнения в консоли.
Что нужно пользователю для такого запуска:
- право на интерактивное открытие внешних обработок (в ролях конфигурации оно называется «Интерактивное открытие внешних обработок»);
- в типовых конфигурациях с включённой защитой от опасных действий — подтверждение при открытии или снятие этой защиты администратором для конкретного пользователя.
Консоль выполняет запрос на живых данных. Запрос по большим регистрам без отбора по периоду может грузить сервер несколько минут и тормозить работу других пользователей. На рабочей базе в разгар дня ставьте отбор по дате и ограничивайте выборку через ПЕРВЫЕ 1000.
Если кнопка конструктора в консоли не реагирует в тонком клиенте, запустите базу в толстом клиенте. В старых версиях платформы конструктор из пользовательского режима работал только там.
Сравнение способов:
| Способ | Нужен Конфигуратор | Меняет конфигурацию | Для чего |
|---|---|---|---|
| Контекстное меню модуля | Да | Да, если модуль конфигурации | Разработка и доработка |
| Модуль внешней обработки | Да | Нет | Обучение, разовые обработки |
| Схема компоновки данных | Да | Только если отчёт в конфигурации | Отчёты на СКД |
| Консоль запросов | Нет | Нет | Проверка данных, разовая выгрузка |
Окно конструктора: вкладки и настройка под себя
После запуска откроется окно с несколькими вкладками. Ниже — для чего каждая, чтобы не искать нужную настройку наугад.
| Вкладка | Что на ней делают |
|---|---|
| Таблицы и поля | Выбирают таблицы из дерева базы данных и поля из них |
| Связи | Задают соединения между таблицами и их тип |
| Группировка | Указывают поля группировки и ресурсы с агрегатными функциями |
| Условия | Добавляют отборы и параметры запроса |
| Дополнительно | Задают ПЕРВЫЕ N, РАЗЛИЧНЫЕ, блокировку, создание временной таблицы |
| Объединения/Псевдонимы | Объединяют запросы и переименовывают поля |
| Порядок | Задают сортировку |
| Итоги | Настраивают итоги по группировкам |
| Пакет запросов | Управляют несколькими запросами в одном пакете |
Начинать удобнее всего с вкладки «Таблицы и поля»: остальные вкладки заполняются по мере того, как вы выбираете таблицы. Связи между двумя таблицами конструктор часто предлагает сам, если находит подходящие поля-ссылки, но тип соединения всё равно проверьте вручную.
Часть вкладок появляется не всегда: например, «Компоновка данных» есть только при вызове из схемы компоновки.
Несколько приёмов, которые делают работу быстрее:
- 🔍 Поиск таблицы. Дерево «База данных» длинное. Встаньте в него и начните набирать имя объекта — фокус перейдёт к совпадению.
- 📐 Размер окна. Окно конструктора растягивается. На широком мониторе разверните его: длинные имена полей перестанут обрезаться. Размер запоминается между вызовами.
- 🧩 Виртуальные таблицы. У регистров накопления и сведений в дереве есть виртуальные таблицы — «Остатки», «Обороты», «СрезПоследних». Параметры виртуальной таблицы задаются через контекстное меню выбранной таблицы, а не на вкладке «Условия». Условие, поставленное в параметры, работает быстрее.
- 🗂️ Временные таблицы. На вкладке «Дополнительно» можно указать, что результат помещается во временную таблицу. Следующий запрос пакета выберет её из дерева, как обычную таблицу.
- 👁️ Текст запроса. Кнопка
Запросвнизу окна показывает текст целиком. Его можно скопировать и проверить в консоли.
Почему конструктор запросов не запускается и что делать
Чаще всего проблема не в платформе, а в состоянии модуля или правах. Выберите свой симптом:
Отдельно о конфигурации на поддержке. Типовую БП 3.0 или ЗУП 3.1 обычно держат на поддержке без права изменения, чтобы обновления ставились автоматически. Не включайте возможность изменения в рабочей типовой базе только ради того, чтобы открыть конструктор. Для экспериментов используйте внешнюю обработку, для доработок — расширение. Перед изменением настроек поддержки сделайте резервную копию через Администрирование → Выгрузить информационную базу.