Как сохранить запрос в файл с параметрами (для 1С 8.0 и 8.1)Суть данной функции состоит в следующем:
Допустим надо срочно произвести отладку запроса, а он разбит на
несколько фрагментов, которые объединяются по определенным условиям и
критериям. А также запрос использует множество параметров (в том числе
и с массивами). Согласитесь, сам запрос не так сложно воспроизвести в
консоле запросов, а вот массивы параметров мало кому охота воссоздавать.
Что-же нужно для маленького счастья в работе? Самая малость,
вставить данную функцию в Общий модуль (который должен быть глобальным
+ клиент):
Функция СохранитьЗапросВФайл(Запрос,ИмяФайла="") Экспорт
Если ИмяФайла="" Тогда
ИмяФайла=ПолучитьИмяВременногоФайла("sel");
КонецЕсли;
Дерево=Новый ДеревоЗначений;
Дерево.Колонки.Добавить("Запрос");
Дерево.Колонки.Добавить("ТекстЗапроса");
Дерево.Колонки.Добавить("ПараметрыЗапроса");
Дерево.Колонки.Добавить("СпособВыгрузки");
НСтр=Дерево.Строки.Добавить();
НСтр.Запрос = "Запрос отладки";
НСтр.ТекстЗапроса=Запрос.Текст;
НСтр.СпособВыгрузки=1;
ТаблицаПараметров=Новый ТаблицаЗначений;
ТаблицаПараметров.Колонки.Добавить("ИмяПараметра");
ТаблицаПараметров.Колонки.Добавить("ВидПараметра");
ТаблицаПараметров.Колонки.Добавить("Значение");
Для каждого Параметр из Запрос.Параметры Цикл
НСтрПараметров=ТаблицаПараметров.Добавить();
НСтрПараметров.ИмяПараметра=Параметр.Ключ;
НСтрПараметров.Значение=Параметр.Значение;
КонецЦикла;
НСтр.ПараметрыЗапроса=ТаблицаПараметров;
ЗначениеВФайл(ИмяФайла,Дерево);
Возврат ИмяФайла;
КонецФункции
Теперь как это использовать при отладке:
- Ставим "Точку останова" на каком-нибудь запросе (Пример: в документе
есть запрос, который выполняется скажем для формирования данных для
печатной формы => Возврат Запрос.Выполнить();)
- Дальше выделяем слово "Запрос" и нажимаем "Вычислить выражения (Shift+F9)"
- В поле ввода "Выражение" пишим следующее "СохранитьЗапросВФайл(Запрос)" и нажимаем "Расчитать"
- В таблице "Результат" появляется новое значение (тип "Строка") в
примерном виде "D:\Documents and Settings\NameUser\Local
Settings\Temp\v8_180C_2a.sel"
- Нажимаем "F2" (Показать значение в отдельном окне) и копируем нашу строку
- Разумеется теперь отладку продолжаем и переходим непосредственно из Конфигурации в Предприятие
- Далее в программе, через консоль запросов открываем полученный
файл (жмем "Открыть файл запросов") путем ввода полученного имени (в
поле "Имя файла" используем команду "Вставить" или нажимаем комбинацию
клавиш "Ctrl+V или Shift+Insert") и жмем "Ок" ("Открыть").
Все, запрос с параметрами у вас в консоле. Разумеется если вы решите
обновить параметры запроса, то параметры обнулятся. Также не получается
редактировать массивы в параметрах. Но для большинства случаев это и не
надо.