Небольшое дополнение к консоли запросов. Позволяет создавать функцию вместе с текстом запроса.
Здравствуйте уважаемые инфостартовцы. Прежде чем приступить к изложению небольшое отступление.
Возможно эта опция есть в других консолях. Если есть прошу строго не судить.
Итак начнем
Рецепт приготовления гайки)
1. Берем 1 стандартную консоль Чистова. Открываем ее в Конфигураторе.
2. Открываем основную форму и находим там элемент «КоманднаяПанельТекстаЗапроса».
3. Добавляем кнопку и даем ей какое нибудь незатейливое название. Например «Fx».
4. Создаем обработчик по нажатию кнопки.
5. В текст обработчика добавляем следующий код:
Возможно эта опция есть в других консолях. Если есть прошу строго не судить.
Итак начнем
Рецепт приготовления гайки)
1. Берем 1 стандартную консоль Чистова. Открываем ее в Конфигураторе.
2. Открываем основную форму и находим там элемент «КоманднаяПанельТекстаЗапроса».
3. Добавляем кнопку и даем ей какое нибудь незатейливое название. Например «Fx».
4. Создаем обработчик по нажатию кнопки.
5. В текст обработчика добавляем следующий код:
пНазваниеФункции="";
ФункцияИнициал = "Функция ";
Кодзапроса="";
КодЗапроса = КодЗапроса+ФункцияИнициал;
ТекстЗапроса = СтрЗаменить(вПолучитьТекстЗапроса(Истина), "|", "");
Если ПустаяСтрока(ТекстЗапроса) Тогда
Предупреждение("Отсутствует текст запроса.");
Возврат;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапроса);
Попытка
ПараметрыЗапроса = Запрос.НайтиПараметры();
Исключение
Предупреждение(ОписаниеОшибки());
Возврат;
КонецПопытки;
//название функции
Если НЕ ВвестиСтроку(пНазваниеФункции, "Введите Имя функции") Тогда
Возврат;
КонецЕсли;
КодЗапроса = КодЗапроса+ пНазваниеФункции+"(";
КоличествоПараметров = ПараметрыЗапроса.Количество();
НачальныйПараметр=1;
Для каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл
Если НачальныйПараметр = КоличествоПараметров Тогда
КодЗапроса = КодЗапроса+ПараметрЗапроса.Имя;
Иначе
КодЗапроса = КодЗапроса+ПараметрЗапроса.Имя + ",";
КонецЕсли;
НачальныйПараметр = НачальныйПараметр+1;
КонецЦикла;
КодЗапроса = КодЗапроса+ ")"+Символы.ПС;
пНазваниеЗапроса = "Запрос";
Если НЕ ВвестиСтроку(пНазваниеЗапроса, "Введите Имя запроса") Тогда
Возврат;
КонецЕсли;
КодЗапроса = КодЗапроса + пНазваниеЗапроса + " = Новый Запрос;" + Символы.ПС;
НовыйТекст = "";
Для Ном = 1 По ЭлементыФормы.ТекстЗапроса.КоличествоСтрок() Цикл
Текст = СтрЗаменить(ЭлементыФормы.ТекстЗапроса.ПолучитьСтроку(Ном),"|","");
Текст = СтрЗаменить(Текст, Символ(34), Символ(34) + Символ(34));
НовыйТекст = НовыйТекст + "|" + Текст + Символы.ПС;
КонецЦикла;
КодЗапроса = КодЗапроса + пНазваниеЗапроса + ".Текст = """ + Символы.ПС + СокрЛП(НовыйТекст) + """;" + Символы.ПС;
Для каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл
КодЗапроса = КодЗапроса + пНазваниеЗапроса+".УстановитьПараметр("""+ПараметрЗапроса.Имя+""","+Символы.Таб+ПараметрЗапроса.Имя+");"+Символы.Таб+" //" + ПараметрЗапроса.ТипЗначения + Символы.ПС;
КонецЦикла;
КодЗапроса = КодЗапроса + "РезультатЗапроса = " + пНазваниеЗапроса + ".Выполнить();"+Символы.ПС;
КодЗапроса = КодЗапроса + "Возврат РезультатЗапроса;"+Символы.ПС;
КодЗапроса = КодЗапроса + "КонецФункции"+Символы.ПС;
ФормаКода = ПолучитьФорму("ФормаКодаЗапроса");
ФормаКода.ЭлементыФормы.КодЗапроса.УстановитьТекст(КодЗапроса);
ФормаКода.Открыть();
6. Почти готово.
7. Заходим в режим Предприятие. И пробуем.
8. Результат приведен на скриншоте.
9.Спасибо за внимание.
Файл консоли прикладывать не буду его найти не проблема.
Это что — просто создаем текст под функцию, и все? А чем не устраивает обычные «создать текст модуля»?
Я и написал ,что если есть то не судите строго)