Пятница, 04.10.2024, 23:42
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Предложение. Копирование параметров запроса из отладки в кон
zfilinДата: Четверг, 21.06.2012, 15:01 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Оффлайн
Добрый день. Хочу внести предложение по консоли запросов в вашей подсистеме "Инструменты разработчика". Часто бывает так, что сам запрос и параметры собираются по-кусочкам. Т.е. текст запроса формируется из кусочков текста, а параметры могут быть сложными, например, списками, которые формируются другими запросами, разными процедурами.

И, если текст запроса в конечном итоге можно получить сразу перед методом "Выполнить", если в отладке посмотреть Запрос.Текст и потом скопировать и вставить в консоль запросов для последующей отладки, то с параметрами сложнее.

Посмотреть-то их можно (Запрос.Параметры), но перенести в консоль сложнее.
Я поступал следующим образом: В отладке копировал значение, которое возвращает функция ЗначениеВСтрокуВнутр(Запрос.Параметры), а потом после некоторых преобразований, вроде добавления символа | и двойных кавычек загружал параметры способом "ЗначениеИзСтрокиВнутр" через вкладку "Перед выполнением запроса".
Вообщем, оно работает но не удобно.
Предложение такое: Давайте добавим на панель кнопку "Загрузить из строки" рядом с кнопкой "Заполнить из запроса", чтобы по нажатию на кнопку "Загрузить из строки" появлялось поле, куда можно ввести результат работы функции "ЗначениеВСтрокуВнутр(Запрос.Параметры)", а по кнопке Ок, оно эти параметры раскидывало в табличку параметров?

Вот примерно такой код процедур я набросал для реализации этого:
Code


Функция ЗаполнитьПараметрыИзСтроки(ЛиДобавлятьНовые = Истина)

СтрокаПараметровВнутр = "";
//Если не ВвестиСтроку(СтрокаПараметровВнутр, "Строка с параметрами",,Истина) Тогда
//    Возврат Истина;
//КонецЕсли;  
// Форма для ввода строки отличается от "ВвестиСтроку" только тем, что на форме можно разместить развернутую подсказку о том, что это должна быть за строка
Результат = ПолучитьФорму("ФормаВводаСтрокиПараметров").ОткрытьМодально();
Если (Результат = Неопределено) или ПустаяСтрока(Результат) Тогда
Возврат Истина;
КонецЕсли;  
СтрокаПараметровВнутр = Результат;

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

Возврат Истина;

КонецФункции // ЗаполнитьПараметрыИзСтроки()

// Обработчик нажатия кнопки командной панели "Заполнить из строки"
//
Процедура КоманднаяПанельПараметрыЗаполнитьИзСтроки(Кнопка)

Если Не ЗаполнитьПараметрыИзСтроки() Тогда
Возврат;
КонецЕсли;  

КонецПроцедуры
 
tormozitДата: Четверг, 21.06.2012, 16:33 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
Сложилось впечатление, что ты не ознакомился с функцией режима отладки От.
http://www.youtube.com/watch?v=QqM8qXGcUVU

Если ознакомился, то чем она не устраивает?
 
zfilinДата: Четверг, 21.06.2012, 18:16 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Оффлайн
О, спасибо. Отладка это то, что нужно.
Извините, что лишний раз отвлек.
 
  • Страница 1 из 1
  • 1
Поиск: