Содержание:
1. Из чего состоит консоль запросов 1С:Предприятие
2. Интерактивное сравнение в 1С двух результатов запроса
Инструмент "Консоль запросов 1С:Предприятие 8.3" предназначен для отладки запросов и просмотра результатов выполнения в режиме 1С:Предприятие.
Консоль запросов 1С:Предприятие 8.3 представляет собой внешнюю обработку для управляемого приложения 1С.
Запускаем 1С:Предприятие. Файл->Открыть.
Выбираем обработку для управляемого приложения 1С ИнструментыРазработчикаКонсольЗапросов.epf
1. Из чего состоит консоль запросов 1С:Предприятие
Консоль запросов 1С 8.3 состоит из трех секций (областей): Параметры, Текст запроса, Результат запроса.
Текст запроса можно набрать вручную, но обычно используется конструктор запроса в 1С.
Курсор располагаем в секции “Текст запроса” и из контекстного меню 1С (правая кнопка мыши) вызываем конструктор 1С 8.3 запроса.
Работа с конструктором запроса в 1С – тема для отдельной статьи, поэтому здесь не будем подробно останавливаться на этом.
Выберем необходимые таблицы и необходимые поля. Если нужно, создадим временные таблицы 1С 8.3.
По кнопке Ok закрываем конструктор запроса в 1С. Сформированный текст запроса размещается в области “Текст запроса”.
В демонстрационной базе ERP откроем консоль запросов 1С 8.3. В секцию “Текст запроса” поместим следующий запрос:
Часто на практике запрос приходится брать из модуля какого-либо объекта в конфигураторе. После копирования и вставки в секцию “Текст запроса”, запрос выглядит так:
Символ “|” в конфигураторе позволяет перенести текст на следующую строку, но в консоли запросов 1С не нужен. После нажатия кнопки “Выполнить” символы “|” исчезают и автоматически в секции “Параметры” заполняются параметры запроса. В случае изменения текста запроса, параметры также можно заполнить по кнопке “Заполнить параметры”.
В процессе отладки запроса (запрос может быть достаточно объемным) могут понадобиться промежуточные запросы. В этом случае отформатированный текст таких запросов (запрос без символов “|”) удобно временно помещать в обычный “Блокнот” (несколько экземпляров).
Верно и обратное! Запрос, который мы поместили в секцию “Текст запроса” и изменили, можно вызвать в конструкторе запроса. При этом если в запросе присутствует ошибка, то конструктор запроса в 1С выдаст на экран ошибку с указанием, что неправильно.
Также отладка запроса может быть исполнена с использованием оригинального синтаксиса 1С запроса:
sel ect … fr om ….
Запустим запрос на исполнение (Выполнить).
В секции “Результат запроса” получаем результат запроса с количеством строк и временем выполнения.
В консоли запросов 1С:Предприятие есть неочевидная возможность выполнения только выделенной части запроса. Это очень удобно при отладке запроса. Для этого необходимо выделить нужный запрос и выполнить его. В секции “Результат запроса” будет результат именно выделенной части запроса. Это может быть, например, вложенный подзапрос или временная таблица.
Но при этом следует помнить, что выделенная часть должна полностью соответствовать синтаксису 1С запроса, то есть в ней должна быть конструкция вида ВЫБРАТЬ … ИЗ …. И если выполняется временная таблица, то должны быть выделены все временные таблицы в 1С 8.3, которые используются в ней. А в исполняемой временной таблице следует убрать строку ПОМЕСТИТЬ … и все что относится к строке ИНДЕКСИРОВАТЬ ПО …
Но в консоли запросов 1С:Предприятие есть замечательная возможность выполнить запрос с временными таблицами по одноименной кнопке.
В результате запроса видим три таблицы, как раз по числу пакетов в запросе. Две первые таблицы – результат выполнения запросов во временных таблицах.
2. Интерактивное сравнение в 1С двух результатов запроса
Интерактивное сравнение в 1С двух результатов запроса выполняется по кнопке “Запросы”. Скопируем наш запрос и выполним его для другого документа “Приобретение товаров и услуг”. Выделим оба запроса.
Выберем Еще->Сравнить результаты запросов.
Поскольку интерактивное сравнение в 1С показало разные результаты, то видим разницу: записи, выделенные красным цветом, различаются.
Интерактивное сравнение в 1С возможно только результат двух запросов, более двух уже нельзя. То есть если в списке несколько запросов, то выделив два любых из них, можно интерактивно сравнить запросы.
Но данная возможность доступна только при запуске приложения в режиме толстого клиента.
Рассмотрим некоторые сервисные возможности, которые предлагаются в консоли запросов 1С:Предприятие:
1) Результат запроса 1С можно сохранить в файл с расширением q1c.
2) По кнопке Оформление->Закомментировать/ Раскомментировать можно закомментировать и раскомментировать выделенный текст в “Тексте запроса”.
3) В меню “Еще” -> “Дополнительно” есть несколько настроек. Флажок “Выводить в результатах запроса значения ссылок” позволяет выводить результат запроса, где объекты представлены в виде их уникальных ссылок (GUID - Globally Unique Identifier).
4) В секции “Текст запроса” можно открыть контекстное меню в 1С (правая кнопка мыши) и выбрать “Текст запроса для конфигуратора”. В этом случае получим запрос в формате для конфигуратора (символ переноса строки “|” в начале каждой строки и кавычки в начале и конце текста).
5) В секции “Результат запроса” в контекстном меню 1С с помощью команды “Выделить/отменить выделение” можно выделить жирным шрифтом нужные строки результата запроса.
6) В секции “Результат запроса” в контекстном меню 1С команда “Сохранить результат запроса” позволяет сохранить результат запроса 1С в одном из форматов, указанных на рисунке.
3. План запроса в 1С
Есть возможность открыть план запроса в 1С.
Для этого изменим строку в обработке “Консоль запросов 1С 8.3”, открыв ее в Конфигураторе. Закомментируем строку “Текущий пользователь” и напишем другую:
Включаем флажок “Показывать план выполнения запроса” в командной панели.
В модуле объекта обработки “Консоль запросов 1С 8.3” в следующей процедуре проверяется наличие файлов технологического журнала (расширение .log) в каталоге C:\Windows\Temp\1c_logs
Для этого в файле logcfg.xml (расположенном в каталоге вида C:\Program Files (x86)\1cv8\версия платформы\bin\conf) должен быть прописан путь к файлам технологического журнала 1c_logs:
<log history="1" location="C:\Windows\Temp\1c_logs">
Ссылка “Открыть” становится доступной через некоторое время, поскольку обработчик ожидания (регламентное задание) проверяет наличие файлов с заданной периодичностью.
После выполнения запроса, можно посмотреть план запроса в 1С по ссылке “Открыть”.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
При необходимости можно доработать обработку “Консоль запросов 1С 8.3 ” в конфигураторе. Например, изменить расположение секций в удобном для разработчика виде.
Встроить консоль запроса в качестве инструмента в конфигурацию.
Разместить список запросов в виде дерева и многое другое.
Специалист компании ООО «Кодерлайн»
Мингалеев Ильдар