Где взять консоль запросов и как выполнить в ней первый запрос
Содержание
Консоль запросов в 1С 8.3 запускается как внешняя обработка: откройте Главное меню (☰) → Файл → Открыть (или Ctrl+O), выберите файл консоли с расширением .epf и подтвердите предупреждение безопасности. Встроенной кнопки «Консоль запросов» в типовых конфигурациях нет: файл нужно взять отдельно.
Консоль нужна, чтобы выполнить запрос к базе без программирования: найти дубли контрагентов, проверить остатки по счёту, выгрузить список документов за период. Язык запросов 1С только читает данные, поэтому сама консоль ничего в базе не меняет. Это делает её безопасным инструментом для бухгалтера, аудитора и программиста.
Что такое консоль запросов 1С 8.3 и откуда её взять
Консоль — это обработка с тремя основными частями: поле для текста запроса, таблица параметров и область результата. Вы пишете ВЫБРАТЬ … ИЗ …, задаёте значения параметров, нажимаете «Выполнить» и получаете таблицу, которую можно скопировать в Excel.
Где взять файл:
- 📦 Консоль с диска ИТС. Фирма 1С распространяет её в составе универсальных отчётов и обработок. Для 8.3 нужна версия для управляемых форм — она работает в тонком клиенте. Файл обычно называется
QueryConsole.epf. - 🧰 «Инструменты разработчика». Бесплатный набор от независимого автора. Кроме консоли запросов в нём есть консоль кода, просмотр технического журнала и много мелочей для отладки.
- 🗂 Старая консоль для обычных форм. Открывается только в толстом клиенте. Подходит для конфигураций на обычных формах, в «Такси» с ней неудобно.
Внешняя обработка — это исполняемый код. Берите файл только из проверенного источника. Консоль «с форума» может содержать что угодно, включая запись в базу.
Способы запустить консоль запросов в 1С 8.3
Способ зависит от версии консоли и от того, есть ли у вас права администратора.
| Способ | Когда подходит | Ограничения |
|---|---|---|
Файл → Открыть в режиме 1С:Предприятие | Разовая работа, есть право открывать внешние обработки | Предупреждение безопасности при каждом открытии |
| Дополнительные отчёты и обработки | Консолью пользуются регулярно, нужен пункт в меню | Обработка должна поддерживать регистрацию |
| Запуск в толстом клиенте | Консоль на обычных формах | Нужен режим запуска «Толстый клиент» |
| Из Конфигуратора через запуск 1С:Предприятия | Программист проверяет запрос по ходу разработки | Те же права, что у пользователя, под которым идёт запуск |
Способ 1. Открыть файл консоли через меню
- Запустите базу в режиме 1С:Предприятие.
- Нажмите кнопку главного меню
☰в левом верхнем углу. - Выберите
Файл → Открытьили нажмитеCtrl+O. - Укажите файл
.epf. - В окне предупреждения безопасности подтвердите открытие.
Консоль откроется отдельной вкладкой. Файл можно держать в любой папке, но удобнее завести одну, например C:\1C\Tools\, и класть туда все служебные обработки.
Способ 2. Подключить через «Дополнительные отчёты и обработки»
В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) внешнюю обработку
можно зарегистрировать в базе. Путь в Бухгалтерии 3.0: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Должен стоять флажок использования дополнительных отчётов и обработок.
Нажмите «Добавить из файла», выберите консоль и укажите, в каком разделе показать команду. Если программа сообщает, что обработка не поддерживает регистрацию, значит, в файле нет нужных служебных сведений. Тогда остаётся способ 1.
Способ 3. Толстый клиент для консоли на обычных формах
Старая консоль в тонком клиенте не откроется. В окне запуска выделите базу, нажмите «Изменить», перейдите на вторую страницу и в поле «Основной режим запуска» выберите «Толстый клиент». Для одного запуска хватит ярлыка с параметром:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /RunModeOrdinaryApplication
Если база не запускается в толстом клиенте из-за настроек конфигурации, используйте консоль для управляемых форм.
Способ 4. Из Конфигуратора
Программисту удобно держать Конфигуратор и 1С:Предприятие открытыми одновременно. Сервис → 1С:Предприятие запускает пользовательский режим, F5 — то же самое с отладкой. Дальше консоль открывается через Ctrl+O. Сам Конфигуратор запросы к данным не выполняет: в нём есть только конструктор запроса для модулей.
Права и защита: почему консоль не открывается
Чаще всего консоль не запускается не из-за файла, а из-за прав.
- 🔒 Нет права на интерактивное открытие внешних обработок. Платформа выводит
Нарушение прав доступа!. В Бухгалтерии 3.0 права раздаются вАдминистрирование → Настройки пользователей и прав → Группы доступа. Нужен профиль с ролью на открытие внешних отчётов и обработок. У группы «Администраторы» она есть. - 🛡 Защита от опасных действий. При каждом открытии внешнего файла появляется предупреждение. Его можно подтвердить. Флажок «Защита от опасных действий» находится в свойствах пользователя в Конфигураторе:
Администрирование → Пользователи. Снимать его стоит только доверенным специалистам. - 👁 Ограничение доступа на уровне записей. Консоль работает под текущим пользователем. Если у него урезаны права на часть организаций или складов, запрос вернёт ошибку или неполные данные. Для проверки добавляйте
РАЗРЕШЕННЫЕпослеВЫБРАТЬ: тогда запрос молча отфильтрует недоступные записи.
Выдавать бухгалтерам право открывать любые внешние файлы рискованно. Безопаснее зарегистрировать проверенную консоль через «Дополнительные отчёты и обработки» и дать доступ только к ней.
Как настроить консоль запросов перед работой
Внешний вид консолей разный, но рабочие настройки у всех похожи.
Параметры. Всё, что в тексте начинается с &, — параметр. После ввода текста обновите список параметров (в консоли с ИТС для этого есть отдельная команда, в других консолях список заполняется при выполнении). Для каждого задайте тип и значение: дату, ссылку на счёт, организацию.
Ограничение выборки. Пока запрос отлаживается, пишите ВЫБРАТЬ ПЕРВЫЕ 100. Запрос по регистру за пять лет в большой базе может работать минутами и нагружать сервер для всех пользователей.
Вид результата. Таблица подходит для обычной выборки. Если в запросе есть ИТОГИ, переключитесь на дерево: так видны группировки.
Какой тип выбирать для частых параметров:
| Параметр в тексте | Тип в консоли | Пример значения |
|---|---|---|
&Дата, &НачалоПериода | Дата (дата и время) | 01.09 00:00:00 |
&Счет | ПланСчетов.Хозрасчетный | 51 |
&Организация | Справочник.Организации | ваша организация |
&Контрагент | Справочник.Контрагенты | выбрать из списка |
&СписокСчетов | Список значений с типом счёта | 60, 62, 76 |
Список значений работает с условием В: ГДЕ Счет В (&СписокСчетов). Так один запрос проверяет сразу несколько счетов.
Сохранение запросов. Консоль умеет сохранять набор запросов в файл. Заведите себе библиотеку: «Остатки 51», «Дубли ИНН», «Непроведённые за месяц». Это быстрее, чем каждый раз писать заново.
Конструктор запроса. Если писать текст вручную непривычно, откройте конструктор кнопкой в форме консоли. Там таблицы и поля выбираются мышью, а текст собирается автоматически.
Примеры запросов в консоли для начинающих
Примеры написаны для Бухгалтерии 3.0. В других конфигурациях имена объектов могут отличаться: проверьте их в конструкторе запроса.
Документы реализации за период
ВЫБРАТЬ
Реализация.Дата,
Реализация.Номер,
Реализация.Контрагент,
Реализация.СуммаДокумента
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И Реализация.Проведен
УПОРЯДОЧИТЬ ПО
Реализация.Дата
Параметры: НачалоПериода = 01.09 00:00:00, КонецПериода = 30.09 23:59:59. Если указать конец периода без времени, документы последнего дня не попадут в выборку.
Чтобы не думать о времени, оберните параметр функцией: Реализация.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ). Тогда можно вводить даты без часов и минут.
Непроведённые документы за месяц
ВЫБРАТЬ
Поступление.Ссылка,
Поступление.Дата,
Поступление.Контрагент
ИЗ
Документ.ПоступлениеТоваровУслуг КАК Поступление
ГДЕ
НЕ Поступление.Проведен
И НЕ Поступление.ПометкаУдаления
И Поступление.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Месяц, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Месяц, МЕСЯЦ)
В параметр Месяц передайте любую дату нужного месяца. Такой запрос удобно запускать перед закрытием периода: он сразу показывает поступления, которые кто-то сохранил, но забыл провести. Помеченные на удаление отсечены, чтобы не мешали.
Контрагенты с одинаковым ИНН
ВЫБРАТЬ
Контрагенты.ИНН,
КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Карточек
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.ИНН <> ""
И НЕ Контрагенты.ПометкаУдаления
СГРУППИРОВАТЬ ПО
Контрагенты.ИНН
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Контрагенты.Ссылка) > 1
Запрос покажет ИНН, по которым заведено две и больше карточки. Филиалы с одним ИНН и разными КПП тоже попадут в список — это не всегда ошибка.
Остатки по счёту 51 на дату
ВЫБРАТЬ
Остатки.Субконто1 КАК БанковскийСчет,
Остатки.СуммаОстаток КАК Остаток
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК Остатки
Параметр Счет имеет тип ПланСчетов.Хозрасчетный, выберите в нём 51. Виртуальная таблица остатков берёт данные на начало момента &Дата. Чтобы получить остаток на конец 30 сентября, передайте 30.09 23:59:59 или 01.10 00:00:00.
Расширенные возможности: пакеты, временные таблицы, перенос в код
Пакетные запросы. Несколько запросов разделяются точкой с запятой. Первый складывает данные во временную таблицу через ПОМЕСТИТЬ, следующий её читает:
ВЫБРАТЬ
Реализация.Контрагент,
СУММА(Реализация.СуммаДокумента) КАК Выручка
ПОМЕСТИТЬ ВТ_Выручка
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И Реализация.Проведен
СГРУППИРОВАТЬ ПО
Реализация.Контрагент
;
ВЫБРАТЬ ПЕРВЫЕ 10
ВТ_Выручка.Контрагент,
ВТ_Выручка.Выручка
ИЗ
ВТ_Выручка КАК ВТ_Выручка
УПОРЯДОЧИТЬ ПО
ВТ_Выручка.Выручка УБЫВ
Это топ-10 покупателей по выручке за период.
Соединения и NULL. Когда нужно показать все карточки, даже без движений, используйте ЛЕВОЕ СОЕДИНЕНИЕ. Строки без пары из правой таблицы придут со значением NULL. Чтобы в результате стоял ноль, а не пустота, оберните поле: ЕСТЬNULL(ВТ_Выручка.Выручка, 0). Без этого сортировка и итоги по такому полю дают неожиданный результат, а при выгрузке в Excel пустые ячейки легко принять за ошибку.
Проверка промежуточной таблицы. Если консоль показывает только результат последнего запроса пакета, а ошибка где-то в середине, временно допишите в конец ВЫБРАТЬ * ИЗ ВТ_Выручка. Так видно, что именно легло во временную таблицу.
Перенос текста в модуль. Запрос, отлаженный в консоли, вставляется в код как строка. Каждая строка продолжения начинается с |, а кавычки внутри текста удваиваются:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ИНН = """"";
Замер скорости. Тяжёлый запрос сначала гоняйте на копии базы. Если он тормозит, проверьте, есть ли отбор в параметрах виртуальной таблицы, а не в ГДЕ: условие внутри скобок Остатки(&Дата, Счет = &Счет, , ) отбирает данные до расчёта и работает заметно быстрее.
Ошибки при работе с консолью запросов
Не запускайте тяжёлые запросы в рабочей базе в разгар дня — сервер один на всех, и медленный запрос по регистрам тормозит проведение документов у коллег. Для разовой аналитики лучше выгрузить копию базы .
Частые вопросы
Можно ли через консоль запросов изменить или удалить данные?
Работает ли консоль запросов в веб-клиенте и в облаке 1С:Фреш?
Почему у коллеги запрос возвращает больше строк, чем у меня?
РАЗРЕШЕННЫЕ, недоступные записи отфильтруются.