Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changed description and added new func #79

Merged
merged 3 commits into from
Jun 19, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -121,20 +121,11 @@

КонецЦикла;

// Удалим "мусор" схемы запроса
НомерПоля = 1;
ИскомаяПодстрока = " КАК Поле" + НомерПоля;
НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0;
Пока НайденоМусорноеПоле Цикл
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ИскомаяПодстрока, "");

НомерПоля = НомерПоля + 1;
ИскомаяПодстрока = " КАК Поле" + НомерПоля;
НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0;
КонецЦикла;

НовыйТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();

// Удалим "мусор" схемы запроса
УдалитьНенужныеПоля(НовыйТекстЗапроса);

Comment on lines +126 to +128
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactor the call to УдалитьНенужныеПоля to ensure it's only performed if needed.

Consider checking if there are actually fields to remove before calling УдалитьНенужныеПоля to avoid unnecessary processing:

+ Если ЕстьПоляДляУдаления(НовыйТекстЗапроса) Тогда
  УдалитьНенужныеПоля(НовыйТекстЗапроса);
+ КонецЕсли;

You might need to implement ЕстьПоляДляУдаления to check for fields that qualify as "unnecessary" based on your application's logic.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// Удалим "мусор" схемы запроса
УдалитьНенужныеПоля(НовыйТекстЗапроса);
// Удалим "мусор" схемы запроса
Если ЕстьПоляДляУдаления(НовыйТекстЗапроса) Тогда
УдалитьНенужныеПоля(НовыйТекстЗапроса);
КонецЕсли;

Если ТипЗнч(Запрос) = Тип("Строка") Тогда
Запрос = НовыйТекстЗапроса;
ИначеЕсли ТипЗнч(Запрос) = Тип("Запрос") Тогда
Expand All @@ -145,7 +136,7 @@

КонецФункции

// Добавляет новое поле в конец секции выборки переданного запроса
// Добавляет список полей в конец секции выборки переданного запроса
//
// Параметры:
// Запрос - Строка, Запрос - текст запроса или запрос.
Expand Down Expand Up @@ -237,16 +228,7 @@
НовыйТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();

// Удалим "мусор" схемы запроса
НомерПоля = 1;
ИскомаяПодстрока = " КАК Поле" + НомерПоля;
НайденоМусорноеПоле = СтрНайти(НовыйТекстЗапроса, ИскомаяПодстрока) > 0;
Пока НайденоМусорноеПоле Цикл
НовыйТекстЗапроса = СтрЗаменить(НовыйТекстЗапроса, ИскомаяПодстрока, "");

НомерПоля = НомерПоля + 1;
ИскомаяПодстрока = " КАК Поле" + НомерПоля;
НайденоМусорноеПоле = СтрНайти(НовыйТекстЗапроса, ИскомаяПодстрока) > 0;
КонецЦикла;
УдалитьНенужныеПоля(НовыйТекстЗапроса);

Если ТипЗнч(Запрос) = Тип("Строка") Тогда
Запрос = НовыйТекстЗапроса;
Expand Down Expand Up @@ -789,3 +771,23 @@
#КонецОбласти

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Процедура УдалитьНенужныеПоля(ТекстЗапроса)

// Удалим "мусор" схемы запроса
НомерПоля = 1;
ИскомаяПодстрока = " КАК Поле" + НомерПоля;
НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0;
Пока НайденоМусорноеПоле И НомерПоля < 20 Цикл

Check warning on line 783 in src/cf/CommonModules/пбп_СхемыЗапросов/Ext/Module.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/cf/CommonModules/пбп_СхемыЗапросов/Ext/Module.bsl#L783

Создайте константу с понятным названием, присвойте ей значение "20" и используйте эту константу вместо магического числа.
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ИскомаяПодстрока, "");

НомерПоля = НомерПоля + 1;
ИскомаяПодстрока = " КАК Поле" + НомерПоля;
НайденоМусорноеПоле = СтрНайти(ТекстЗапроса, ИскомаяПодстрока) > 0;
КонецЦикла;

КонецПроцедуры
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optimize the procedure УдалитьНенужныеПоля by using a constant.

- Пока НайденоМусорноеПоле И НомерПоля < 20 Цикл
+ Константа МаксимальноеКоличествоПолей = 20
+ Пока НайденоМусорноеПоле И НомерПоля < МаксимальноеКоличествоПолей Цикл

This change, as suggested by the static analysis tool, will make the code more readable by replacing the "magic number" with a named constant, clarifying its purpose.

Committable suggestion was skipped due to low confidence.

Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 783-783: src/cf/CommonModules/пбп_СхемыЗапросов/Ext/Module.bsl#L783
Создайте константу с понятным названием, присвойте ей значение "20" и используйте эту константу вместо магического числа.


#КонецОбласти
Loading