К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как загрузить запрос в 1С: пошаговая инструкция

Как загрузить запрос в 1С через консоль запросов: открытие обработки, вставка текста, настройка параметров, проверка результата и типичные ошибки.

Загрузить запрос в 1С чаще всего требуется в двух ситуациях: когда нужно выполнить готовый текст запроса на языке запросов 1С и посмотреть результат, либо когда нужно перенести запрос из одной базы (или из письма коллеги) в другую. В обоих случаях основной инструмент — консоль запросов: специальная обработка, которая позволяет вставить текст запроса, задать параметры и выполнить его без изменения конфигурации.

Важно понимать: консоль запросов не входит в типовую поставку большинства конфигураций. Это внешняя обработка (файл с расширением .epf), которую запускают через меню «Файл → Открыть». В некоторых конфигурациях на управляемых формах есть встроенные инструменты разработчика, но классический сценарий — именно внешняя консоль.

Ниже разобран полный цикл: где взять консоль, как открыть её в базе, как загрузить текст запроса, как заполнить параметры и как убедиться, что результат корректен. Отдельно рассмотрены типичные ошибки и ограничения, о которых нужно знать до начала работы.

Что понадобится перед загрузкой запроса

Для работы потребуется три вещи: доступ к информационной базе с правами, позволяющими открывать внешние обработки; сама консоль запросов в виде файла .epf; и текст запроса, который нужно выполнить. Если запрос прислал коллега или найден в документации, сохраните его в текстовый файл — так проще избежать потери символов при копировании из мессенджера или почты.

Проверьте режим запуска базы. Консоли запросов бывают для обычных форм и для управляемых форм (тонкий клиент). Если база работает в режиме управляемого приложения, а обработка написана под обычные формы, она либо не откроется, либо откроется с ошибками. Большинство современных консолей поддерживают управляемые формы, но старые версии — нет.

Также убедитесь, что у вашей учётной записи есть права на чтение тех таблиц, к которым обращается запрос. Если запрос выбирает данные из регистров, к которым у вас нет доступа, выполнение завершится ошибкой нарушения прав доступа — и это нормальное поведение системы, а не сбой консоли.

Как открыть консоль запросов в базе

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

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

Альтернативный способ — запуск консоли из конфигуратора через «Сервис → Внешние обработки» или отладку с открытием обработки. Это удобно разработчику, но для разовой задачи достаточно обычного открытия файла.

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

Самый простой способ — скопировать текст запроса и вставить его в поле редактора консоли сочетанием Ctrl+V. Большинство консолей поддерживают подсветку синтаксиса, поэтому корректный запрос сразу будет выглядеть структурированным: ключевые слова ВЫБРАТЬ, ИЗ, ГДЕ выделятся цветом.

Если запрос сохранён в файле, многие консоли позволяют открыть его напрямую: кнопка «Открыть» или «Загрузить запрос из файла» на панели инструментов обработки. Формат файла обычно .txt, .sel или собственный формат консоли (.q1c и подобные). Загрузка из файла надёжнее копирования: исключена потеря части текста при переносе через буфер обмена.

Некоторые консоли хранят список запросов в дереве: можно создать новый элемент дерева, дать запросу понятное имя и сохранить весь список в файл. Это удобно, если вы регулярно работаете с несколькими запросами — не придётся каждый раз искать нужный текст.

Порядок действий
  1. 1
    Откройте базу в нужном режиме клиента (обычные или управляемые формы)
  2. 2
    Через «Файл → Открыть» запустите файл консоли запросов (.epf)
  3. 3
    Вставьте текст запроса в редактор или загрузите его из файла
  4. 4
    Заполните значения параметров на вкладке «Параметры», если они есть в запросе
  5. 5
    Нажмите «Выполнить» и проверьте результат в таблице

Как настроить параметры запроса

Если в тексте запроса встречаются обращения вида &Параметр (например, &НачалоПериода, &Организация, &Номенклатура), их нужно заполнить до выполнения. В консоли есть отдельная вкладка или таблица параметров: каждая строка — имя параметра и его значение. Тип значения подбирается по смыслу: дата, ссылка на справочник, число, строка.

Частая ситуация — параметр типа «список значений» для условия В (например, ГДЕ Номенклатура В (&СписокНоменклатуры)). В консоли такой параметр заполняется как список: добавьте несколько элементов в значение параметра, выбрав тип «СписокЗначений». Если передать одиночную ссылку вместо списка, запрос отработает, но вернёт только одну позицию — и это легко принять за ошибку.

Параметры виртуальных таблиц (например, Остатки(&Период, ...)) задаются прямо в тексте запроса, а их значения — всё в той же таблице параметров. Если параметр не заполнен, консоль при выполнении выдаст ошибку «Параметр не определен» с указанием имени — по этому сообщению легко понять, что именно забыли заполнить.

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

Выполнение запроса и проверка результата

После вставки текста и заполнения параметров нажмите кнопку «Выполнить» (обычно это кнопка с восклицательным знаком или соответствующая надпись). Результат появится в табличном поле в нижней части окна: колонки соответствуют полям выборки, строки — отобранным данным.

Проверьте результат на адекватность: количество строк, итоговые суммы, наличие ожидаемых колонок. Если запрос должен был вернуть данные за месяц, а вернул пустую таблицу — чаще всего дело в параметрах периода (границы периода в запросах обычно включают начало и конец дня, и легко ошибиться с датой окончания). Если строк подозрительно много — проверьте соединения таблиц: лишнее левое соединение без условия дублирует строки.

