Оцените, пожалуйста, статью, мы стараемся:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Как разбираться в больших запросах. Консоль запросов с временными таблицами. Как посмотреть, чем заполнены временные таблицы в запросе (1С: v8: Язык Запросов: просмотр Временных Таблиц)

1

Вопрос Как разбираться в больших запросах. Консоль запросов. Как посмотреть, чем заполнены временные таблицы в запросе?
Ответ
Довольно часто в типовых конфигурациях 1С встречаются очень большие сложные для восприятия запросы. Например, запрос автозаполнения документа «Начисление зарплаты» содержит в себе порядка 3000 строк. Не смотря на то, что благодаря использованию большого количества временных таблиц он достаточно структурирован и прозрачен логически, разбираться в нем довольно сложно из-за очень большого количества строк.
Есть 2 принципиально разных метода разбора таких запросов.

Первый метод – использование консоли запросов.
Стандартную консоль запросов можно взять на диске ИТС (просто выполните поиск по диску ИТС слов «Консоль запросов» и у вас появится сразу несколько ссылок на нее). Более удобные версии встречаются на различных сторонних сайтах. Уже не помню точно, откуда предлагаемый тут вариант консоли, но нам он показался самым удобным.

Здесь ее можно бесплатно скачать: [download id=»2″]

Консоль запросов позволяет создавать и отлаживать запросы в режиме 1С:Предприятия, без запуска 1С:Конфигуратора. Скаченный файл нужно разархивировать и открыть через меню 1С:Предприятия «Файл — Открыть».

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

Второй метод – для чтения промежуточных результатов запроса используется функция вида

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

где

Запрос – это исследуемый нами запрос,

втИмя – имя внутренней таблицы исследуемого запроса, в которой находятся данные, которые мы хотим посмотреть.

Теперь, если в табло сообщений ввести это втИмя и нажать F2, то откроется окно со значениями этой временной таблицы.

Либо бывает удобнее не встраивать в модуль строку вызова функции, а прямо в табло отладки написать обращение вида:

ДанныеЗапроса(Запрос, «втИмя»)

Точно так же можно нажать F2, спозиционировавшись в табло на этом обращении, откроется содержимое таблицы.

admin

One thought on “Как разбираться в больших запросах. Консоль запросов с временными таблицами. Как посмотреть, чем заполнены временные таблицы в запросе (1С: v8: Язык Запросов: просмотр Временных Таблиц)

  1. Вопрос: Почему бы в функцию не передавать не весь запрос, а только текст запроса? При этом саму функцию написать так:

    При этом передавать в качестве параметра не сам запрос, а только его текст.

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

    Прежний код функции (но он хуже, т.к. может выдавать ошибку, что такая ВТ уже существует):

    Примечание. В тексте функции запоминается и затем восстанавливается текст запроса. Дело в том, что если этого не сделать, то текст запроса переопределится, т.к. конструкция «Знач Запрос» защищает от переопределения объект «Запрос», но не защищает «Текст запроса».

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

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

Next Post

Непосредственная быстрая печать с выбором принтера не по умолчанию (1C: v8: Программисту: COM-соединение со службой Microsoft WMI)

Вт Ноя 9 , 2010
Вопрос Выбор принтера для быстрой непосредственной печати — как организовать в 1С:Предприятии. COM-соединение со службой WMI Ответ Обычно в 1С:Предприятии последовательность действий при печати документов бывает в двух вариантах: Вариант 1 – жмем на кнопку «печать», и на принтере сразу «вылезает» лист с распечатанным текстом. Вариант 2 – жмем на […]