Получение запроса из схемы компоновки данных отчета в консоль отчетов

20.06.25

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

Очередной вариант получения запроса из СКД в отладке.

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

Нас спасёт тот факт, что во многих консолях запросов есть возможность сохранить запрос из отладки. Например, для универсальных инструментов это такой вызов:
УИ_._От(Запрос)

Для Инфостарт Тулкит такой:
ИТК.Отл(Запрос)

Осталось получить собственно запрос. Текст в макете компоновки есть, параметры тоже, осталось это всё объединить:
 

Функция ЗапросДляОтладки(МакетКомпоновки, ИмяНабораДанных = "НаборДанных1", ИмяНабораОбъединений = Неопределено) Экспорт
  
  Запрос = Новый Запрос;

  Если ИмяНабораОбъединений <> Неопределено Тогда
    Запрос.Текст = МакетКомпоновки.НаборыДанных[ИмяНабораОбъединений].Элементы[ИмяНабораДанных].Запрос;
  Иначе
    Запрос.Текст = МакетКомпоновки.НаборыДанных[ИмяНабораДанных].Запрос;
  КонецЕсли;
  
  Для Каждого Параметр Из МакетКомпоновки.ЗначенияПараметров Цикл
    Если ТипЗнч(Параметр.Значение) = Тип("ВыражениеКомпоновкиДанных") Тогда
      Значение = Вычислить(Параметр.Значение);
    Иначе
      Значение = Параметр.Значение;
    КонецЕсли;
    Запрос.УстановитьПараметр(Параметр.Имя, Значение);
  КонецЦикла;
  
  Возврат Запрос;
КонецФункции

И теперь просто ставим точку останова сразу после получения макета СКД в процедуре ПриКомпоновкеРезультата() и пишем в табло
УИ_._От(ЗапросДляОтладки(МакетКомпоновки))

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

После сохранения запроса просто заходим в консоль отчетов в 1С: Предприятии, открываем запрос, все параметры уже установлены - можно отлаживать!

Думаю, неважно, в какой версии конфигурации и платформы это использовать, лишь бы ваша консоль запросов её поддерживала.

Аналогичная функция для динамического списка (используем ранее написанную функцию):

Функция ЗапросДинамическогоСписка(ЭлементФормыСписок) Экспорт
	Схема = ЭлементФормыСписок.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
	Настройки = ЭлементФормыСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
	
	Возврат ЗапросДляОтладки(МакетКомпоновки, "НаборДанныхДинамическогоСписка");
КонецФункции

Вызывать так:

УИ_._От(ЗапросДинамическогоСписка(Элементы.Список))

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

См. также

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

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

15500 руб.

02.09.2020    193642    1067    405    

995

Инструментарий разработчика Запросы Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    2989    66    zup_dev    14    

56

Инструментарий разработчика Запросы Программист Платформа 1С v8.3 Управляемые формы 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

05.03.2025    2694    8    XilDen    12    

23

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

06.02.2025    2605    21    XilDen    26    

36

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    6649    artemusII    11    

23

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

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    14510    sergey279    18    

68

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

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

11.10.2024    9242    XilDen    37    

98

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    3787    PROSTO-1C    0    

26
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aximo 2354 20.06.25 09:32 Сейчас в теме
Повторение- мать учения… кто хочет рабочий пример https://infostart.ru/1c/tools/2147140/
2. Evg-Lylyk 5032 20.06.25 10:03 Сейчас в теме
Добавлю по IS Toolkit что можно в функцию отладки передавать типы:
Запрос, СхемаКомпоновкиДанных, ПостроительЗапроса, ПостроительОтчета, ДинамическийСписок, МакетКомпоновкиДанных. Т.е. можно сразу отладить отчет.
Также есть инструмент Помощник формирования строки отладки.
Оставьте свое сообщение