Где взять консоль запросов и как выполнить в ней первый запрос

· 9 мин

Содержание

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

Консоль нужна, чтобы выполнить запрос к базе без программирования: найти дубли контрагентов, проверить остатки по счёту, выгрузить список документов за период. Язык запросов 1С только читает данные, поэтому сама консоль ничего в базе не меняет. Это делает её безопасным инструментом для бухгалтера, аудитора и программиста.

Что такое консоль запросов 1С 8.3 и откуда её взять

Консоль — это обработка с тремя основными частями: поле для текста запроса, таблица параметров и область результата. Вы пишете ВЫБРАТЬ … ИЗ …, задаёте значения параметров, нажимаете «Выполнить» и получаете таблицу, которую можно скопировать в Excel.

Где взять файл:

  • 📦 Консоль с диска ИТС. Фирма 1С распространяет её в составе универсальных отчётов и обработок. Для 8.3 нужна версия для управляемых форм — она работает в тонком клиенте. Файл обычно называется QueryConsole.epf.
  • 🧰 «Инструменты разработчика». Бесплатный набор от независимого автора. Кроме консоли запросов в нём есть консоль кода, просмотр технического журнала и много мелочей для отладки.
  • 🗂 Старая консоль для обычных форм. Открывается только в толстом клиенте. Подходит для конфигураций на обычных формах, в «Такси» с ней неудобно.

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

Способы запустить консоль запросов в 1С 8.3

Способ зависит от версии консоли и от того, есть ли у вас права администратора.

СпособКогда подходитОграничения
Файл → Открыть в режиме 1С:ПредприятиеРазовая работа, есть право открывать внешние обработкиПредупреждение безопасности при каждом открытии
Дополнительные отчёты и обработкиКонсолью пользуются регулярно, нужен пункт в менюОбработка должна поддерживать регистрацию
Запуск в толстом клиентеКонсоль на обычных формахНужен режим запуска «Толстый клиент»
Из Конфигуратора через запуск 1С:ПредприятияПрограммист проверяет запрос по ходу разработкиТе же права, что у пользователя, под которым идёт запуск

Способ 1. Открыть файл консоли через меню

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

Консоль откроется отдельной вкладкой. Файл можно держать в любой папке, но удобнее завести одну, например 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С умеет только читать: в нём нет команд изменения и удаления. Менять данные может консоль кода, но это другой инструмент.
Работает ли консоль запросов в веб-клиенте и в облаке 1С:Фреш?
Версия для управляемых форм работает в веб-клиенте, если у пользователя есть право открывать внешние обработки. В сервисе 1С:Фреш внешние обработки допускаются только после проверки и в безопасном режиме, поэтому произвольную консоль там обычно не запустить.
Почему у коллеги запрос возвращает больше строк, чем у меня?
Консоль работает под текущим пользователем. Если у вас ограничен доступ к части организаций или складов, а в запросе стоит РАЗРЕШЕННЫЕ, недоступные записи отфильтруются.
Можно ли выгрузить результат в Excel?
Да. Выделите таблицу результата, скопируйте и вставьте в Excel. Либо сохраните результат как табличный документ через меню файла и откройте его в Excel.
Чем консоль отличается от конструктора запроса в Конфигураторе?
Конструктор только собирает текст запроса. Консоль выполняет его на реальных данных и показывает результат.