В результате, отображаются результаты всех таблиц.
Обработка может использоваться как обычная консоль запросов для написания запросов с временными таблицами и пакетных запросов.
Для обычного приложения.
Консоль-функция «Просмотр внутренних таблиц».
Консоль-функция избавляет от ручного копирования текста запроса и избавляет от необходимости создавать подмены таблицам значений передаваемых в запрос в качестве параметров. Обработка сама всё захватит и сохранит для дальнейшего использования. Кроме того, все параметры запроса, включая таблицы значений и массивы возможно редактировать как и сам запрос и повторного вызывать выполнение полученного/отредактированного запроса уже на стороне «предприятия». Обработка позволяет сохранить текст запроса и все параметры, включая таблицы значений, массивы, моменты времени, границы и пр. в файл формата XML. Так же, консоль удобна для создания пакетных запросов и запросов с временными таблицами.
Дополнительные функци включают замер производительности отчёта, сохранение результата в файл Excel, создание текста запроса с символами переноса строк для конфигуратора с добавлением кода вывода запроса.
Режим функции
В тексте любого модуля после каждого выполнения запроса необходимо вызвать функцию внешней обработки.
Если необходимо анализировать запрос разбитый на несколько частей и связанных между собой Менеджером внутрених таблиц, то необходимо вызывать функцию после каждого выполнения запроса.
Описание параметров функции
Запрос — В данный параметр передаётся объект запроса.
ПоказатьФорму — Параметр сообщает обработке о необходимости показать форму с результатом запроса. Варианты Истина и Ложь.
Данные — Информация создаваемая самой функцией, для работы самой функции. При первом запуске функции этот параметр не указывается.
При вызове внешней обработки необходимо указать полный путь и имя обработки.
Данные = ВнешниеОбработки.Создать(«C:ПросмотрВременныхТаблиц 1.0.epf»).ОбработатьЗапрос(Запрос, ПоказатьФорму, Данные);
Использование в режиме функции
1. Если изучаемый запрос создан одним текстом, тогда после выполнения запроса необходимо вызвать функцию консоль со следующими параметрами:
…
Запрос.Выполнить();
Данные = ВнешниеОбработки.Создать(«C:ПросмотрВременныхТаблиц 1.0.epf»).ОбработатьЗапрос(Запрос, Истина);
Обработка получает через параметр «Запрос» всю необходимую информацию, а «ПоказатьФорму» сообщает обработке о необходимости показать результаты и открыть форму.
2. Если запрос разбит на 2 и более частей, тогда возникает необходимость передачи некоторой информации в повторно вызываемую обработку. Для этого при повторном вызове обработки в параметр «Данные» передаётся результат функции из прошлого вызова обработки.
…
Запрос.Выполнить();
// Первый вызов. Окно открывать пока не нужно.
Данные = ВнешниеОбработки.Создать(«C:ПросмотрВременныхТаблиц 1.0.epf»).ОбработатьЗапрос(Запрос, Ложь);
…
Запрос.Выполнить();
// Последний вызов. необходимо отобразить окно с результатом и передать данные в третий параметр.
Данные = ВнешниеОбработки.Создать(«C:ПросмотрВременныхТаблиц 1.0.epf»).ОбработатьЗапрос(Запрос, Истина, Данные);
3. При работе с запросом разбитым на более чем 2 части. В запросах расположенных между первым и последним функцию вызываем как при последнем вызове, только в параметре «ПоказатьФорму» задаём значение Ложь.
Доброго времени суток. Данная консоль-функция ещё на доработке. Вчера столкнулся с ошибкой, которая вызвана наличием в тексте запроса оператора «УНИЧТОЖИТЬ». Происходит бесконечное зацикливание. В выходные подправлю. Просьба сообщать о найденных ошибках.
Отличается от похожих публикаций наличием внятного описания использования, за это несомненный плюс.
За идеи наработки большое спасибо! Надеюсь будет полезной при отладке и оптимизации сложных запросов.
Да, идея интересная
бесполезна в клиент-серверном варианте