Как посмотреть итоговый запрос в отчете СКД

17.12.24

Разработка - Запросы

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

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

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

 

Создаем отчет «Взаиморасчеты с покупателями»

Создадим отчет, который будет выводить данные по регистру накопления «Взаиморасчеты с покупателями»:

 

Рисунок 1. Набор данных «Запрос» в отчете
 

Создадим структуру отчета и укажем выбранные поля:

 

Рисунок 2. Структура отчета и выбранные поля в отчете
 

Проверим результат:

 

Рисунок 3. Результат работы отчета
 

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

 

Рисунок 4. Отбор по контрагенту в отчете
 

Проверим результат:

 

Рисунок 5. Результат работы отчета с отбором
 

Теперь наша задача посмотреть, какой запрос выполняет СКД. Сделаем это двумя способами.

 

Вариант 1. Через управляемую консоль запросов, отчетов

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

 

Рисунок 6. Выгрузка схемы компоновки отчета в файл
 

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

 

Рисунок 7. Создаем схему компоновки данных в консоли запросов и отчетов
 

 

Рисунок 8. Открываем конструктор в консоли запросов и отчетов в схеме компоновки данных
 

 

Рисунок 9. Загружаем схему компоновки данных в консоль запросов и отчетов
 

Таким образом наш отчет загружен в консоль запросов и отчетов:

 

Рисунок 10. Отчет в консоли запросов и отчетов
 

 

Рисунок 11. Отбор по контрагенту в отчете СКД в консоли запросов и отчетов
 

Проверим результат:

 

12.png

Рисунок 12. Проверяем работу отчета в консоли запросов и отчетов
 

Теперь нам нужно посмотреть итоговый запрос, который СКД использует при построении отчета. Это можно сделать, нажав на кнопку «Анализ исполняемых запросов результата».

 

13.png

Рисунок 13. Кнопка «Анализ исполняемых запросов результата» в консоли запросов и отчетов
 

 

14.1.png

Рисунок 14. Итоговый запрос, который использует СКД при формировании отчета
 

Таким образом мы получили итоговый запрос, который использует СКД при формировании запроса. Также можно нажать на кнопку «Сравнить с исходным текстом» (Рис. 14) и в одном окне посмотреть исходный и итоговый запросы:

 

14.png

Рисунок 15. Исходный и итоговый запрос в консоли запросов и отчетов
 

 

Вариант 2. При программном формировании отчета СКД

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

Сформируем отчет программно. Для этого откроем конфигуратор, добавим отчет в дерево объектов метаданных и в модуле объекта отчета пропишем:

 

15.png

Рисунок 16. Программное формировать отчета
 

Далее укажем точку останова и запустим отладку. Итоговый запрос можно найти в выражении «МакетКомпоновки.НаборыДанных.НаборДанных1.Запрос».

 

16.png

Рисунок 17. Просмотр итогового запроса при программном формировании отчета
 

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

 

Исходные данные

Платформа «1С:Предприятие 8.3, учебная версия (8.3.24.1342)» (Windows).

 

Ссылки на материалы

Управляемая консоль запросов, отчетов: //infostart.ru/1c/tools/835718/

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    169236    937    403    

905

Запросы Программист Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    6328    XilDen    36    

83

Инструментарий разработчика СКД Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

По выбранной схеме компоновки данных генерирует программный код, который генерирует СКД, аналогичную исходной схеме. Есть дополнительные инструменты для просмотра дерева схемы, сравнение исходной схемы и полученной по коду, а также сравнение изменений в сгенерированном коде для исходной схемы и для измененной.

3 стартмани

05.02.2024    7836    57    obmailok    21    

80

СКД WEB-интеграция Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    11454    25    John_d    25    

125

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    19937    skovpin_sa    15    

106

СКД Программист Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

01.09.2023    7158    KVIKS    15    

82

Запросы HighLoad оптимизация Программист Запросы Бесплатно (free)

Многие знают, что для ускорения работы запроса нужно «изучить план». При этом сам план обычно обескураживает: куча разноцветных иконок и стрелочек; ничего не понятно, но очень интересно! Аналитик производительности Александр Денисов на конференции Infostart Event 2021 Moscow Premiere рассказал, как выполняется план запроса и что нужно сделать, чтобы с его помощью находить проблемы производительности.

20.06.2023    30773    Филин    37    

119
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Светлый ум 438 16.05.24 07:00 Сейчас в теме
+1
молодцом, вечно приспичивает эта инструкция, а под рукой нет
3. implecs_team 163 16.05.24 15:56 Сейчас в теме
(1) Рады, что смогли помочь!
2. cheshirshik 72 16.05.24 14:06 Сейчас в теме
Как у вас все сложно. А использовать инструменты разработчика не пробовали? Может сначала мы делаем там запрос. Отлаживаем, а в финале переносим ХМЛ схему в отчет? Не?

К чему я это все? У 1С есть замечательная тема. Кэширование. Вот делаешь ты запрос делаешь, а результат нет. В чем проблема? А проблема в кэше. Пока его не обновишь запрос и отчет работать по-новому не будут. ИР помогают в этом плане. Не приходится каждый раз при изменении чего либо чистить кэш.
JohnyDeath; +1 Ответить
6. Vinzor 110 21.05.24 18:56 Сейчас в теме
(2) Ну для некоторых (и меня) это как купить фрезерный станок и научиться работать, чтобы 5 раз в год выточить некую несложную деталь.
Проблема не только в том, чтобы купить и научиться. Ещё и убедиться, что "станок тебе подходит".
Я вот ищу такую консоль, которая будет иметь модуль исполнения произвольного кода, и будет понимать и конвертировать запрос "на представлениях" в итоговый исполняемый, со всем "оптимизациями СКД" запрос.
Пока такую не нашёл
4. asadroman 16.05.24 16:04 Сейчас в теме
Все через костыли... все через костыли...
корум; +1 Ответить
5. MKassatkin 21.05.24 12:58 Сейчас в теме
Второй способ давненько уже подглядел вот тут:

https://forum.infostart.ru/forum9/topic264130/#message2810554

выручает
Оставьте свое сообщение