Консоль запросов как пользоваться
Перейти к содержимому

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

  • автор:

Консоль запросов

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

Консоль запросов

Для того чтобы облегчить составление текста запроса, можно вызвать конструктор запроса, и с его помощью составить запрос любой сложности:

Консоль запросов

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

Консоль запросов

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

Консоль запросов

В сложных ситуациях изучение плана выполнения запроса позволяет найти способы сокращения времени выполнения запроса:

Консоль запросов

Результат выполнения запроса может быть сохранен в табличный документ для последующего использования. Также консоль запросов позволяет сохранять созданные запросы в файле на диске, если они могут понадобиться в дальнейшем.

Консоль запросов 1С 8.3 для управляемых форм

Анна Викулина

При разработке в конфигурациях 1С программисты получают данные из базы как результат компиляции запросов. Нередко успешность решения задачи сводится к оптимальному построению запроса. Достичь успеха в этом непростом деле разработчикам помогает специальный инструмент в виде внешней обработки – «Консоль запросов». Без нее намного сложнее научиться понимать основные принципы создания оптимальных запросов на выборку данных из базы.

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

Большая популярность консоли запросов привела к тому, что ее выкладывают на большинстве сайтов, связанных с разработкой в 1С. Можно найти классические версии инструментария, как на сайте ИТС, или доработанные разработчиками с дополнительными функциями. Поэтому найти и скачать консоль запросов для 1С версии 8.3 или младше не составит труда. Специалисты, предоставляющие консультации по ведению 1С, советуют обращать внимание на отзывы, чтобы не попасть на вирусы под видом этого полезного инструмента.

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

  1. Заполнение параметров. Часто этот раздел совмещен с перечнем запросов, если консоль поддерживает работу с несколькими запросами;
  2. Сам запрос. В толстом клиенте можно воспользоваться конструктором запросов платформы 1С;
  3. Вывод результата.

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

Для отладки и оптимизации запросов на языке 1С программисты вставляют текст в соответствующий раздел, заполняют параметры и проверяют результат работы. Чтобы заполнить параметры, необходимо найти соответствующую вкладку или раздел, а для запуска – нажать кнопку «Выполнить» или ее аналог – клавишу «F7». Кроме вывода перечня полей, в консоли отражается время выполнения запроса и количество строк, выведенных в соответствующий раздел.

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

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

Возможности консоли запросов 1С 8.3

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

Многие консоли могут выдавать результат каждого запроса в пакете в соответствующем разделе. Некоторые включают эту функцию по умолчанию, в некоторых версиях программисту придется нажать на отдельную команду «Выполнить пакет». Полезной будет и возможность просмотра временных таблиц, созданных в процессе выполнения текста запроса. Для этого найдите команду «Просмотр временных таблиц».

Возможности консоли

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

Сохранение данных результата запроса в файл распространенного формата позволяет решить частые задания без создания внешних отчетов. Намного быстрее запустить консоль запросов и написать только текст обращения к базе данных, чем оформлять форму отчета и писать процедуры вывода. Команда «Вывести список…» предложит вам несколько вариантов и позволит выгрузить лишь выделенные строки и определенные столбцы.

Команда «Вывести список…»

Отличия в версиях этой универсальной обработки продиктованы тем, что многие разработчики настраивают консоль под себя и распространяют уже обновленную версию. Так же можете поступить и вы, если в скачанной версии вам чего-либо не хватает.

[ Разбор вопросов ] Нюансы работы с консолью запросов и пользовательскими настройками компоновки данных

В процессе обучения на курсах по запросам 1С и механизму СКД Вы обязательно познакомитесь с интересными вспомогательными инструментами (от консоли запросов до редактора хранилищ настроек), которые значительно облегчат ваш нелегкий труд разработчика 1С 🙂

Вопрос №1: Почему при использовании консоли запросов с сайта ИТС может возникать ошибка “Метод объекта не обнаружен”?

Подскажите, почему возникает такая ошибка?

Ошиба в консоли запроса

(нажмите, чтобы увеличить картинку)

Ответ

Это ошибка в консоли запросов с сайта ИТС. Когда в запросе используются итоги, эта консоль выдает ошибку, как на Вашем скриншоте. Чтобы найти строку с ошибкой, можно в конфигураторе включить остановку по ошибке. Ошибка возникает в функции ВывестиРезультатОдногоЗапроса, которая расположена в модуле обработки.

Проблемная строка: КоличествоСтрок = РезультатЗапроса.Количество();

Переменная РезультатЗапроса имеет тип ДеревоЗначений, у которого нет метода Количество, поэтому и возникает ошибка.

Обработаем эту ситуацию и изменим строку:

Если ТипЗнч(РезультатЗапроса) = Тип("ДеревоЗначений") Тогда КоличествоСтрок = РезультатЗапроса.Строки.Количество(); Иначе КоличествоСтрок = РезультатЗапроса.Количество(); КонецЕсли; 

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

Вопрос №2: Почему в управляемом конструкторе запросов не всегда можно открыть отдельный конструктор для написания текста вложенного запроса?

