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

· 9 мин

Содержание

Консоль запросов в 1С — это внешняя обработка, в которой пишут запрос на языке запросов 1С, задают параметры и сразу видят результат в виде таблицы. Её открывают через Главное меню → Файл → Открыть, выбирают файл .epf и работают с данными базы без программирования форм и отчётов.

Консоль нужна, когда типовой отчёт не отвечает на вопрос. Найти дубли контрагентов по ИНН, проверить остаток по счёту на дату, отыскать документы с битыми ссылками, отладить запрос перед вставкой в код. Работает она и в файловой, и в клиент-серверной базе, в любой конфигурации на платформе 8.3.

Консоль запросов: что это за инструмент и кому он нужен

Консоль — не часть конфигурации. Это отдельный файл, который запускают поверх любой базы. Поэтому она одинаково подходит для Бухгалтерии, ЗУП, Управления торговлей и самописных решений.

Кто ей пользуется:

  • 👨‍💻 Программисты 1С — отлаживают запросы перед переносом в модуль, проверяют пакеты с временными таблицами.
  • 🧾 Опытные бухгалтеры — достают выборки, которых нет в отчётах: все поступления от одного поставщика за год, документы без ответственного, контрагенты без КПП.
  • 🛠️ Администраторы и внедренцы — ищут битые ссылки, считают объём данных в таблицах, проверяют результат обмена.

Главное свойство консоли: язык запросов 1С умеет только читать данные. Конструкций для изменения или удаления записей в нём нет. Запрос из консоли не испортит базу, даже если написан с ошибкой.

Безопасно не значит бесплатно для сервера. Тяжёлый запрос без отборов по таблице проводок за несколько лет нагружает СУБД и тормозит работу других пользователей. Такие выборки запускайте вне рабочего времени или сначала с ПЕРВЫЕ 100.

Консоль не обходит права доступа . Запрос выполняется от имени текущего пользователя, поэтому ограничения на уровне записей действуют и в ней. Пользователь, которому закрыт склад или организация, этих данных в консоли тоже не увидит.

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

Официальная версия консоли распространяется в составе материалов ИТС, в разделе универсальных отчётов и обработок. Для 8.3 нужна версия под управляемые формы: она работает в тонком клиенте и в веб-клиенте. Старая консоль на обычных формах запускается только в толстом клиенте.

Существуют и сторонние консоли, в том числе в составе наборов инструментов разработчика. Они удобнее в деталях, но запускать чужой .epf в рабочей базе стоит только из проверенного источника: внешняя обработка может содержать любой код, а не только запрос.

Как открыть консоль

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

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

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

Открыть консоль может только пользователь, у роли которого есть право «Интерактивное открытие внешних обработок». У полных прав и у администратора оно есть всегда. У рядового бухгалтера в типовых конфигурациях на БСП его обычно нет.

Варианты решения:

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

Консоль из ИТС не оформлена как дополнительная обработка БСП, поэтому через Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки её обычно не подключают. Открывайте через меню Файл.

Из чего состоит окно консоли запросов

Интерфейс разных консолей отличается, но основные области одинаковы:

  • 🗂️ Список запросов — дерево, в котором хранится несколько запросов. Удобно держать набор «на все случаи» и сохранять его в файл.
  • ✍️ Текст запроса — поле редактора с подсветкой синтаксиса.
  • 🧩 Конструктор запроса — открывается из контекстного меню поля текста или кнопкой на панели. Таблицы и поля выбираются мышью, текст собирается сам.
  • 🔢 Параметры — таблица имён и значений для всех &Параметров из текста.
  • 📊 Результат — таблица или дерево с итогами. Ссылки в результате открываются двойным щелчком.

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

Параметры: на что смотреть

Параметр в тексте начинается с амперсанда: &НачалоПериода. В таблице параметров для него выбирают тип и значение. Для дат обращайте внимание на время.

Значение 31.03.2026 0:00:00 — это самое начало дня. Условие Дата <= &КонецПериода с таким значением отсечёт все документы, проведённые 31 марта днём. Ставьте 31.03.2026 23:59:59 или оборачивайте параметр в запросе: КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ).

Язык запросов в консоли: минимальный набор конструкций

Язык запросов 1С похож на SQL, но с русскими ключевыми словами и обращением к объектам метаданных, а не к физическим таблицам.

КонструкцияЧто делаетПример
ВЫБРАТЬ … ИЗЗадаёт поля и источникИЗ Справочник.Контрагенты КАК Контрагенты
ПЕРВЫЕ NОграничивает число строкВЫБРАТЬ ПЕРВЫЕ 100
ГДЕОтбор строкГДЕ НЕ Контрагенты.ПометкаУдаления
СГРУППИРОВАТЬ ПОГруппировка с агрегатамиСУММА, КОЛИЧЕСТВО, МАКСИМУМ
ИМЕЮЩИЕОтбор по агрегатуИМЕЮЩИЕ КОЛИЧЕСТВО(…) > 1
ЛЕВОЕ СОЕДИНЕНИЕСвязь таблиц… ПО Т1.Ссылка = Т2.Владелец
ОБЪЕДИНИТЬ ВСЕСклеивает результатыПриход и расход в одной таблице
ПОМЕСТИТЬСоздаёт временную таблицуОснова пакетного запроса
УПОРЯДОЧИТЬ ПОСортировка… УБЫВ

Особенности, которых нет в SQL:

  • 🔗 Обращение через точку. Реализация.Контрагент.ИНН — платформа сама добавит соединение со справочником.
  • 📦 Виртуальные таблицы регистров. Остатки, Обороты, ОстаткиИОбороты с параметрами в скобках.
  • 🎯 ЗНАЧЕНИЕ() для предопределённых элементов, перечислений и пустых ссылок: ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка).
  • 🔒 ВЫБРАТЬ РАЗРЕШЕННЫЕ — вернёт только записи, доступные пользователю, вместо ошибки доступа.

Пакетный запрос — это несколько запросов, разделённых точкой с запятой. Временные таблицы, созданные через ПОМЕСТИТЬ, живут до конца пакета. Консоль обычно показывает результат последнего запроса пакета, а многие версии позволяют посмотреть и промежуточные.

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

Примеры написаны для 1С:Бухгалтерии предприятия 3.0. В других конфигурациях имена объектов могут отличаться — их проще всего подсмотреть в конструкторе запроса.

1. Дубли контрагентов по ИНН

ВЫБРАТЬ
    Контрагенты.ИНН КАК ИНН,
    КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Количество
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.ИНН <> ""
    И НЕ Контрагенты.ПометкаУдаления
СГРУППИРОВАТЬ ПО
    Контрагенты.ИНН
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Контрагенты.Ссылка) > 1

У филиалов одной компании ИНН совпадает, а КПП разный. Если нужны настоящие дубли, добавьте Контрагенты.КПП в выборку и в группировку.

2. Выручка по покупателям за период

ВЫБРАТЬ
    Реализация.Контрагент КАК Контрагент,
    Реализация.СуммаДокумента КАК Сумма
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Проведен
    И Реализация.Дата МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)
;
ВЫБРАТЬ
    ВТ_Продажи.Контрагент КАК Контрагент,
    СУММА(ВТ_Продажи.Сумма) КАК Выручка
ИЗ
    ВТ_Продажи КАК ВТ_Продажи
СГРУППИРОВАТЬ ПО
    ВТ_Продажи.Контрагент
УПОРЯДОЧИТЬ ПО
    Выручка УБЫВ

Здесь два запроса в одном пакете. Первый собирает проведённые реализации во временную таблицу, второй сворачивает её по покупателям.

3. Остатки по счёту на дату

ВЫБРАТЬ
    Остатки.Субконто1 КАК Контрагент,
    Остатки.СуммаОстатокДт КАК Дебет,
    Остатки.СуммаОстатокКт КАК Кредит
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет В ИЕРАРХИИ (&Счет), , ) КАК Остатки

В параметр &Счет выберите счёт 60 из плана счетов — подсчета попадут в выборку благодаря В ИЕРАРХИИ. Остатки считаются на начало переданного момента. Чтобы получить остаток на конец 31 марта, передайте 01.04.2026 0:00:00.

4. Документы с битыми ссылками

ВЫБРАТЬ
    Реализация.Ссылка КАК Документ
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    И Реализация.Контрагент.Наименование ЕСТЬ NULL

Ссылка заполнена, но элемента справочника за ней нет — при разыменовании платформа вернёт NULL. Так находят последствия неудачного обмена или удаления без контроля ссылок.

5. Отладка запроса из кода

Скопируйте текст запроса из модуля в консоль. Уберите символы | в начале строк и кавычки, задайте параметры вручную и выполните. Если запрос пакетный, проверяйте каждую временную таблицу отдельно: допишите в конец пакета ВЫБРАТЬ * ИЗ ВТ_Имя и смотрите, на каком шаге пропадают строки.

Почему запрос в консоли не выполняется

Сообщение об ошибке в консоли указывает позицию в тексте в формате {(строка, колонка)}. Начинайте разбор с этого места.

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

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

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

  1. Отборы в параметрах виртуальной таблицы. Пишите Остатки(&НаДату, Счет В ИЕРАРХИИ (&Счет)), а не фильтр по счёту в ГДЕ после выборки. Отбор в скобках применяется до расчёта остатков, а условие в ГДЕ — после.
  2. Без лишних полей. ВЫБРАТЬ * тащит все реквизиты, включая длинные строки и хранилища значений. Перечисляйте только нужное.
  3. Осторожно с точкой у составных полей. Движения.Регистратор.Номер порождает соединение с каждой таблицей документов, которые могут быть регистратором. Если нужен только номер реализаций, используйте ВЫРАЗИТЬ(Движения.Регистратор КАК Документ.РеализацияТоваровУслуг).Номер.
  4. Временные таблицы вместо вложенных запросов в соединении. Подзапрос в ЛЕВОЕ СОЕДИНЕНИЕ оптимизатор СУБД часто обрабатывает плохо. Вынесите его в ПОМЕСТИТЬ и при большом объёме добавьте ИНДЕКСИРОВАТЬ ПО по полю связи.
  5. ОБЪЕДИНИТЬ ВСЕ вместо ОБЪЕДИНИТЬ. Без ВСЕ платформа удаляет дубли строк, а это лишняя сортировка. Если дублей быть не может, она не нужна.
  6. Пробный прогон на ПЕРВЫЕ 1000. Убедитесь, что логика верна, и только потом снимайте ограничение.

Сравнивайте время на одних и тех же параметрах. Первое выполнение после перерыва почти всегда дольше: СУБД ещё не держит данные в кэше. Ориентируйтесь на второй и третий прогон.

Если запрос всё равно идёт минутами, причина может быть не в тексте, а в устаревшей статистике СУБД или отсутствии регламентного обслуживания. Это уже задача администратора базы данных.

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

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