Отладка запросов, схем компоновки данных
Под отладкой здесь имеется ввиду получение данных запросов, СКД из конфигуратора в момент отладки в продукте Infostart Toolkit (только управляемые формы).
В управляемых формах нельзя открыть форму в контексте сервера, но можно получить данные и сохранить - я называю это отложенной отладкой.
Подход классический - ставим точку останова перед Запрос.Выполнить, где данные объекта уже заполнены (для СКД ПроцессорКомпоновки.Инициализировать).
Данные сохраняются с помощью встроенных экспортных функций:
Функция ИТК.Отл - Сохраняет данные в настройки
Параметры:
- Объект - Запрос, СхемаКомпоновкиДанных, ПостроительЗапроса, ПостроительОтчета, ДинамическийСписок, МакетКомпоновкиДанных - Объект
- Имя - Строка - Имя настройки
- НастройкиКомпоновкиДанных - НастройкиКомпоновкиДанных - Настройки СКД (необязательный)
- ВнешниеНаборыДанных - Структура - Внешние наборы данных (необязательный)
- НастройкиКомпоновкиДанных и ВнешниеНаборыДанных используются только для СКД
Функция ИТК.ОтлВФайл - Сохраняет данные в файл
Параметры:
- Объект - Запрос, СхемаКомпоновкиДанных, ПостроительЗапроса, ПостроительОтчета, ДинамическийСписок, МакетКомпоновкиДанных - Объект
- Путь - Строка - Путь в который сохраняется файл (обязательный)
- Имя - Строка - Имя файл
- НастройкиКомпоновкиДанных - НастройкиКомпоновкиДанных - Настройки СКД (необязательный)
- ВнешниеНаборыДанных - Структура - Внешние наборы данных (необязательный)
- НастройкиКомпоновкиДанных и ВнешниеНаборыДанных используются только для СКД
---------------------------------------------------------------------------------------------------------------------
Имя передавать не обязательно, тогда оно определяется автоматически в зависимости от выбранного объекта
В случае успеха возвращается строка "Сохранено успешно", при ошибке - текст ошибки
Далее открываем данные в консоли разработчика в последних используемых файлах, настройках
Считываются все данные: текст запроса, значения параметров, данные таблиц МВТ, внешние источники СКД
Оптимизирована работа с таблицами значений с большим количеством данных
В подавляющем большинстве случаев удобнее использовать сохранение данных в настройки, т.к. это работает быстро, и в клиент-серверном режиме работы не нужно иметь доступ к файлам на сервере.
Однако есть случаи, когда сохранение в настройки не работает:
- Запись производится в транзакции которая отменена. Например, разбор ошибки при проведении документа - если документ не проводится транзакция отменяется и сохранение в настройки тоже. Для облегчения определения подобных ситуаций, если сохранение производится в активной транзакции, результатом функции является "Сохранено успешно (В ТРАНЗАКЦИИ)".
- Временные таблицы содержат поля (выбираемые в запросе) типа: ОписаниеТипов, МоментВремени
- Открыта консоль, в этом случае пункт в меню не появится сразу. Необходимо переоткрыть консоль.
Получение данных отладки через буфер обмена
С версии 1.9 доступна, отладка через буфер обмена. Может понадобится, когда нужно отладить запрос, выполнение которого происходит в транзакции, а доступ к файлам на сервере в клиент-серверном варианте работы отсутствует (в этом случае сохранение данных отладки в файлы и в настройки не подходит).
Для использования новых возможностей в режиме отладки нужно выполнить функцию БСП ОбщегоНазначения.ЗапросВСтрокуXML(Запрос) и сохранить результат в буфер обмена.
Недостатки
- Работает только в конфигурациях с БСП
- Не поддерживается получение содержимого временных таблиц
Просмотр менеджера временных таблиц в конфигураторе
Функция ИТК.МВТ(Объект, ВключатьПустые) - Собирает временные таблицы в структуру для удобства просмотра
Параметры:
- Объект - Запрос, МенеджерВременныхТаблиц
- ВключатьПустые - Булево (по умолчанию Истина)
- В случае успеха возвращает структуру с содержимым таблиц, при ошибке - строка (например: "Недопустимый тип объекта, принимаются Запрос или МенеджерВременныхТаблиц")
Результат, обратите внимание, что количество строк в ТЗ добавляется в ключ структуры
Функции для клиентского режима
С версии 2.0 добавлены функции для отключения обработчиков ожидания
ОтключитьОбработчик(Форма, ИмяОбработчика)
ОтключитьГлобальныйОбработчик(ИмяОбработчика)
в случае успеха возвращается Истина
См.также:
Отладка запроса с содержимым временных таблиц (управляемые формы)