Иногда проще подменить временную таблицу в запросе, чем менять сам запрос (например, нет желания почти при каждом обновлении править запрос на семи страницах).
Можно использовать, если используется менеджер временных таблиц.
Для получения ТЗ воспользовался обработкой отсюда: //infostart.ru/public/173803/
Вот, собственно, сам код:
Процедура ПодменитьВременнуюТаблицуВЗапросе(Запрос,ИмяВремТаблицы)
ТЗ = ПолучитьТЗ(Запрос.МенеджерВременныхТаблиц,ИмяВремТаблицы);
Запрос.Текст = " УНИЧТОЖИТЬ " + ИмяВремТаблицы;
Запрос.Выполнить();
ОбработатьТЗ(ТЗ);
Запрос.Текст = " ВЫБРАТЬ * ПОМЕСТИТЬ " + ИмяВремТаблицы + " ИЗ &ТЗ КАК ТЗ";
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.Выполнить();
КонецПроцедуры
Функция ПолучитьТЗ(МенеджерВремТаб,ИмяВремтаб ="",Порядок = "") Экспорт
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВремТаб;
Запрос.Текст =
"ВЫБРАТЬ
| *
|ИЗ
| ВремТаб КАК ВремТаб
|
|УПОРЯДОЧИТЬ ПО Порядок";
Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВремТаб",ИмяВремтаб);
Если Порядок = "" Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст,"УПОРЯДОЧИТЬ ПО Порядок","");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Порядок",Порядок);
КонецЕсли;
ТЗ = Запрос.Выполнить().Выгрузить();
Возврат ТЗ;
КонецФункции
Процедура ОбработатьТЗ(ТЗ)
//здесь правим как надо ТЗ
КонецПроцедуры