К сожалению, при редактировании произвольного выражения у меня не срабатывает лайфхак с постановкой пробела и открытием отдельного конструктора запроса для написания текста вложенного запроса (см. скриншот). В чём может быть причина? Пробовал консоли запросов для платформы 1С версии 8.2 и 8.3 с сайта its.1c.ru.

Ошибка в произвольном выражении

Ответ

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

Также не получится вот в такой ситуации открыть вложенный конструктор запроса:

Конструктор запроса

Ошибка

А вот в таком случае (без выделения пробела/текста) вложенный конструктор откроется:

Произвольное выражение

Это пример разобранного вопроса из Мастер-группы курса Разработка и оптимизация запросов в 1С:Предприятие 8.3 .

Описание курса и примеры видео

P.S.

Понимать, как работают запросы и уметь их строить — обязательный навык для всех, кто дорабатывает и внедряет 1С.

После курса Вы сможете:
  • Строить сложные запросы с несколькими источниками данных
  • Уверенно задействовать вложенные запросы и временные таблицы
  • Использовать встроенный язык для обработки результатов запроса
  • Учитывать особенности соединений и объединений нескольких таблиц.
  • Разрабатывать запросы на уровне задач Аттестации 1С:Специалист по платформе.

Программа, стоимость, условия и регистрация в группу: «Запросы в 1С 8.3, Базовый курс (с нуля до уровня Специалист по платформе)» Для всех, кто внедряет и дорабатывает 1С.

Вопрос №3: В чем смысл параметра формы КлючНазначенияИспользования?

Не совсем понял, как пользоваться параметром формы КлючНазначенияИспользования.

Для примера добавил в вызов отчета соответствующий ключ структуры:

ПараметрыФормы = Новый Структура("СформироватьПриОткрытии, Отбор, КлючНазначенияИспользования ", Истина, Отбор, "ИзСписка"); 

Затем в быстрых настройках установил значение отбора. Однако, вопреки моим ожиданиям, это же значение отбора восстанавливается и в случае открытия отчета не из формы справочника товаров, когда значение ключа назначения пустое. То есть разделения не произошло. Почему?

Также прошу прояснить момент: КлючНазначенияИспользования – это параметр или свойство?

Ответ

  1. Сделал пример – КлючНазначенияИспользования.zip.

Это конфигурация, созданная с нуля. В ней добавлен документ, в пользовательском режиме созданы 2 документа. Также в конфигурации реализован отчет по этим документам. В настройках компоновки отчета отбор вынесен в быстрые настройки:

Быстрые настройки

Для документа реализованы две команды, открываемые из панели навигации формы документа.

&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПараметрыФормыОтчета = Новый Структура; ПараметрыФормыОтчета.Вставить("КлючВарианта", "Основной"); ПараметрыФормыОтчета.Вставить("КлючНазначенияИспользования", "Документ1"); ПараметрыФормыОтчета.Вставить("СформироватьПриОткрытии", Истина); ОткрытьФорму("Отчет.Отчет1.Форма", ПараметрыФормыОтчета, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); КонецПроцедуры 
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПараметрыФормыОтчета = Новый Структура; ПараметрыФормыОтчета.Вставить("КлючВарианта", "Основной"); ПараметрыФормыОтчета.Вставить("КлючНазначенияИспользования", "Документ2"); ПараметрыФормыОтчета.Вставить("СформироватьПриОткрытии", Истина); ОткрытьФорму("Отчет.Отчет1.Форма", ПараметрыФормыОтчета, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); КонецПроцедуры 

Команды отличаются только значением параметра КлючНазначенияИспользования.

В пользовательском режиме воспользуемся сначала Командой1, в быстрых пользовательских настройках установим отбор по Документу с номером 000000001, сформируем отчет, закроем форму. При повторном обращении к команде сохраненные пользовательские настройки восстанавливаются.

Затем воспользуемся Командой2, в быстрых пользовательских настройках установим отбор по Документу с номером 000000002, сформируем отчет, закроем форму. И здесь при повторном обращении к команде сохраненные пользовательские настройки восстанавливаются.

Если попробуем открыть отчет из командного интерфейса, то отбор не заполнен. Всё корректно.

Теперь посмотрим, что сохранено в системном хранилище настроек. Воспользуемся механизмом ИР – Редактор хранилищ настроек. К нашему отчету относятся следующие сохраненные настройки:

Настройки

Строка имеет формат:

Тип сохраняемого значения – ПользовательскиеНастройкиКомпоновкиДанных.

Так что здесь платформа ведет себя ожидаемо.

  1. Есть и свойство формы КлючНазначенияИспользования, и параметр формы КлючНазначенияИспользования. В программном коде выше мы передаем значение в параметр открываемой формы. Согласно Синтакс-помощнику при создании формы свойство формы КлючНазначенияИспользования заполняется на основе одноименного параметра формы.

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

Обработка «Консоль запросов» предназначена для составления и исполнения запросов 1С:Предприятия 8.2. Данная обработка предназначена, в основном, для специалистов по внедрению и опытных пользователей.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *