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

20.06.25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

16500 руб.

02.09.2020    256495    1418    421    

1160

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    1946    67    priem_nv    23    

63

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Представляю новую версию подсистемы работы со схемой запроса, которая завершает её эволюцию от библиотеки по работе со схемой запроса до объектной реализации модели запроса 2. Теперь есть выбор между классическим и текучим стилем написанию кода - оба варианта взаимозаменяемы. Ключевое улучшение - использование объектов в качестве источников данных, значений полей и параметров в условиях виртуальных таблиц, а также новые операторы позиционирования в схеме

1 стартмани

29.03.2026    1552    kalyaka    16    

23

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

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

1 стартмани

16.05.2025    10899    143    zup_dev    30    

83

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

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

2 стартмани

05.03.2025    6414    21    XilDen    12    

29

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

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

3 стартмани

06.02.2025    5646    36    XilDen    26    

42

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

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

03.12.2024    12798    artemusII    11    

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