Многие консоли позволяют выгрузить результат в табличный документ (mxl) или скопировать в Excel — это удобно для передачи данных коллегам. Также полезна функция просмотра временных таблиц и пакетных запросов, если запрос состоит из нескольких частей: можно выполнить пакет целиком и посмотреть каждую промежуточную таблицу.

Контрольные точки

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

Количество строк
Норма

Соответствует ожидаемому объёму данных за выбранный период

Тревожный признак

Пустая таблица или в разы больше строк, чем должно быть

Суммы и количества
Норма

Сходятся с данными стандартных отчётов за тот же период

Тревожный признак

Расхождения — проверяйте отборы и соединения

Колонки результата
Норма

Все поля из секции ВЫБРАТЬ присутствуют и заполнены

Тревожный признак

Пустые колонки там, где должны быть значения

Типичные ошибки и их решение

Самая частая ошибка — «Синтаксическая ошибка» при выполнении. Причины: запрос скопирован не полностью, потеряна часть текста, либо текст написан не на языке запросов 1С (например, это SQL-запрос — он не выполнится в консоли 1С). Сверьте начало и конец вставленного текста с оригиналом.

Вторая группа ошибок — «Поле не найдено» или «Таблица не найдена». Такое бывает, когда запрос писался под другую конфигурацию: в вашей базе нет регистра или справочника с таким именем, либо объект называется иначе. Откройте структуру конфигурации и уточните реальные имена объектов и реквизитов, затем поправьте текст запроса.

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

Типичные ошибки
01
Копирование запроса из мессенджера — теряются переносы строк и часть текста, запрос не выполняется
02
Незаполненные параметры — ошибка «Параметр не определен» при выполнении
03
Запуск консоли для обычных форм в управляемом приложении — обработка не открывается
04
Использование запроса от другой конфигурации без адаптации имён таблиц и полей
05
Выполнение тяжёлого запроса без отборов в рабочее время — нагрузка на сервер и медленная работа пользователей

Альтернативные способы работы с запросами

Консоль запросов — не единственный вариант. В конфигураторе есть встроенный конструктор запросов: он вызывается из модуля объекта и позволяет собрать запрос визуально, выбирая таблицы и поля мышью. Это удобно при разработке, но требует доступа к конфигуратору и не подходит для разового просмотра данных пользователем.

В некоторых конфигурациях на управляемых формах есть встроенные инструменты: например, отчёты на СКД, где можно открыть схему компоновки и посмотреть запрос набора данных. Также существуют расширения и встроенные обработки для администраторов, позволяющие выполнять запросы без внешних файлов — уточните у администратора, есть ли такой инструмент в вашей базе.

Для разработчиков полезен ещё один приём: отладка запроса прямо в коде. Точка останова после строки Результат = Запрос.Выполнить() позволяет посмотреть выборку в отладчике. Это медленнее консоли, но показывает запрос в реальном контексте работы программы.

Сравнение вариантов

Внешняя консоль запросов (.epf)

Универсальный способ для разового выполнения и отладки. Ограничение: нужен файл обработки и право открытия внешних обработок

Конструктор запросов в конфигураторе

Подходит разработчику при написании кода. Не подходит пользователю без доступа к конфигуратору

Отчёты на СКД

Удобны для готовых выборок с настройками отборов. Не позволяют выполнить произвольный текст запроса

Отладка в конфигураторе

Показывает запрос в контексте кода. Требует навыков разработки и монопольного или отладочного запуска

Итог

Что важно запомнить

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

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

Можно ли через консоль запросов изменить данные в базе?

Нет. Язык запросов 1С в консоли поддерживает только оператор ВЫБРАТЬ — чтение данных. Для пакетного изменения данных используются другие обработки (групповое изменение реквизитов, произвольный код), и такие операции уже требуют резервной копии и осторожности.

Где взять консоль запросов, если её нет под рукой?

Консоль запросов входит в состав инструментов разработчика и распространяется как внешняя обработка. Её можно получить у разработчика или администратора вашей организации, либо найти в составе стандартных подсистем и на диске информационно-технологического сопровождения (ИТС), если у организации есть подписка.

Почему запрос выполняется, но возвращает пустую таблицу?

Чаще всего дело в параметрах отбора: неверный период, ссылка не на тот объект, слишком жёсткое условие в секции ГДЕ. Уберите часть условий и выполните запрос снова — так методом исключения найдётся условие, которое отсекает все данные.

Чем запрос на языке 1С отличается от SQL-запроса?

Запрос 1С работает с объектами конфигурации (справочники, документы, регистры), а не с физическими таблицами СУБД. Синтаксис похож на SQL, но не идентичен: есть виртуальные таблицы, параметры с амперсандом, свои функции. SQL-запрос напрямую в консоли 1С выполнить нельзя.

Как сохранить запрос, чтобы не вводить его заново?

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

Безопасно ли выполнять чужой запрос в рабочей базе?

С точки зрения данных — да: консоль только читает. Но тяжёлый запрос без отборов может надолго загрузить сервер и замедлить работу пользователей. Перед выполнением незнакомого запроса посмотрите, какие таблицы он обращает и есть ли ограничения по периоду; при сомнениях выполняйте в нерабочее время или на копии базы.