Найти в Дзене
1С разработка

Генератор текста запроса для временной таблицы

Задача: остановиться в отладчике после формирования какой-то таблицы значений, нажать пару кнопок и получить кусок кода примерно вот такого вида: Сама функция:
// Формирует текст программного кода для вставки в модуль // // Параметры: // ТЗ - ТаблицаЗначений // ИВТ(не обязательно) - Строка - Имя временной таблицы, с которым сгенерится кусок кода // // Возвращаемое значение: // Строка - Текст програмного кода // Функция СгенерироватьТекстЗапросаДляВременнойТаблицы(ТЗ, ИВТ = "ТЗ_Источник") Экспорт ТК = "Запрос = Новый Запрос; | Запрос.Текст = | ""ВЫБРАТЬ"; ПС = Символы.ПС; СЛ = "|"; Таб=Символы.Таб; СЛТ = СЛ + Таб; ТСЛТ = Таб+СЛТ; Т = "."; З = ","; Для каждого Колонка из ТЗ.Колонки Цикл ИК = Колонка.Имя; ТК = ТК+ПС+ТСЛТ+ИВТ+Т+ИК+" КАК "+ИК+З; КонецЦикла; ТК = Лев(ТК,СтрДлина(ТК) - 1); ТК = ТК+ПС+Таб+"|ПОМЕСТИТЬ "+ИВТ+ПС+Таб+СЛ+"ИЗ"+ПС+ТСЛТ+"&"+ИВТ+" КАК "+ИВТ+""""+";"; ТК = ТК+ПС+Таб+"Запрос.УстановитьПараметр("""+ИВТ+""""+З+ИВТ+");"; ТК = ТК+ПС+ПС+Таб+"Возврат Запрос.Вып

Задача: остановиться в отладчике после формирования какой-то таблицы значений, нажать пару кнопок и получить кусок кода примерно вот такого вида:

Остается скопипастить и продолжить работу
Остается скопипастить и продолжить работу

Сама функция:


// Формирует текст программного кода для вставки в модуль
//
// Параметры:
// ТЗ - ТаблицаЗначений
// ИВТ(не обязательно) - Строка - Имя временной таблицы, с которым сгенерится кусок кода
//
// Возвращаемое значение:
// Строка - Текст програмного кода
//
Функция СгенерироватьТекстЗапросаДляВременнойТаблицы(ТЗ, ИВТ = "ТЗ_Источник") Экспорт
ТК = "Запрос = Новый Запрос;
| Запрос.Текст =
| ""ВЫБРАТЬ";
ПС = Символы.ПС; СЛ = "|"; Таб=Символы.Таб; СЛТ = СЛ + Таб; ТСЛТ = Таб+СЛТ; Т = "."; З = ",";
Для каждого Колонка из ТЗ.Колонки Цикл ИК = Колонка.Имя; ТК = ТК+ПС+ТСЛТ+ИВТ+Т+ИК+" КАК "+ИК+З; КонецЦикла;
ТК = Лев(ТК,СтрДлина(ТК) - 1);
ТК = ТК+ПС+Таб+"|ПОМЕСТИТЬ "+ИВТ+ПС+Таб+СЛ+"ИЗ"+ПС+ТСЛТ+"&"+ИВТ+" КАК "+ИВТ+""""+";";
ТК = ТК+ПС+Таб+"Запрос.УстановитьПараметр("""+ИВТ+""""+З+ИВТ+");";
ТК = ТК+ПС+ПС+Таб+"Возврат Запрос.Выполнить().Выгрузить();";
Возврат ТК;
КонецФункции