From 53dabceea56f351a0d0c6b17f56bd2bff17f1ee7 Mon Sep 17 00:00:00 2001 From: Denis Ushakov Date: Tue, 18 Jun 2024 12:44:40 +0300 Subject: [PATCH] Changed description and added new func --- .../Ext/Module.bsl" | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl" index ae980e61..d14dec38 100644 --- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl" +++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl" @@ -121,20 +121,11 @@ КонецЦикла; - // Удалим "мусор" схемы запроса - НомерПоля = 1; - ИскомаяПодстрока = " КАК Поле" + НомерПоля; - НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0; - Пока НайденоМусорноеПоле Цикл - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ИскомаяПодстрока, ""); - - НомерПоля = НомерПоля + 1; - ИскомаяПодстрока = " КАК Поле" + НомерПоля; - НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0; - КонецЦикла; - НовыйТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); + // Удалим "мусор" схемы запроса + УдалитьНенужныеПоля(НовыйТекстЗапроса); + Если ТипЗнч(Запрос) = Тип("Строка") Тогда Запрос = НовыйТекстЗапроса; ИначеЕсли ТипЗнч(Запрос) = Тип("Запрос") Тогда @@ -145,7 +136,7 @@ КонецФункции -// Добавляет новое поле в конец секции выборки переданного запроса +// Добавляет список полей в конец секции выборки переданного запроса // // Параметры: // Запрос - Строка, Запрос - текст запроса или запрос. @@ -237,16 +228,7 @@ НовыйТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); // Удалим "мусор" схемы запроса - НомерПоля = 1; - ИскомаяПодстрока = " КАК Поле" + НомерПоля; - НайденоМусорноеПоле = СтрНайти(НовыйТекстЗапроса, ИскомаяПодстрока) > 0; - Пока НайденоМусорноеПоле Цикл - НовыйТекстЗапроса = СтрЗаменить(НовыйТекстЗапроса, ИскомаяПодстрока, ""); - - НомерПоля = НомерПоля + 1; - ИскомаяПодстрока = " КАК Поле" + НомерПоля; - НайденоМусорноеПоле = СтрНайти(НовыйТекстЗапроса, ИскомаяПодстрока) > 0; - КонецЦикла; + УдалитьНенужныеПоля(НовыйТекстЗапроса); Если ТипЗнч(Запрос) = Тип("Строка") Тогда Запрос = НовыйТекстЗапроса; @@ -789,3 +771,23 @@ #КонецОбласти #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УдалитьНенужныеПоля(ТекстЗапроса) + + // Удалим "мусор" схемы запроса + НомерПоля = 1; + ИскомаяПодстрока = " КАК Поле" + НомерПоля; + НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0; + Пока НайденоМусорноеПоле И НомерПоля < 20 Цикл + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ИскомаяПодстрока, ""); + + НомерПоля = НомерПоля + 1; + ИскомаяПодстрока = " КАК Поле" + НомерПоля; + НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти