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

Архитектурный рефакторинг подсистемы управления интеграциями #99

Conversation

thvvmas
Copy link
Contributor

@thvvmas thvvmas commented Sep 10, 2024

#85 Добавлены / изменены реквизиты для типов интеграций помимо SOAP и REST. Добавлены / изменены обработчики форм справочников подсистемы под отрисовку разных типов интеграций

Summary by CodeRabbit

  • New Features

    • Introduced a comprehensive form for managing integration settings and external components, enhancing user interaction.
    • Added new attributes and renamed existing ones for improved clarity and functionality in integration settings.
    • Implemented dynamic visibility management for UI elements based on integration types.
    • Enhanced data handling with new procedures for loading and saving external components.
  • Bug Fixes

    • Updated function signatures and internal logic to align with new naming conventions, improving clarity and maintaining functionality.
  • Documentation

    • Enhanced XML structures for better organization and user understanding of integration types and settings.

…ны / изменены реквизиты для типов интеграций помимо SOAP и REST. Добавлены / изменены обработчики форм справочников подсистемы под отрисовку разных типов интеграций
@thvvmas thvvmas added the enhancement Улучшение существующей функциональности label Sep 10, 2024
@thvvmas thvvmas requested a review from ivanmolodec September 10, 2024 15:39
Copy link

coderabbitai bot commented Sep 10, 2024

Warning

Rate limit exceeded

@thvvmas has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 12 minutes and 36 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Commits

Files that changed from the base of the PR and between c98c759 and 40e084c.

Walkthrough

This pull request introduces significant enhancements to the integration settings management within the application. It includes the addition of a new XML form for configuring external component integration, along with a corresponding module that implements the functionality for loading and saving external components. The changes facilitate user interaction through a structured interface and event handling, improving the overall integration process.

Changes

File Path Change Summary
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml Added a new form for managing external component integration settings with UI components and events.
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl Implemented a module for handling external component loading and saving, including event procedures.

Poem

🐇 In the garden of code where the rabbits roam,
New forms and functions feel just like home.
With buttons and fields, oh what a sight,
Integrations flourish, everything's bright!
Hops of delight with each new command,
A world of possibilities, all carefully planned! 🌸


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

Failed

  • E Reliability Rating on New Code (is worse than A)
  • 3.48% Duplicated Lines (%) on New Code (is greater than 3.00%)

Analysis Details

98 Issues

  • Bug 2 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 96 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 3.48% Duplicated Code (1.00% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

Failed

  • E Reliability Rating on New Code (is worse than A)

Analysis Details

95 Issues

  • Bug 1 Bug
  • Vulnerability 0 Vulnerabilities
  • Code Smell 94 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

Outside diff range, codebase verification and nitpick comments (5)
src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl (1)

25-64: LGTM, but consider adding exception handling.

The function is well-structured and the logic is clear. The query is using a CASE expression to determine the value of ПараметрыОт based on the hierarchy of ТипИнтеграции. The function is handling the case when the query returns no results by returning an empty reference.

However, consider adding exception handling to gracefully handle any exceptions that may be thrown by the query.

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl (2)

Line range hint 34-69: LGTM, but consider adding exception handling and a description of the return value and the parameters.

The function is well-structured and the logic is clear. The query is retrieving the parameters of the integration flow. The function is building a structure of the parameters based on the result of the query. The function is handling the case when the query returns no results by returning an empty structure.

However, consider the following suggestions:

  • Add exception handling to gracefully handle any exceptions that may be thrown by the query.
  • Add a description of the return value and the parameters of the function.
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 34-34: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl#L34
Добавьте описание возвращаемого значения функции


[warning] 34-34: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl#L34
Необходимо добавить описание всех параметров метода


61-62: LGTM, but consider handling the case when the JSON type is a string and adding exception handling.

The function is well-structured and the logic is clear. The function is converting the default value of a parameter based on its JSON type. The function is handling the case when the default value is not filled. The function is handling the case when the JSON type is a boolean, date, or number.

However, consider the following suggestions:

  • Handle the case when the JSON type is a string.
  • Add exception handling to gracefully handle any exceptions that may be thrown by the conversion.

Also applies to: 79-103

src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (2)

24-45: Optimize the loop using the Продолжить operator.

The code changes are approved.

However, consider applying this diff to slightly optimize the loop:

 Для Каждого ЭлементМассива Из НепроверяемыеРеквизиты Цикл

 	ПорядковыйНомер = ПроверяемыеРеквизиты.Найти(ЭлементМассива);
-	Если ПорядковыйНомер <> Неопределено Тогда
+	Если ПорядковыйНомер = Неопределено Тогда
+		Продолжить;
+	КонецЕсли;
 		ПроверяемыеРеквизиты.Удалить(ПорядковыйНомер);
-	КонецЕсли;

 КонецЦикла;

47-112: Optimize the conditional blocks using the ИначеЕсли operator.

The code changes are approved.

However, consider applying this diff to slightly optimize the conditional blocks:

-Если ЭлементНаследованиия = Справочники.пбп_ТипыИнтеграций.Каталог Тогда
+ИначеЕсли ЭлементНаследованиия = Справочники.пбп_ТипыИнтеграций.Каталог Тогда
 	Порт				= "";
 	ВнешняяКомпонента	= Неопределено;
 	УчетнаяЗапись		= Неопределено;
 	ТипАвторизации		= Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
 	ИмяCOMОбъекта		= "";
 	ИмяФайлаВнешнейКомпоненты = "";
-ИначеЕсли ЭлементНаследованиия = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
+ИначеЕсли ЭлементНаследованиия = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
 	ВнешняяКомпонента	= Неопределено;
 	УчетнаяЗапись		= Неопределено;
 	ТипАвторизации		= Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
 	ИмяCOMОбъекта		= "";
 	ИмяФайлаВнешнейКомпоненты = "";
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 108ead9 and 816f5c6.

Files ignored due to path filters (1)
  • src/cf/CommonTemplates/пбп_PinkRabbitMQ/Ext/Template.bin is excluded by !**/*.bin
Files selected for processing (47)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки.xml (7 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl (2 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form.xml (2 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции.xml (7 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form.xml (2 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (13 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции.xml (3 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты.xml (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаСписка/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (6 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (4 hunks)
  • src/cf/Catalogs/пбп_ПользовательскиеФункции/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ТипыИнтеграций.xml (1 hunks)
  • src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/Predefined.xml (1 hunks)
  • src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl (6 hunks)
  • src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ОбщегоНазначенияКлиент/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ОбщегоНазначенияПовтИсп/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (5 hunks)
  • src/cf/CommonModules/пбп_РегламентныеЗаданияСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonTemplates/пбп_PinkRabbitMQ.xml (1 hunks)
  • src/cf/CommonTemplates/пбп_SimpleKafkaAdapter.xml (1 hunks)
  • src/cf/Configuration.xml (2 hunks)
  • src/cf/Constants/пбп_ИспользоватьПользовательскиеФункции.xml (1 hunks)
  • src/cf/DefinedTypes/пбп_Пользователи.xml (1 hunks)
  • src/cf/DefinedTypes/пбп_УчетныеЗаписиЭлектроннойПочты.xml (1 hunks)
  • src/cf/Enums/пбп_МетодыЗапросаREST.xml (1 hunks)
  • src/cf/Enums/пбп_МетодыЗапросаREST/Ext/ManagerModule.bsl (1 hunks)
  • src/cf/Enums/пбп_ТипыАвторизации.xml (1 hunks)
  • src/cf/Enums/пбп_ФорматыИнтеграций.xml (2 hunks)
  • src/cf/FunctionalOptions/пбп_ИспользоватьПользовательскиеФункции.xml (1 hunks)
  • src/cf/Roles/пбп_РедактированиеНастроекИнтеграции/Ext/Rights.xml (2 hunks)
  • src/cf/Roles/пбп_РедактированиеПользовательскихФункций/Ext/Rights.xml (1 hunks)
  • src/cf/ScheduledJobs/пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов.xml (1 hunks)
  • src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками.xml (1 hunks)
  • src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml (2 hunks)
Files skipped from review due to trivial changes (6)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты.xml
  • src/cf/Catalogs/пбп_ПользовательскиеФункции/Ext/ObjectModule.bsl
  • src/cf/CommonTemplates/пбп_PinkRabbitMQ.xml
  • src/cf/CommonTemplates/пбп_SimpleKafkaAdapter.xml
  • src/cf/Enums/пбп_МетодыЗапросаREST/Ext/ManagerModule.bsl
  • src/cf/Roles/пбп_РедактированиеПользовательскихФункций/Ext/Rights.xml
Additional context used
GitHub Check: 1C: Project SubSystems Library Sonarqube Results
src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl

[warning] 39-39: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L39
Удалите неиспользуемую переменную РезультатОбработки


[notice] 31-31: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L31
Добавьте описание метода программного интерфейса

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl

[warning] 34-34: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl#L34
Добавьте описание возвращаемого значения функции


[warning] 34-34: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl#L34
Необходимо добавить описание всех параметров метода

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl

[warning] 62-62: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L62
Синтаксическая конструкция вида "Если...Тогда...ИначеЕсли..." должна содержать ветвь "Иначе".


[failure] 24-24: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L24
Уменьшите когнитивную сложность "ПередЗаписью" с 18 до 15


[warning] 58-58: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L58
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


[warning] 30-30: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L30
Длина строки 124 превышает максимально допустимую 120

src/cf/CommonModules/пбп_ОбщегоНазначенияКлиент/Ext/Module.bsl

[warning] 167-167: src/cf/CommonModules/пбп_ОбщегоНазначенияКлиент/Ext/Module.bsl#L167
Нельзя использовать латинские и кириллические символы в одном идентификаторе

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl

[warning] 144-144: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L144
Необходимо избавиться от многократного использования строкового литерала "Kafka"


[warning] 139-139: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L139
Необходимо избавиться от многократного использования строкового литерала "ИдентификаторНастройки"


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


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

src/cf/CommonModules/пбп_ОбщегоНазначенияПовтИсп/Ext/Module.bsl

[warning] 118-118: src/cf/CommonModules/пбп_ОбщегоНазначенияПовтИсп/Ext/Module.bsl#L118
Добавьте описание возвращаемого значения функции


[warning] 118-118: src/cf/CommonModules/пбп_ОбщегоНазначенияПовтИсп/Ext/Module.bsl#L118
Необходимо добавить описание всех параметров метода

src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl

[warning] 37-37: src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl#L37
Длина строки 123 превышает максимально допустимую 120

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl

[notice] 33-33: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L33
Избавьтесь от избыточного обращения внутри модуля через его имя или псевдоним ЭтотОбъект


[notice] 298-298: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L298
Избавьтесь от избыточного обращения внутри модуля через его имя или псевдоним ЭтотОбъект


[warning] 270-270: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L270
Длина строки 132 превышает максимально допустимую 120


[notice] 282-282: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L282
Возможная опечатка в "Наследованиия"


[notice] 164-164: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L164
Возможная опечатка в "Наследованиия"


[warning] 248-248: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L248
Синтаксическая конструкция вида "Если...Тогда...ИначеЕсли..." должна содержать ветвь "Иначе".


[warning] 196-196: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L196
Необходимо избавиться от многократного использования строкового литерала "ПараметрыВходаПараметрURL"

src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl

[warning] 144-144: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L144
Длина строки 125 превышает максимально допустимую 120


[warning] 165-165: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L165
Длина строки 136 превышает максимально допустимую 120


[warning] 215-215: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L215
Необходимо добавить описание всех параметров метода


[warning] 215-215: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L215
Добавьте описание возвращаемого значения функции


[warning] 446-446: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L446
Длина строки 134 превышает максимально допустимую 120


[warning] 440-440: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L440
Длина строки 136 превышает максимально допустимую 120

Additional comments not posted (66)
src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form/Module.bsl (1)

29-29: LGTM!

The change in the argument passed to the method ИнициализироватьПредопределенныеЗначения aligns with the PR objective of refactoring the integration management subsystem to support a broader range of integration methods. The change is localized to this procedure and does not introduce any issues.

src/cf/FunctionalOptions/пбп_ИспользоватьПользовательскиеФункции.xml (1)

1-22: LGTM!

The functional option пбп_ИспользоватьПользовательскиеФункции is well-defined and its purpose is clear from the name and the content. The inclusion of the catalog пбп_ПользовательскиеФункции and the attributes related to user functions in the content suggests that this functional option is used to control the usage of user functions in the integration subsystem. The file does not introduce any issues.

src/cf/DefinedTypes/пбп_Пользователи.xml (1)

1-28: LGTM!

The defined type пбп_Пользователи is well-defined and its purpose is clear from the name. The type is a string with a length of 10 characters, which suggests that it is used to represent user identifiers or codes. The file does not introduce any issues.

src/cf/ScheduledJobs/пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов.xml (1)

1-22: LGTM!

The new scheduled job пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов is defined correctly. The job properties, such as the name, method name, description, and restart settings, are specified as expected.

src/cf/DefinedTypes/пбп_УчетныеЗаписиЭлектроннойПочты.xml (1)

1-28: LGTM!

The new defined type пбп_УчетныеЗаписиЭлектроннойПочты for email accounts is defined correctly. The type is based on the xs:string type with a variable length of up to 10 characters, which seems reasonable for storing email account information.

src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками.xml (1)

23-24: LGTM!

The additions of the constant and functional option for controlling custom user functions align with the PR objective of enhancing the integration management subsystem.

src/cf/Enums/пбп_ТипыАвторизации.xml (1)

1-67: LGTM!

The new enumeration for defining authorization types aligns with the PR objective of enhancing the integration management subsystem.

src/cf/Constants/пбп_ИспользоватьПользовательскиеФункции.xml (1)

1-58: LGTM!

The new constant for controlling the usage of custom user functions aligns with the PR objective of enhancing the integration management subsystem.

src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml (1)

29-29: LGTM!

The changes are consistent with the list of alterations. The changes are adding new references to the subsystem definition and renaming an existing reference. The changes are not removing any existing references and are not introducing any syntax errors.

Also applies to: 32-32, 41-45

src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/Predefined.xml (1)

1-121: LGTM!

The file follows the expected format and conventions for defining predefined items. The changes are approved.

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl (1)

90-101: LGTM!

The УдалитьРегламентноеЗаданиеПоКлючу procedure correctly deletes the scheduled job by the provided key. The changes are approved.

src/cf/Roles/пбп_РедактированиеНастроекИнтеграции/Ext/Rights.xml (3)

46-46: LGTM!

The renaming of the object from Catalog.пбп_МетодыИнтеграции to Catalog.пбп_ТипыИнтеграций is approved. The rights are preserved correctly.


85-122: LGTM!

The addition of the new object Catalog.пбп_ИнтеграционныеПотоки and the granted rights are approved. The rights are comprehensive and appropriate for the purpose of enhancing the integration management capabilities.


124-149: LGTM!

The addition of the new object Configuration.ПроектнаяБиблиотекаПодсистем and the granted rights are approved. The rights related to main window modes and analytics system client are appropriate for expanding the configuration options for user interface modes and analytics functionalities.

src/cf/Catalogs/пбп_ТипыИнтеграций.xml (1)

1-96: LGTM!

The metadata definition for the пбп_ТипыИнтеграций catalog looks good.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl (1)

1-158: LGTM!

The form module for loading an external component looks good. The code is well-structured and follows the standard practices.

src/cf/Enums/пбп_ФорматыИнтеграций.xml (1)

5-5: LGTM!

The changes to the enum definition for integration formats look good:

  • The enum name and several enum values have been appropriately renamed for clarity.
  • New enum values have been added to support a more comprehensive list of integration formats.

These changes enhance the functionality and usability of the integration system. The code changes are approved.

Also applies to: 9-9, 13-13, 19-19, 23-23, 93-176

src/cf/Enums/пбп_МетодыЗапросаREST.xml (1)

1-162: Looks good!

Adding this new enum definition for REST request methods is a great idea. It provides a clean way to represent and work with common HTTP methods like GET, POST, PATCH, DELETE, PUT in the codebase.

The enum is well-structured and follows the naming conventions. The code changes are approved.

src/cf/CommonModules/пбп_ОбщегоНазначенияКлиент/Ext/Module.bsl (1)

167-173: LGTM!

The new exported functions ЭтоWindowsКлиент and ТипПлатформыКлиента are great additions to the module. They enhance its capability to identify the client's operating system and platform type, which can be crucial for conditional logic based on the environment.

The functions are implemented correctly and follow the existing coding style. The code changes are approved.

Also applies to: 175-186

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

[warning] 167-167: src/cf/CommonModules/пбп_ОбщегоНазначенияКлиент/Ext/Module.bsl#L167
Нельзя использовать латинские и кириллические символы в одном идентификаторе

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form.xml (2)

98-98: Verify the impact of the DataPath change.

The DataPath for the InputField named "Метод" has been changed from Список.Метод to ~Список.Метод. This change indicates a potential shift in how the method data is accessed or represented, possibly introducing a new context or scope.

Ensure that this change is thoroughly tested to confirm that it behaves as expected and does not introduce any unintended side effects or bugs.


114-114: Verify the impact of the MainTable setting update.

The MainTable setting has been updated from Catalog.пбп_МетодыИнтеграции to Catalog.пбп_ИнтеграционныеПотоки. This change suggests a shift in the underlying data source for the dynamic list.

Ensure that this change is thoroughly tested to confirm that the correct integration methods are retrieved and displayed in the form as expected.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаСписка/Ext/Form.xml (1)

97-101: LGTM!

The new LabelField element designated for integration type enhances the user interface by providing more context and options related to integration types, thereby improving the overall functionality of the form.

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (4)

84-95: LGTM!

The addition of new systems—"Rabbit Mq," "Kafka," and "Active Directory"—significantly enhances the module's functionality by expanding its integration capabilities.


107-109: LGTM!

The renaming of function ПредопределенныеЗначенияМетодыИнтеграции() to ПредопределенныеЗначенияИнтеграционныеПотоки() reflects a shift in terminology that aligns with the new integration methods being introduced. The logic within this function has also been updated to accommodate the new naming and to ensure that the correct integration methods are returned.

Also applies to: 113-114


236-236: LGTM!

The renaming of function ТаблицаПредопределенныхМетодыИнтеграции() to ТаблицаПредопределенныхИнтеграционныеПотоки() aligns the function name with the new terminology for integration methods.


252-256: LGTM!

The additional columns added to the table returned by ТаблицаПредопределенныхНастройкиИнтеграции() are essential for defining the characteristics of the new integrations and support the new integration methods.

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

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


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

src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form.xml (2)

83-90: LGTM!

The addition of the new LabelField element named "Ссылка" is approved. It enriches the form's functionality by providing a new field that users can interact with, potentially improving data management or user experience.


117-117: Verify the impact of modifying the DataPath.

The DataPath for the existing LabelField named "МетодИнтеграции" has been modified by prefixing it with a tilde (~). This may indicate a change in how the data is referenced or processed, suggesting a shift in the underlying logic or data handling for this field.

Run the following script to verify the impact of this change:

Verification successful

Localized Impact of DataPath Modification

The modification of the DataPath for the LabelField named "МетодИнтеграции" is localized to the ФормаСписка form. There are no other references to this DataPath elsewhere in the codebase, indicating that the change does not affect other components or logic. The associated ContextMenu and ExtendedTooltip are reused in another form, but the DataPath change itself is specific to the ФормаСписка form.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the impact of modifying the `DataPath` for the `LabelField` named "МетодИнтеграции".

# Test: Search for the usage of the `DataPath`. Expect: Only occurrences of the new `DataPath`.
rg --type xml -A 5 $'Список\.МетодИнтеграции'

Length of output: 760


Script:

#!/bin/bash
# Search for references to the LabelField named "МетодИнтеграции" in the codebase.
rg --type xml -A 5 'LabelField name="МетодИнтеграции"'

# Search for references to the ContextMenu associated with "МетодИнтеграции".
rg --type xml -A 5 'ContextMenu name="МетодИнтеграцииКонтекстноеМеню"'

# Search for references to the ExtendedTooltip associated with "МетодИнтеграции".
rg --type xml -A 5 'ExtendedTooltip name="МетодИнтеграцииРасширеннаяПодсказка"'

Length of output: 3848

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form.xml (1)

1-240: LGTM!

The addition of the new form for the catalog named пбп_ИнтеграционныеПотоки is approved. The form is well-structured and follows the standard conventions for defining forms in 1C:Enterprise. The UI elements are properly named and have appropriate data paths. The attributes and commands are defined correctly.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml (1)

1-317: LGTM!

The new form for loading an external component looks good. It follows the standard practices and includes the necessary controls and commands.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (7)

10-12: LGTM!

The changes to the event handlers look good:

  • The new OnReadAtServer event will allow additional processing when reading data from the server.
  • Renaming OnWriteAtServer to BeforeWriteAtServer clarifies that the event occurs before writing data.

48-56: LGTM!

The new ТипИнтеграции input field is a good addition. It allows specifying the integration type and reacts to changes via the OnChange event.


81-88: LGTM!

The renaming of Сервер to СтрокаПодключения is an improvement. It clarifies the purpose of the field.

The new StartChoice event will be useful for any additional processing when the user starts selecting a connection string.


99-103: LGTM!

The new input fields УчетнаяЗапись, ТипАвторизации, and ИмяCOMОбъекта are good additions. They allow specifying additional integration settings and support editing multiple values.

Also applies to: 105-110, 111-116


117-123: LGTM!

The new ИспользоватьПользовательскиеФункции checkbox field is a useful addition. It allows the user to easily enable or disable the use of custom functions.


124-128: LGTM!

The new ПодключитьВнешнююКомпоненту button is a good addition. It allows the user to easily connect an external component from a file by invoking the associated command.


268-282: LGTM!

The new attributes АдресВнешнейКомпоненты and ВнешняяКомпонентаЗагруженаИзФайла are necessary additions. They allow storing the address of the external component and tracking whether it was loaded from a file.

Also applies to: 283-293

src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (1)

36-37: LGTM!

The changes to the conditional logic look good:

  • Replacing the check for "СправочникМенеджер.пбп_МетодыИнтеграции" with "СправочникМенеджер.пбп_ИнтеграционныеПотоки" reflects the updated handling of predefined values based on the integration flows.
  • The new conditional block that checks for the constant "пбп_ИспользоватьПользовательскиеФункции" and modifies the query string enhances the specificity of the query by excluding records based on the "ИдентификаторНастройки" when user-defined functions are used. This improves data retrieval accuracy.

Also applies to: 142-148

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

[warning] 37-37: src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl#L37
Длина строки 123 превышает максимально допустимую 120

src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (6)

180-234: LGTM!

The new procedure УстановитьСвойстваЭлементов enhances the control flow and logic of the integration process by setting the correct properties based on the integration type.


33-33: LGTM!

The changes in the ПриСозданииНаСервере procedure, including invoking the new УстановитьСвойстваЭлементов procedure and refactoring references to integration formats, are consistent and align with the new terminology.

Also applies to: 44-44, 46-46


70-72: LGTM!

The changes in the ПриОткрытии procedure, refactoring references to integration formats, are consistent and align with the new terminology.


92-93: LGTM!

The changes in the ЗапросИсходящийДокументСформирован_Подключаемый procedure, refactoring references to integration formats, are consistent and align with the new terminology.


104-105: LGTM!

The changes in the ЗапросВходящийДокументСформирован_Подключаемый procedure, refactoring references to integration formats, are consistent and align with the new terminology.


352-358: LGTM!

The changes to the ПолучитьФорматИнтеграции function, updating it to accept ФорматИнтеграции instead of ФорматЗапросаИнтеграции, align with the new terminology for integration formats.

src/cf/CommonModules/пбп_РегламентныеЗаданияСервер/Ext/Module.bsl (1)

265-291: Verify the impact of the conditional check and consider error handling.

The introduction of the conditional check adds complexity and flexibility to the task processing logic. However, it's important to verify the impact of these changes:

  1. Ensure that the behavior of the task processing logic remains consistent and correct in both scenarios - when the standard subsystem library exists and when it doesn't.

  2. Consider adding error handling and logging mechanisms to handle potential exceptions or unexpected scenarios gracefully, especially in the case where the library doesn't exist and the alternative path is taken.

  3. Verify that the changes do not introduce any unintended side effects or impact the overall functionality of the task processing system.

To verify the impact of the changes, run the following script:

Consider extracting the task deletion logic into a separate procedure to improve code reusability and maintainability. This would encapsulate the branching logic and provide a single point of entry for deleting tasks, making the code easier to understand and modify in the future.

Verification successful

Conditional Check and Error Handling Verification

The conditional check for the existence of the standard subsystem library is consistently used across the codebase, ensuring a standardized approach. However, consider enhancing the error handling by adding logging to capture the context of exceptions for better traceability.

  • File: src/cf/CommonModules/пбп_РегламентныеЗаданияСервер/Ext/Module.bsl
  • Lines: 265-291

Ensure that the task processing logic remains consistent and correct in both scenarios, with and without the library. Consider adding logging mechanisms to improve error traceability.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the impact of the conditional check on task processing.

# Test 1: Search for usages of the `пбп_ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем` function.
# Expect: The function should be used consistently across the codebase.
ast-grep --lang bsl --pattern $'пбп_ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем()'

# Test 2: Search for error handling and logging mechanisms related to task processing.
# Expect: Adequate error handling and logging should be implemented.
rg --type bsl -A 5 $'(ОтменитьТранзакцию|ВызватьИсключение|ЗаписьЖурналаРегистрации)'

# Test 3: Verify the consistency of task processing behavior.
# Expect: The behavior should remain consistent regardless of the presence of the library.
ast-grep --lang bsl --pattern $'Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору($_);
$$$
Если Задание <> Неопределено Тогда
  Задание.Удалить();
КонецЕсли;'

Length of output: 611


Script:

#!/bin/bash
# Description: Verify the impact of the conditional check on task processing using alternative methods.

# Test 1: Search for usages of the `СуществуетБиблиотекаСтандартныхПодсистем` function.
rg 'СуществуетБиблиотекаСтандартныхПодсистем' -A 5

# Test 2: Search for error handling and logging mechanisms related to task processing.
rg '(ОтменитьТранзакцию|ВызватьИсключение|ЗаписьЖурналаРегистрации)' -A 5

# Test 3: Verify the consistency of task processing behavior.
rg 'Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору' -A 5

Length of output: 129191

src/cf/Configuration.xml (1)

272-273: LGTM!

The changes made to the Configuration.xml file enhance the configuration capabilities and expand the functionality of the system. The additions of new templates, jobs, types, constants, and enumerations provide more options for customization and integration. The renaming of existing entries improves clarity and relevance.

The modifications are well-structured and align with the overall architecture of the configuration.

Also applies to: 332-332, 335-337, 341-341, 352-354

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)

3-4: LGTM!

The code changes are approved.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)

26-27: LGTM!

The change enhances the initialization process by setting up the UI elements before checking if the object reference is filled.

src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl (4)

73-75: LGTM!

The changes to the keys within the СтруктураЗаписиИстории structure enhance clarity regarding the data being handled in the integration process.


215-217: LGTM!

The renaming of the function and the update to its internal logic to reference Справочники.пбп_ИнтеграционныеПотоки are approved.

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

[warning] 215-215: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L215
Необходимо добавить описание всех параметров метода


[warning] 215-215: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L215
Добавьте описание возвращаемого значения функции


440-450: LGTM!

The changes to the procedure ДополнительноОбработатьЗапросыИнтеграцииПередЗаписьюВИсторию to reflect the new naming conventions for incoming and outgoing messages are approved. The logic for processing these messages now aligns with the updated structure.

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

[warning] 446-446: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L446
Длина строки 134 превышает максимально допустимую 120


[warning] 440-440: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L440
Длина строки 136 превышает максимально допустимую 120


229-229: Verify the impact of the change in function МетодИнтеграции.

The function has been modified to reference Справочники.пбп_ИнтеграционныеПотоки instead of Справочники.пбп_МетодыИнтеграции, indicating a shift in the underlying data structure being utilized.

Ensure that this change is thoroughly tested to confirm that it behaves as expected and does not introduce any regressions or compatibility issues with other parts of the system that may rely on the previous data structure.

Run the following script to verify the usage of Справочники.пбп_ИнтеграционныеПотоки:

Verification successful

Successful Transition to New Data Structure Verified

The codebase has successfully transitioned to using Справочники.пбп_ИнтеграционныеПотоки, with no remaining references to the old data structure Справочники.пбп_МетодыИнтеграции. Ensure thorough testing to confirm that the new structure behaves as expected in all contexts.

  • References to Справочники.пбп_ИнтеграционныеПотоки found in:

    • src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl
    • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form/Module.bsl
  • No references to Справочники.пбп_МетодыИнтеграции found.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage of `Справочники.пбп_ИнтеграционныеПотоки` in the codebase.

# Test: Search for references to `Справочники.пбп_ИнтеграционныеПотоки`. 
# Expect: Only valid usages, no references to the old data structure `Справочники.пбп_МетодыИнтеграции`.
rg --type bsl $'Справочники\.пбп_ИнтеграционныеПотоки'

# Test: Search for any remaining references to the old data structure `Справочники.пбп_МетодыИнтеграции`.
# Expect: No results found.
rg --type bsl $'Справочники\.пбп_МетодыИнтеграции'

Length of output: 163


Script:

#!/bin/bash
# Description: Verify the usage of `Справочники.пбп_ИнтеграционныеПотоки` in the codebase.

# Test: Search for references to `Справочники.пбп_ИнтеграционныеПотоки`. 
# Expect: Only valid usages, no references to the old data structure `Справочники.пбп_МетодыИнтеграции`.
rg $'Справочники\.пбп_ИнтеграционныеПотоки'

# Test: Search for any remaining references to the old data structure `Справочники.пбп_МетодыИнтеграции`.
# Expect: No results found.
rg $'Справочники\.пбп_МетодыИнтеграции'

Length of output: 621

src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (2)

96-96: Verify the impact of changing the data source for the "МетодИнтеграции" input field.

Ensure that switching the DataPath from Объект.МетодИнтеграции to Объект.ИнтеграционныйПоток does not introduce any unintended side effects or break existing functionality.

Run the following script to check for potential issues:

Verification successful

Change to DataPath is isolated and does not introduce issues.

The modification of the DataPath to Объект.ИнтеграционныйПоток is limited to the form in question and does not affect other parts of the codebase. This suggests that the change is intentional and does not introduce any unintended side effects.

  • Location: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage and impact of `Объект.ИнтеграционныйПоток`.

# Test: Search for read/write access to `Объект.ИнтеграционныйПоток`. 
# Expect: References limited to this form; no unexpected usages.
rg --type xml 'Объект.ИнтеграционныйПоток' -g '*.xml'

Length of output: 355


102-102: Verify the impact of changing the data source for the "ФорматЗапросаИнтеграции" input field.

Ensure that switching the DataPath from Объект.ФорматЗапросаИнтеграции to Объект.ФорматИнтеграции does not introduce any unintended side effects or break existing functionality.

Run the following script to check for potential issues:

Verification successful

No issues found with the change to the "ФорматЗапросаИнтеграции" input field.

The modification of the DataPath from Объект.ФорматЗапросаИнтеграции to Объект.ФорматИнтеграции is localized to this form and does not impact other parts of the system.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage and impact of `Объект.ФорматИнтеграции`.

# Test: Search for read/write access to `Объект.ФорматИнтеграции`. 
# Expect: References limited to this form; no unexpected usages.
rg --type xml 'Объект.ФорматИнтеграции' -g '*.xml'

Length of output: 328

src/cf/Catalogs/пбп_ИнтеграционныеПотоки.xml (4)

5-9: The renaming of the catalog object is approved.

The change from "пбп_МетодыИнтеграции" to "пбп_ИнтеграционныеПотоки" is consistent with the overall refactoring and improves the semantic meaning of the catalog.


27-31: The renaming of the catalog and its synonym is approved.

The changes align with the overall refactoring and enhance the clarity and meaning of the catalog's name and synonym.


366-376: Verify the impact of renaming the "ПараметрыREST" tabular section to "ПараметрыВхода".

Ensure that changing the tabular section name from "ПараметрыREST" to "ПараметрыВхода" does not introduce any unintended side effects or break existing functionality.

Run the following script to check for potential issues:

Verification successful

Renaming of "ПараметрыREST" to "ПараметрыВхода" is consistent and localized.

The change is well-integrated across the relevant XML files, with no unexpected references outside the intended scope. This suggests that the renaming does not introduce any unintended side effects or break existing functionality.

  • References are found in src/cf/Catalogs/пбп_ИнтеграционныеПотоки.xml and src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form.xml.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage and impact of the "ПараметрыВхода" tabular section.

# Test: Search for read/write access to the "ПараметрыВхода" tabular section. 
# Expect: References limited to this catalog; no unexpected usages.
rg --type xml 'ПараметрыВхода' -g '*.xml'

Length of output: 6337


106-110: Verify the impact of renaming the "Метод" attribute to "ТочкаВхода".

Ensure that changing the attribute name from "Метод" to "ТочкаВхода" does not introduce any unintended side effects or break existing functionality.

Run the following script to check for potential issues:

src/cf/Catalogs/пбп_НастройкиИнтеграции.xml (3)

405-405: The increase in the length of the "СтрокаПодключения" attribute is approved.

Allowing longer connection strings is a reasonable adjustment to accommodate the needs of the integration subsystem.


858-858: Provide more information about the purpose and functionality of the new "ФормаЗагрузкиВнешнейКомпоненты" form.

To better understand the impact of adding this form, please provide details on:

  1. The specific purpose of the form

390-394: Verify the impact of renaming the "Сервер" attribute to "СтрокаПодключения".

Ensure that changing the attribute name from "Сервер" to "СтрокаПодключения" does not introduce any unintended side effects or break existing functionality.

Run the following script to check for potential issues:

Verification successful

Renaming of "Сервер" to "СтрокаПодключения" is localized and should not introduce side effects.

The attribute "СтрокаПодключения" is consistently referenced within the пбп_НастройкиИнтеграции catalog and its associated form. Ensure that the UI elements using this attribute reflect the intended changes for consistency.

  • References found in:
    • src/cf/Catalogs/пбп_НастройкиИнтеграции.xml
    • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage and impact of the "СтрокаПодключения" attribute.

# Test: Search for read/write access to the "СтрокаПодключения" attribute. 
# Expect: References limited to this catalog; no unexpected usages.
rg --type xml 'СтрокаПодключения' -g '*.xml'

Length of output: 927

src/cf/Catalogs/пбп_ИсторияИнтеграции.xml (4)

Line range hint 540-553: LGTM!

The attribute renaming and type change are approved.


584-588: LGTM!

The attribute renaming is approved.


632-636: LGTM!

The attribute renaming is approved.


Line range hint 776-789: LGTM!

The attribute renaming and type change are approved.

src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (1)

505-517: LGTM!

The new exported function ПолучитьЗначениеКонстанты looks good. It provides a handy way to dynamically retrieve the value of a constant by its name.

Comment on lines 31 to 44
Процедура ВыполнениеПользовательскихФункцийФайловыхОбменов(НастройкаИнтеграции, ПользовательскаяФункция) Экспорт

пбп_ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов);

ПараметрыФункции = Новый Структура;
ПараметрыФункции.Вставить("НастройкаИнтеграции", НастройкаИнтеграции);

РезультатОбработки = Неопределено;

РезультатОбработки = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
ПользовательскаяФункция, ПараметрыФункции);

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

Choose a reason for hiding this comment

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

The new procedure is implemented correctly, but there are a couple of improvements to consider:

  1. The variable РезультатОбработки is declared but never used after being assigned a value. Consider removing this variable if the return value from пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами is not needed.
-РезультатОбработки = Неопределено;
-
-РезультатОбработки = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
+пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
	ПользовательскаяФункция, ПараметрыФункции);
  1. Add a description for the procedure to document its purpose and usage. This will improve the maintainability and readability of the code.
+// Выполняет пользовательскую функцию файловых обменов с указанными параметрами.
+//
+// Параметры:
+//  НастройкаИнтеграции - <Тип.Вид> - настройка интеграции файловых обменов.
+//  ПользовательскаяФункция - <Тип.Вид> - пользовательская функция для выполнения.
 Процедура ВыполнениеПользовательскихФункцийФайловыхОбменов(НастройкаИнтеграции, ПользовательскаяФункция) Экспорт
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
Процедура ВыполнениеПользовательскихФункцийФайловыхОбменов(НастройкаИнтеграции, ПользовательскаяФункция) Экспорт
пбп_ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов);
ПараметрыФункции = Новый Структура;
ПараметрыФункции.Вставить("НастройкаИнтеграции", НастройкаИнтеграции);
РезультатОбработки = Неопределено;
РезультатОбработки = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
ПользовательскаяФункция, ПараметрыФункции);
КонецПроцедуры
// Выполняет пользовательскую функцию файловых обменов с указанными параметрами.
//
// Параметры:
// НастройкаИнтеграции - <Тип.Вид> - настройка интеграции файловых обменов.
// ПользовательскаяФункция - <Тип.Вид> - пользовательская функция для выполнения.
Процедура ВыполнениеПользовательскихФункцийФайловыхОбменов(НастройкаИнтеграции, ПользовательскаяФункция) Экспорт
пбп_ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов);
ПараметрыФункции = Новый Структура;
ПараметрыФункции.Вставить("НастройкаИнтеграции", НастройкаИнтеграции);
пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
ПользовательскаяФункция, ПараметрыФункции);
КонецПроцедуры
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 39-39: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L39
Удалите неиспользуемую переменную РезультатОбработки


[notice] 31-31: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L31
Добавьте описание метода программного интерфейса

Comment on lines 24 to 84
Процедура ПередЗаписью(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

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

ПользовательскаяФункцияДоИзменения = Справочники.пбп_ПользовательскиеФункции.ПустаяСсылка();
НастройкаИнтеграцииДоИзменения = Справочники.пбп_НастройкиИнтеграции.ПустаяСсылка();
Если ВыборкаРезультатаЗапроса.Следующий() Тогда
ПользовательскаяФункцияДоИзменения = ВыборкаРезультатаЗапроса.ПользовательскаяФункция;
НастройкаИнтеграцииДоИзменения = ВыборкаРезультатаЗапроса.НастройкаИнтеграции;
КонецЕсли;

Если ЗначениеЗаполнено(ПользовательскаяФункцияДоИзменения)
И Не ЗначениеЗаполнено(ПользовательскаяФункция) Тогда
УдалитьРегламентноеЗаданиеПоКлючу(Строка(Ссылка.УникальныйИдентификатор()));
КонецЕсли;

НеобходимоОбновлениеПараметровЗадания = Ложь;
Если ЗначениеЗаполнено(ПользовательскаяФункцияДоИзменения) И ЗначениеЗаполнено(ПользовательскаяФункция)
И ПользовательскаяФункцияДоИзменения <> ПользовательскаяФункция Тогда
НеобходимоОбновлениеПараметровЗадания = Истина;
ИначеЕсли ЗначениеЗаполнено(НастройкаИнтеграцииДоИзменения) И ЗначениеЗаполнено(НастройкаИнтеграции)
И НастройкаИнтеграцииДоИзменения <> НастройкаИнтеграции Тогда
НеобходимоОбновлениеПараметровЗадания = Истина;
КонецЕсли;

Если НеобходимоОбновлениеПараметровЗадания Тогда
КлючЗадания = Строка(Ссылка.УникальныйИдентификатор());

ОтборЗадания = Новый Структура;
ОтборЗадания.Вставить("Ключ", КлючЗадания);
МассивРегламентныхЗаданий = пбп_РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗадания);

Если МассивРегламентныхЗаданий.Количество() Тогда
РегламентноеЗадание = МассивРегламентныхЗаданий[0];

ПараметрыРегламентногоЗадания = Новый Массив;
ПараметрыРегламентногоЗадания.Добавить(НастройкаИнтеграции);
ПараметрыРегламентногоЗадания.Добавить(ПользовательскаяФункция);

РегламентноеЗадание.Параметры = ПараметрыРегламентногоЗадания;
РегламентноеЗадание.Записать();
КонецЕсли;
КонецЕсли;
КонецЕсли;

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

Choose a reason for hiding this comment

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

Approved with suggestions

The ПередЗаписью event handler correctly updates the scheduled job based on the object changes. However, consider the following suggestions to improve the code:

  1. Reduce the cognitive complexity by extracting the scheduled job update logic into a separate procedure. This will make the code more readable and maintainable.

  2. Refactor the repeated code blocks in the ИначеЕсли statement to reduce duplication. Extract the common logic into a separate procedure or function.

  3. Although not critical, consider adding an empty Иначе branch to the Если statements for completeness and clarity.

Please let me know if you would like assistance with implementing these suggestions.

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

[warning] 62-62: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L62
Синтаксическая конструкция вида "Если...Тогда...ИначеЕсли..." должна содержать ветвь "Иначе".


[failure] 24-24: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L24
Уменьшите когнитивную сложность "ПередЗаписью" с 18 до 15


[warning] 58-58: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L58
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


[warning] 30-30: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl#L30
Длина строки 124 превышает максимально допустимую 120

// Возвращаемое значение:
// Булево - если нет клиентского приложения, возвращается Ложь.
//
Функция ЭтоWindowsКлиент() Экспорт
Copy link

Choose a reason for hiding this comment

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

Исправьте смешение латинских и кириллических символов в имени идентификатора.

Статический анализ кода выявил следующую проблему:

Нельзя использовать латинские и кириллические символы в одном идентификаторе.

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

-Функция ЭтоWindowsКлиент() Экспорт
+Функция ЭтоКлиентWindows() Экспорт
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
Функция ЭтоWindowsКлиент() Экспорт
Функция ЭтоКлиентWindows() Экспорт
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 167-167: src/cf/CommonModules/пбп_ОбщегоНазначенияКлиент/Ext/Module.bsl#L167
Нельзя использовать латинские и кириллические символы в одном идентификаторе

Comment on lines 135 to 159
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Rabbit Mq";
НоваяНастройка.ИдентификаторНастройки = "RabbitMq";
НоваяНастройка.ИнтегрируемаяСистема = Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту(
"ИдентификаторНастройки", "RabbitMq");
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.RabbitMq;
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;

НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Kafka";
НоваяНастройка.ИдентификаторНастройки = "Kafka";
НоваяНастройка.ИнтегрируемаяСистема = Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту(
"ИдентификаторНастройки", "Kafka");
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.Kafka;
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;

НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Active directory";
НоваяНастройка.ИдентификаторНастройки = "ActiveDirectory";
НоваяНастройка.СтрокаПодключения = "Provider=""ADsDSOObject""";
НоваяНастройка.ИнтегрируемаяСистема = Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту(
"ИдентификаторНастройки", "ActiveDirectory");
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.COM;
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;
НоваяНастройка.ИмяCOMОбъекта = "ADODB.Connection";
Copy link

Choose a reason for hiding this comment

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

Address the following issues to improve code quality:

  1. Avoid repeated use of string literal "Kafka".
  2. Avoid repeated use of string literal "ИдентификаторНастройки".
  3. Replace magic numbers "200" and "100" with named constants.

To address these issues:

  1. Extract the repeated string literals into named constants.
  2. Replace the magic numbers with named constants that convey their meaning.

For example:

// Named constants for string literals
Const KAFKA_IDENTIFIER = "Kafka";
Const SETTING_IDENTIFIER = "ИдентификаторНастройки";

// Named constants for magic numbers  
Const MAX_CONNECTION_STRING_LENGTH = 200;
Const MAX_COM_OBJECT_NAME_LENGTH = 100;

Then, use these named constants in place of the string literals and magic numbers throughout the code.

Do you want me to submit a PR with these changes?

Also applies to: 254-254, 256-256

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

[warning] 144-144: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L144
Необходимо избавиться от многократного использования строкового литерала "Kafka"


[warning] 139-139: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L139
Необходимо избавиться от многократного использования строкового литерала "ИдентификаторНастройки"

Comment on lines +116 to +122
// См. пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты.
//
Функция ПолучитьЗначениеКонстанты(ИмяКонстанты) Экспорт

Возврат пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты(ИмяКонстанты);

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

Choose a reason for hiding this comment

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

LGTM, but address the static analysis hints.

The addition of the new exported function named ПолучитьЗначениеКонстанты is approved. It enhances the module's functionality by providing a direct interface for obtaining constant values, thereby improving code modularity and reusability.

However, please address the following static analysis hints to improve the code quality:

  • Add a description of the return value of the function.
  • Add a description of all parameters of the function.
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 118-118: src/cf/CommonModules/пбп_ОбщегоНазначенияПовтИсп/Ext/Module.bsl#L118
Добавьте описание возвращаемого значения функции


[warning] 118-118: src/cf/CommonModules/пбп_ОбщегоНазначенияПовтИсп/Ext/Module.bsl#L118
Необходимо добавить описание всех параметров метода

ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_МетодыИнтеграции") Тогда
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияМетодыИнтеграции();
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ИнтеграционныеПотоки") Тогда
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияИнтеграционныеПотоки();
Copy link

Choose a reason for hiding this comment

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

Fix the line length issue.

The static analysis tool reports that the length of the line at 37 is 123, which exceeds the maximum allowed length of 120.

To improve code readability and maintainability, please break the long line into multiple lines. For example:

ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ИнтеграционныеПотоки") Тогда
	ТЗПредопределенныхЗначений = 
		пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияИнтеграционныеПотоки();
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 37-37: src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl#L37
Длина строки 123 превышает максимально допустимую 120

@@ -0,0 +1,418 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
Copy link

Choose a reason for hiding this comment

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

Reminder: Add tests.

The TODO comment indicates that tests are missing.

Do you want me to generate the unit testing code or open a GitHub issue to track this task?

@@ -141,7 +141,7 @@

УстановитьПривилегированныйРежим(Истина);

СтруктураНастроек = пбп_ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(НастройкаИнтеграции, "Сервер, Порт");
СтруктураНастроек = пбп_ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(НастройкаИнтеграции, "СтрокаПодключения, Порт");
Copy link

Choose a reason for hiding this comment

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

Address warnings from static analysis tools.

The following warnings from static analysis tools should be addressed:

  1. Line length warnings:

    • Lines 144, 165, 440, and 446 exceed the maximum allowed limit of 120 characters.

    Wrap these long lines to adhere to the line length limit and improve code readability.

  2. Missing documentation warnings:

    • Function ПолучитьСтруктуруПараметровВхода is missing documentation for its parameters and return value.

    Add missing documentation for the function parameters and return value to improve code maintainability.

Also applies to: 165-165, 215-215, 440-440, 446-446

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

[warning] 144-144: src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl#L144
Длина строки 125 превышает максимально допустимую 120

Copy link

Passed

Analysis Details

29 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 29 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

Outside diff range and nitpick comments (2)
src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (2)

Line range hint 229-235: LGTM with suggestions

  1. The changes to use the new terminology ФорматИнтеграции instead of ФорматЗапросаИнтеграции are approved.

  2. Consider adding the Знач modifier to the ТекстСообщенияИнтеграции parameter to indicate that it is passed by value.

-Функция ОтформатироватьСообщениеИнтеграции(ТекстСообщенияИнтеграции)
+Функция ОтформатироватьСообщениеИнтеграции(Знач ТекстСообщенияИнтеграции)
  1. The line length exceeds the maximum allowed limit of 120 characters. Consider breaking the long line into multiple lines to improve readability and adhere to the coding style guidelines.
-Если Объект.ФорматИнтеграции = Перечисления.пбп_ФорматыИнтеграций.XML И СтрНайти(ТекстСообщенияИнтеграции, "xml") <> 0 Тогда
+Если Объект.ФорматИнтеграции = Перечисления.пбп_ФорматыИнтеграций.XML 
+    И СтрНайти(ТекстСообщенияИнтеграции, "xml") <> 0 Тогда
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 200-200: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L200
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


[warning] 229-229: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L229
Установите модификатор "Знач" для параметра ТекстСообщенияИнтеграции метода ОтформатироватьСообщениеИнтеграции


[warning] 231-231: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L231
Длина строки 125 превышает максимально допустимую 120


321-323: LGTM with a suggestion

  1. The changes to use the new terminology ВходящееСообщение and ИсходящееСообщение instead of ЗапросВходящий and ЗапросИсходящий are approved.

  2. The line lengths exceed the maximum allowed limit of 120 characters. Consider breaking the long lines into multiple lines to improve readability and adhere to the coding style guidelines.

-Элементы.ЗапросИсходящий.Документ.defaultView.start(ОтформатироватьСообщениеИнтеграции(Объект.ИсходящееСообщение), "nerd");
+Элементы.ЗапросИсходящий.Документ.defaultView.start(
+    ОтформатироватьСообщениеИнтеграции(Объект.ИсходящееСообщение), 
+    "nerd"
+);

-Элементы.ЗапросВходящий.Документ.defaultView.start(ОтформатироватьСообщениеИнтеграции(Объект.ВходящееСообщение), "nerd");
+Элементы.ЗапросВходящий.Документ.defaultView.start(
+    ОтформатироватьСообщениеИнтеграции(Объект.ВходящееСообщение), 
+    "nerd"
+);
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 323-323: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L323
Длина строки 123 превышает максимально допустимую 120


[warning] 321-321: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L321
Длина строки 125 превышает максимально допустимую 120

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 816f5c6 and 804f653.

Files selected for processing (13)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl (3 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (13 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (4 hunks)
  • src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl (6 hunks)
  • src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (5 hunks)
  • src/cf/CommonModules/пбп_РегламентныеЗаданияСервер/Ext/Module.bsl (2 hunks)
Files skipped from review as they are similar to previous changes (5)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl
  • src/cf/Catalogs/пбп_ТипыИнтеграций/Ext/ManagerModule.bsl
  • src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl
  • src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl
Additional context used
GitHub Check: 1C: Project SubSystems Library Sonarqube Results
src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl

[warning] 46-46: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L46
Удалите неиспользуемую переменную РезультатОбработки

src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl

[warning] 97-97: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L97
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 87-87: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L87
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 60-60: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L60
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 92-92: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L92
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 66-66: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L66
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 73-73: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L73
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 101-101: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L101
Нельзя использовать латинские и кириллические символы в одном идентификаторе

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl

[warning] 100-100: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl#L100
Уберите инициализацию параметров метода "Вставить" вложенными методами

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl

[warning] 146-146: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L146
Необходимо избавиться от многократного использования строкового литерала "Kafka"


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


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

src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl

[warning] 200-200: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L200
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


[warning] 229-229: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L229
Установите модификатор "Знач" для параметра ТекстСообщенияИнтеграции метода ОтформатироватьСообщениеИнтеграции


[warning] 231-231: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L231
Длина строки 125 превышает максимально допустимую 120


[warning] 323-323: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L323
Длина строки 123 превышает максимально допустимую 120


[warning] 321-321: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L321
Длина строки 125 превышает максимально допустимую 120

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl

[warning] 206-206: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L206
Необходимо избавиться от многократного использования строкового литерала "ru = 'Конечная точка'"

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl

[notice] 66-66: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L66
Избавьтесь от избыточного обращения внутри модуля через его имя или псевдоним ЭтотОбъект


[warning] 172-172: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L172
Длина метода "УстановитьСвойстваЭлементов" равна 202, что больше установленного лимита в 200 строк


[warning] 445-445: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L445
Установите модификатор "Знач" для параметра Результат метода ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере


[warning] 181-181: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L181
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 275-275: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L275
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


[warning] 275-275: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L275
Необходимо избавиться от многократного использования строкового литерала "ru = 'Сервер'"

Additional comments not posted (46)
src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl (2)

38-49: Skipped generating a similar comment as the existing comment from the previous review is still valid.

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

[warning] 46-46: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L46
Удалите неиспользуемую переменную РезультатОбработки


31-37: Add a description for the procedure.

The procedure is missing a description. Add a description to document its purpose and usage. This will improve the maintainability and readability of the code.

Apply this diff to add a description:

+// Выполняет пользовательскую функцию файловых обменов с указанными параметрами.
+//
+// Параметры:
+//  НастройкаИнтеграции - СправочникСсылка.пбп_НастройкиИнтеграции - настройка интеграции интеграционного
+//   потока, для которого выполняется регламентное задание.
+//  ПользовательскаяФункция - СправочникСсылка.пбп_ПользовательскиеФункции - выполняемая пользовательская функция.
 Процедура ВыполнениеПользовательскихФункцийФайловыхОбменов(НастройкаИнтеграции, ПользовательскаяФункция) Экспорт

Likely invalid or redundant comment.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (1)

24-45: LGTM!

The code changes are approved.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl (4)

23-40: LGTM!

The code changes are approved.


47-63: LGTM!

The code changes are approved.


66-94: LGTM!

The code changes are approved.


97-123: LGTM!

The code changes are approved.

The static analysis warning for line 100 is a false positive and can be ignored. The code is not using nested methods to initialize the parameters of the "Вставить" method. It is using a ternary operator to conditionally set the value of the "ИзмененВручную" parameter, which is a valid and concise way to initialize the parameter.

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

[warning] 100-100: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl#L100
Уберите инициализацию параметров метода "Вставить" вложенными методами

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (4)

84-95: LGTM!

The code changes are approved.


107-114: LGTM!

The code changes are approved.


134-161: LGTM!

The code changes are approved.

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

[warning] 146-146: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L146
Необходимо избавиться от многократного использования строкового литерала "Kafka"


254-259: LGTM!

The code changes are approved.

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

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


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

src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (10)

33-33: LGTM!

The changes to invoke the new procedure УстановитьСвойстваЭлементов() at the beginning of ПриСозданииНаСервере are approved.


70-73: LGTM!

The changes to use the new terminology ФорматИнтеграции instead of ФорматЗапросаИнтеграции are approved.


92-93: LGTM!

The changes to use the new terminology ФорматИнтеграции instead of ФорматЗапросаИнтеграции are approved.


104-105: LGTM!

The changes to use the new terminology ФорматИнтеграции instead of ФорматЗапросаИнтеграции are approved.


120-121: LGTM!

The changes to use the new terminology ФорматИнтеграции instead of ФорматЗапросаИнтеграции are approved.


139-140: LGTM!

The changes to use the new terminology ФорматИнтеграции instead of ФорматЗапросаИнтеграции are approved.


163-165: LGTM!

The changes to use the new terminology ВходящееСообщение and ИсходящееСообщение instead of ЗапросВходящий and ЗапросИсходящий are approved.


179-218: LGTM!

The new procedure УстановитьСвойстваЭлементов is approved. It correctly sets the properties of elements based on the integration flow type, enhancing the control flow and logic of the integration process.

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

[warning] 200-200: src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L200
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


220-226: LGTM!

The new function НаправлениеИнтеграцииВыгружено is approved. It correctly determines if the integration direction is exported based on the exchange status.


Line range hint 287-296: LGTM!

The changes to use the new terminology ВходящееСообщение and ИсходящееСообщение instead of ЗапросВходящий and ЗапросИсходящий are approved.

Also applies to: 304-312

src/cf/CommonModules/пбп_РегламентныеЗаданияСервер/Ext/Module.bsl (3)

305-324: LGTM!

The code changes are approved.


326-337: LGTM!

The code changes are approved.


265-269: LGTM, but verify the conditional check.

The code changes are approved.

However, ensure that this change is thoroughly tested to confirm that the conditional check is working as expected and that the correct function is called based on the existence of the standard subsystem library.

Run the following script to verify the conditional check:

Verification successful

Conditional Check Verified

The conditional logic in the code correctly calls the appropriate function based on the existence of the standard subsystem library. Both functions, УдалитьРегламентноеЗаданиеСИспользованиемКэша and УдалитьРегламентноеЗаданиеБезКэша, are present and used as expected.

  • УдалитьРегламентноеЗаданиеСИспользованиемКэша is defined and used.
  • УдалитьРегламентноеЗаданиеБезКэша is defined and used.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the conditional check is working as expected.

# Test 1: Search for the usage of `УдалитьРегламентноеЗаданиеСИспользованиемКэша` function.
#         Expect: At least one occurrence if the standard subsystem library exists.
rg --type bsl -A 5 $'УдалитьРегламентноеЗаданиеСИспользованиемКэша'

# Test 2: Search for the usage of `УдалитьРегламентноеЗаданиеБезКэша` function.
#         Expect: At least one occurrence if the standard subsystem library does not exist.
rg --type bsl -A 5 $'УдалитьРегламентноеЗаданиеБезКэша'

Length of output: 729


Script:

#!/bin/bash
# Description: Verify the conditional check is working as expected by searching for the functions without specifying the file type.

# Test 1: Search for the usage of `УдалитьРегламентноеЗаданиеСИспользованиемКэша` function.
rg -F -A 5 'УдалитьРегламентноеЗаданиеСИспользованиемКэша'

# Test 2: Search for the usage of `УдалитьРегламентноеЗаданиеБезКэша` function.
rg -F -A 5 'УдалитьРегламентноеЗаданиеБезКэша'

Length of output: 3036

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl (11)

23-28: LGTM!

The procedure looks good. It's preparing the form by calling two other procedures.


31-37: LGTM!

The procedure looks good. It's setting a flag on the current object if it's modified and the identifier is not empty.


40-49: LGTM!

The procedure looks good. It's creating or updating the scheduled job based on the ИспользоватьРегламентноеЗадание flag.


52-64: LGTM!

The procedure looks good. It's prompting the user to save the catalog item if the reference is not filled in, setting the visibility of the schedule setup link, and updating the scheduled job on the server.


67-71: LGTM!

The procedure looks good. It's setting element properties by calling УстановитьСвойстваЭлементов when the integration setting is changed.


74-86: LGTM!

The procedure looks good. It's setting selection parameters for the integration setting if the identifier is empty by adding a new selection parameter and assigning it to the ПараметрыВыбора property of the passed element.


89-100: LGTM!

The procedure looks good. It's populating selection data for the integration setting if the identifier is empty by loading values into a value list and assigning it to the ДанныеВыбора parameter.


107-118: LGTM!

The procedure looks good. It's opening a dialog to configure the schedule of the scheduled job if the reference is filled in.


121-130: LGTM!

The procedure looks good. It's setting the visibility and availability of the scheduled job settings group based on the visibility of the schedule settings and whether the reference is filled in.


137-149: LGTM!

The procedure looks good. It's preparing the form on the server by setting the visibility of the scheduled job settings group and retrieving the scheduled job if the reference is filled in and the schedule settings are visible.


277-290: LGTM!

The procedure looks good. It's setting the visibility of form elements to the appropriate values for the file exchange integration type.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (11)

26-27: LGTM!

The code changes are approved.


49-56: LGTM!

The code changes are approved.


59-70: LGTM!

The code changes are approved.

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

[notice] 66-66: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L66
Избавьтесь от избыточного обращения внутри модуля через его имя или псевдоним ЭтотОбъект


95-99: LGTM!

The code changes are approved.


102-117: LGTM!

The code changes are approved.


152-165: LGTM!

The code changes are approved.


381-396: LGTM!

The code changes are approved.


399-410: LGTM!

The code changes are approved.


413-422: LGTM!

The code changes are approved.


455-461: LGTM!

The code changes are approved.


66-66: Remove the redundant module reference

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

[notice] 66-66: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L66
Избавьтесь от избыточного обращения внутри модуля через его имя или псевдоним ЭтотОбъект

Comment on lines +46 to +47
РезультатОбработки = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
ПользовательскаяФункция, ПараметрыФункции);
Copy link

Choose a reason for hiding this comment

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

Remove the unused variable РезультатОбработки.

The variable РезультатОбработки is declared but never used after being assigned a value. Remove this variable as the return value from пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами is not needed.

Apply this diff to remove the unused variable:

-РезультатОбработки = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
+пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
	ПользовательскаяФункция, ПараметрыФункции);
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
РезультатОбработки = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
ПользовательскаяФункция, ПараметрыФункции);
пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(
ПользовательскаяФункция, ПараметрыФункции);
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 46-46: src/cf/CommonModules/пбп_МетодыРегламентныхЗаданийСервер/Ext/Module.bsl#L46
Удалите неиспользуемую переменную РезультатОбработки

Comment on lines 47 to 104
Процедура ПередЗаписью(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
СтрокаПодключения = "";
Порт = "";
ВнешняяКомпонента = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИспользоватьПользовательскиеФункции = Ложь;
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.RESTAPI
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ИспользоватьПользовательскиеФункции = Ложь;
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИспользоватьПользовательскиеФункции = Ложь;
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ИспользоватьПользовательскиеФункции = Ложь;
Иначе
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
КонецЕсли;

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

Choose a reason for hiding this comment

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

Fix the identifier naming issues.

The code changes are approved.

However, please address the following issues identified by static analysis:

  • Line 60: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.
  • Line 66: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.
  • Line 73: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.
  • Line 87: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.
  • Line 92: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.
  • Line 97: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.
  • Line 101: Mixing Latin and Cyrillic characters in identifier ИмяCOMОбъекта.

Apply this diff to fix the identifier naming issues:

-		ИмяCOMОбъекта		= "";
+		ИмяCOMОбъекта		= "";
-		ИмяCOMОбъекта		= "";
+		ИмяCOMОбъекта		= "";
-		ИмяCOMОбъекта		= "";
+		ИмяCOMОбъекта		= "";
-		ИмяCOMОбъекта		= Неопределено;
+		ИмяCOMОбъекта		= Неопределено;
-		ИмяCOMОбъекта		= Неопределено;
+		ИмяCOMОбъекта		= Неопределено;
-		ИмяCOMОбъекта		= Неопределено;
+		ИмяCOMОбъекта		= Неопределено;
-		ИмяCOMОбъекта		= Неопределено;
+		ИмяCOMОбъекта		= Неопределено;
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
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
СтрокаПодключения = "";
Порт = "";
ВнешняяКомпонента = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИспользоватьПользовательскиеФункции = Ложь;
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.RESTAPI
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ИспользоватьПользовательскиеФункции = Ложь;
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИспользоватьПользовательскиеФункции = Ложь;
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ИспользоватьПользовательскиеФункции = Ложь;
Иначе
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
СтрокаПодключения = "";
Порт = "";
ВнешняяКомпонента = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИмяCOMОбъекта = "";
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИспользоватьПользовательскиеФункции = Ложь;
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.RESTAPI
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
ВнешняяКомпонента = Неопределено;
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ИспользоватьПользовательскиеФункции = Ложь;
ИмяФайлаВнешнейКомпоненты = "";
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ТипАвторизации = Перечисления.пбп_ТипыАвторизации.ПустаяСсылка();
ИспользоватьПользовательскиеФункции = Ложь;
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
ИспользоватьПользовательскиеФункции = Ложь;
Иначе
УчетнаяЗапись = Неопределено;
ИмяCOMОбъекта = Неопределено;
КонецЕсли;
КонецПроцедуры
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 97-97: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L97
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 87-87: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L87
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 60-60: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L60
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 92-92: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L92
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 66-66: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L66
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 73-73: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L73
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 101-101: src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl#L101
Нельзя использовать латинские и кириллические символы в одном идентификаторе

НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;

НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Kafka";
Copy link

Choose a reason for hiding this comment

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

Extract the repeated string literal into a named constant.

The static analysis tool hints at repeated use of the string literal "Kafka".

To improve code quality, extract the repeated string literal into a named constant:

// Named constant for the string literal
Const KAFKA_IDENTIFIER = "Kafka"; 

Then, use this named constant in place of the string literal throughout the code.

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

[warning] 146-146: src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl#L146
Необходимо избавиться от многократного использования строкового литерала "Kafka"

@@ -211,6 +251,12 @@

ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);

Результат.Колонки.Добавить("ИнтегрируемаяСистема" , Новый ОписаниеТипов("СправочникСсылка.пбп_ИнтегрируемыеСистемы"));
Результат.Колонки.Добавить("ТипИнтеграции" , Новый ОписаниеТипов("СправочникСсылка.пбп_ТипыИнтеграций"));
Результат.Колонки.Добавить("СтрокаПодключения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(200));
Copy link

Choose a reason for hiding this comment

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

Replace magic numbers with named constants.

The static analysis tool hints at using named constants instead of magic numbers "200" and "100".

To improve code quality, replace the magic numbers with named constants that convey their meaning:

// Named constants for magic numbers
Const MAX_CONNECTION_STRING_LENGTH = 200;
Const MAX_COM_OBJECT_NAME_LENGTH = 100;

Then, use these named constants in place of the magic numbers:

Результат.Колонки.Добавить("СтрокаПодключения", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(MAX_CONNECTION_STRING_LENGTH));
Результат.Колонки.Добавить("ИмяCOMОбъекта", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(MAX_COM_OBJECT_NAME_LENGTH));

Also applies to: 258-258

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

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

Comment on lines 152 to 274
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Функция / запрос'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.RESTAPI Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Ресурс'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Параметры запроса / URL'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Конечная точка'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Параметры запроса'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Функция'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Команда'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Аргументы команды'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);

ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Конечная точка'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Ложь);

Иначе
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Конечная точка'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Параметры'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, МетодЗапроса, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВхода, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
КонецЕсли;
КонецЕсли;

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

Choose a reason for hiding this comment

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

LGTM, but consider refactoring.

The procedure looks good, correctly setting the visibility and other properties of form elements based on the integration type.

However, the procedure is quite large and complex, with many conditional branches. Consider refactoring it into smaller, more focused procedures for each integration type to improve readability and maintainability.

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

[warning] 206-206: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L206
Необходимо избавиться от многократного использования строкового литерала "ru = 'Конечная точка'"

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Конечная точка'");
Copy link

Choose a reason for hiding this comment

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

Consider extracting the duplicated string literal into a constant or variable.

The string literal "ru = 'Конечная точка'" is used multiple times in the УстановитьСвойстваЭлементов procedure, at lines 206, 246, and 258.

To avoid duplication and improve maintainability, consider extracting this string literal into a constant or variable.

For example, you could define a constant at the beginning of the module:

Const КонечнаяТочка = "ru = 'Конечная точка'";

And then replace the string literal with the constant:

Элементы.ТочкаВхода.Заголовок = КонечнаяТочка;
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 206-206: src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L206
Необходимо избавиться от многократного использования строкового литерала "ru = 'Конечная точка'"

Comment on lines 172 to 378
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроек, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);

ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда

Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Сервер'");

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроек, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);

ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда

Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Имя компоненты'");

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроек, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);

ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда

Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Исполняемый файл'");

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроек, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);

ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда

Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Сервер'");

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроек, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);

Иначе
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключения, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИспользоватьПользовательскиеФункции, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроек, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);
КонецЕсли;
КонецЕсли;

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

Choose a reason for hiding this comment

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

Approved with notes

The procedure is quite long and contains repeated code blocks for setting up UI elements for different integration types. However, extracting these blocks into separate procedures may not significantly improve readability due to the specifics of each case. The use of the helper procedure пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы is a good practice to avoid code duplication.

Rename the identifier to use only Cyrillic characters

The use of both Latin and Cyrillic characters in the identifier ИмяCOMОбъекта violates the naming convention.

Rename the identifier to use only Cyrillic characters, for example:

-ИмяCOMОбъекта
+ИмяВнешнегоОбъекта

Extract the repeated string literal into a constant

The string literal "ru = 'Сервер'" is repeated multiple times in the procedure.

Extract it into a constant:

Const ЗаголовокСервер = "ru = 'Сервер'";

Then replace the occurrences of the literal with the constant:

-Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Сервер'");
+Элементы.СтрокаПодключения.Заголовок = НСтр(ЗаголовокСервер);  
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 172-172: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L172
Длина метода "УстановитьСвойстваЭлементов" равна 202, что больше установленного лимита в 200 строк


[warning] 181-181: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L181
Нельзя использовать латинские и кириллические символы в одном идентификаторе


[warning] 275-275: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L275
Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода


[warning] 275-275: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L275
Необходимо избавиться от многократного использования строкового литерала "ru = 'Сервер'"

Comment on lines 425 to 450
Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпоненты(
Результат, Знач ДополнительныеПараметры) Экспорт

Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;

Если Результат.ИзмененВручную Тогда
Объект.ИмяФайлаВнешнейКомпоненты = Результат.ИмяФайла;
ВнешняяКомпонентаЗагруженаИзФайла = Истина;

ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(Результат, ДополнительныеПараметры);

Модифицированность = Истина;
КонецЕсли;

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

&НаСервере
Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(
Результат, Знач ДополнительныеПараметры)

АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище(Результат.ДвоичныеДанные, Новый УникальныйИдентификатор);

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

Copy link

Choose a reason for hiding this comment

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

Approved with a note

The procedures correctly handle the external component selection and update the object state accordingly.

Add the Знач modifier to the parameter

The Результат parameter of the ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере procedure should have the Знач modifier to ensure the parameter value is not modified inside the procedure.

Add the modifier as follows:

-Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(Результат, Знач ДополнительныеПараметры)
+Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(Знач Результат, Знач ДополнительныеПараметры)
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
Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпоненты(
Результат, Знач ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.ИзмененВручную Тогда
Объект.ИмяФайлаВнешнейКомпоненты = Результат.ИмяФайла;
ВнешняяКомпонентаЗагруженаИзФайла = Истина;
ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(Результат, ДополнительныеПараметры);
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(
Результат, Знач ДополнительныеПараметры)
АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище(Результат.ДвоичныеДанные, Новый УникальныйИдентификатор);
КонецПроцедуры
Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпоненты(
Результат, Знач ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.ИзмененВручную Тогда
Объект.ИмяФайлаВнешнейКомпоненты = Результат.ИмяФайла;
ВнешняяКомпонентаЗагруженаИзФайла = Истина;
ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(Результат, ДополнительныеПараметры);
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере(
Знач Результат, Знач ДополнительныеПараметры)
АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище(Результат.ДвоичныеДанные, Новый УникальныйИдентификатор);
КонецПроцедуры
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

[warning] 445-445: src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L445
Установите модификатор "Знач" для параметра Результат метода ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпонентыНаСервере

Copy link

Passed

Analysis Details

28 Issues

  • Bug 0 Bugs
  • Vulnerability 1 Vulnerability
  • Code Smell 27 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

Passed

Analysis Details

6 Issues

  • Bug 0 Bugs
  • Vulnerability 1 Vulnerability
  • Code Smell 5 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Outside diff range and nitpick comments (2)
src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl (1)

Line range hint 36-71: LGTM! Consider using a constant for the parameter name.

The changes to the function are approved. They align with the shift in focus from REST method parameters to integration flow parameters and reflect the updated data structure.

Consider replacing the hardcoded string "ИнтеграционныйПоток" with a constant for better maintainability.

+Const ИнтеграционныйПотокПараметр = "ИнтеграционныйПоток";
...
-	Запрос.УстановитьПараметр("ИнтеграционныйПоток", ИнтеграционныйПоток);
+	Запрос.УстановитьПараметр(ИнтеграционныйПотокПараметр, ИнтеграционныйПоток);
src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)

254-258: LGTM, but consider extracting magic numbers into named constants.

The code changes that add the new columns to support the new integration methods look good.

However, please consider the following suggestion to improve code quality:

Extract the magic numbers "200" and "100" into named constants to improve readability and maintainability. For example:

// Named constants for magic numbers
Const MAX_CONNECTION_STRING_LENGTH = 200;
Const MAX_COM_OBJECT_NAME_LENGTH = 100;

...

Результат.Колонки.Добавить("СтрокаПодключения", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(MAX_CONNECTION_STRING_LENGTH));
...
Результат.Колонки.Добавить("ИмяCOMОбъекта", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(MAX_COM_OBJECT_NAME_LENGTH));
Tools
GitHub Check: 1C: Project SubSystems Library Sonarqube Results

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


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

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 804f653 and d29e388.

Files selected for processing (10)
  • .bsl-language-server.json (1 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl (3 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (13 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (6 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (4 hunks)
  • src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (5 hunks)
Files skipped from review as they are similar to previous changes (5)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаЭлемента/Ext/Form/Module.bsl
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl
  • src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl
Additional context used
GitHub Check: 1C: Project SubSystems Library Sonarqube Results
src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl

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


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

Additional comments not posted (26)
.bsl-language-server.json (1)

12-15: LGTM!

The new configuration section LatinAndCyrillicSymbolInWord is a valuable addition that enhances the functionality of the language server by allowing more nuanced handling of words that contain both Latin and Cyrillic symbols. This improves the language server's adaptability to mixed-language contexts.

The excludeWords property correctly lists various terms related to XML, JSON, and other technical objects that should be excluded from certain processing or checks related to the mixing of Latin and Cyrillic symbols in a word.

The allowTrailingPartsInAnotherLanguage property set to true appropriately permits trailing parts of words to be in a different language.

These changes align with the AI-generated summary and the PR objectives.

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ManagerModule.bsl (1)

Line range hint 74-107: Skipped review.

This function is not part of the changes in this diff.

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (5)

84-95: LGTM!

The code changes that add the new integration systems look good.


107-109: LGTM!

The renaming of the function and the corresponding changes look good.


113-114: LGTM!

The code changes that update the integration method properties look good.


135-161: LGTM!

The code changes that add the new integration settings look good. The use of НайтиПоРеквизиту to find the corresponding integrated system and the setting of the ТипИнтеграции and ТипАвторизации properties using references to existing directories and enumerations is the correct approach.


238-238: LGTM!

The renaming of the function looks good.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml (8)

10-10: LGTM!

The event changes are approved:

  • Adding the OnReadAtServer event allows additional processing when reading data from the server.
  • Renaming OnWriteAtServer to BeforeWriteAtServer clarifies that the event is triggered before writing data to the server.

Also applies to: 12-12


49-57: LGTM!

The new input field ТипИнтеграции is approved. It enhances the form's functionality by allowing users to specify the integration type and handle changes to the selected type.


82-89: LGTM!

The changes to the input field are approved:

  • Renaming Сервер to СтрокаПодключения provides a more precise description of the field's purpose.
  • Adding the StartChoice event allows custom handling of the selection process initiation, enhancing user interaction capabilities.

100-104: LGTM!

The new input fields are approved. They enhance the form's functionality by allowing users to specify additional settings:

  • УчетнаяЗапись for specifying the account.
  • ТипАвторизации for specifying the authorization type.
  • ИмяCOMОбъекта for specifying the COM object name.

Also applies to: 106-111, 112-117


118-124: LGTM!

The new checkbox field ИспользоватьПользовательскиеФункции is approved. It enhances the form's functionality by allowing users to enable or disable the usage of custom functions.


125-129: LGTM!

The new button ПодключитьВнешнююКомпоненту is approved. It provides users with a new action option to connect an external component from a file.


269-283: LGTM!

The new attributes are approved. They expand the metadata associated with the form, allowing to store and manage additional information related to external components:

  • АдресВнешнейКомпоненты represents the address of the external component.
  • ВнешняяКомпонентаЗагруженаИзФайла indicates whether the external component is loaded from a file.

Also applies to: 284-294


301-301: LGTM!

The command changes are approved. They enhance the form's functionality:

  • Changing the title of ДобавитьОбщиеНастройки to "Параметры аутентификации" indicates a shift in focus towards authentication-related settings.
  • Adding the new command ПодключитьВнешнююКомпонентуИзФайла provides users with a new action option to connect an external component from a file.

Also applies to: 327-341

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (11)

26-27: LGTM!

The changes to the ПриСозданииНаСервере procedure are approved. Calling the УстановитьСвойстваЭлементов procedure during form creation improves the initialization process.


49-56: LGTM!

The new ПриЧтенииНаСервере procedure is approved. It correctly retrieves the external component data and stores it in a temporary storage when the object is read.


59-70: LGTM!

The new ПередЗаписьюНаСервере procedure is approved. It correctly saves the external component data and sets the ИзмененВручную flag before the object is written.


95-99: LGTM!

The changes to the ТипИнтеграцииПриИзменении procedure are approved. Calling the УстановитьСвойстваЭлементов procedure when the integration type is changed improves the user experience by dynamically adjusting the form.


102-117: LGTM!

The new СтрокаПодключенияНачалоВыбора procedure is approved. It correctly opens a dialog to select a directory for the connection string and handles the result, improving the user experience.


152-165: LGTM!

The new ПодключитьВнешнююКомпонентуИзФайла procedure is approved. It correctly opens a form to select an external component file and handles the result, improving the functionality.


172-348: Approved with notes

The УстановитьСвойстваЭлементов procedure is quite long and contains repeated code blocks for setting up UI elements for different integration types. However, extracting these blocks into separate procedures may not significantly improve readability due to the specifics of each case. The use of the helper procedure пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы is a good practice to avoid code duplication.


351-366: LGTM!

The new УстановитьВидимостьЭлементовДляТипаФайловыеОбмены procedure is approved. It correctly sets the visibility of form elements for the file exchange integration type, improving the user experience.


369-380: LGTM!

The new УстановитьВидимостьЭлементовДляОстальныхТипов procedure is approved. It correctly sets the visibility of form elements for other integration types, improving the user experience.


383-392: LGTM!

The new ОбработчикВыбораФайловогоКаталогаЗавершениеПослеВыбораВДиалоге procedure is approved. It correctly handles the result of selecting a directory in a dialog and sets the connection string.


395-411: LGTM!

The new ОбработчикПодключенияВнешнейКомпонентыЗавершениеПослеВыбораКомпоненты procedure is approved. It correctly handles the result of selecting an external component and updates the object state.

Comment on lines 269 to 338
Элементы.СтрокаПодключения.Заголовок = СерверСтрока;

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Имя компоненты'");

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Исполняемый файл'");

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
Элементы.СтрокаПодключения.Заголовок = СерверСтрока;

УстановитьВидимостьЭлементовДляОстальныхТипов();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);
Иначе
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключения, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИспользоватьПользовательскиеФункции, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
Copy link

Choose a reason for hiding this comment

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

Extract the repeated string literal into a constant

The string literal "ru = 'Сервер'" is repeated multiple times in the procedure.

Extract it into a constant:

Const ЗаголовокСервер = "ru = 'Сервер'";

Then replace the occurrences of the literal with the constant:

-Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Сервер'");
+Элементы.СтрокаПодключения.Заголовок = НСтр(ЗаголовокСервер);  

Comment on lines 181 to 200
ИмяCOMОбъекта = "ИмяCOMОбъекта";
ИспользоватьПользовательскиеФункции = "ИспользоватьПользовательскиеФункции";
СписокНастроекСтрока = "СписокНастроек";
ПодключитьВнешнююКомпоненту = "ПодключитьВнешнююКомпоненту";

СерверСтрока = НСтр("ru = 'Сервер'");

УстанавливаемоеСвойство = "Видимость";

Если Не ЗначениеЗаполнено(Объект.ТипИнтеграции) Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Каталог'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ГруппаОсновныеНастройки, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
Copy link

Choose a reason for hiding this comment

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

Rename the identifier to use only Cyrillic characters

The use of both Latin and Cyrillic characters in the identifier ИмяCOMОбъекта violates the naming convention.

Rename the identifier to use only Cyrillic characters, for example:

-ИмяCOMОбъекта
+ИмяВнешнегоОбъекта
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
ИмяCOMОбъекта = "ИмяCOMОбъекта";
ИспользоватьПользовательскиеФункции = "ИспользоватьПользовательскиеФункции";
СписокНастроекСтрока = "СписокНастроек";
ПодключитьВнешнююКомпоненту = "ПодключитьВнешнююКомпоненту";
СерверСтрока = НСтр("ru = 'Сервер'");
УстанавливаемоеСвойство = "Видимость";
Если Не ЗначениеЗаполнено(Объект.ТипИнтеграции) Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Каталог'");
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ГруппаОсновныеНастройки, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяCOMОбъекта, УстанавливаемоеСвойство, Ложь);
ИмяВнешнегоОбъекта = "ИмяCOMОбъекта";
ИспользоватьПользовательскиеФункции = "ИспользоватьПользовательскиеФункции";
СписокНастроекСтрока = "СписокНастроек";
ПодключитьВнешнююКомпоненту = "ПодключитьВнешнююКомпоненту";
СерверСтрока = НСтр("ru = 'Сервер'");
УстанавливаемоеСвойство = "Видимость";
Если Не ЗначениеЗаполнено(Объект.ТипИнтеграции) Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Каталог'");
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ГруппаОсновныеНастройки, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяВнешнегоОбъекта, УстанавливаемоеСвойство, Ложь);

Copy link

Passed

Analysis Details

5 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 5 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Outside diff range and nitpick comments (2)
src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (2)

Line range hint 1-1: TODO: Add tests

This comment indicates that unit tests are currently missing for this module. Adding tests is an important best practice that helps ensure code correctness and prevent regressions. Please prioritize writing unit tests to improve the overall quality and maintainability of this code.

Let me know if you would like any help with writing the unit tests for this module. I'd be happy to assist!


Line range hint 13-25: Reconsider the flat $20 service fee added to discounted bills

The discounts are calculated correctly per the business rules. However, adding a flat $20 service fee to any discounted bill can lead to some unexpected negative experiences for customers:

  • For smaller bills, the $20 fee may exceed the discount amount. For example, a $100 bill with a 10% loyalty discount would become $110 after the service fee, which is more than the original undiscounted amount!
  • Customers would be frustrated to see a higher total even after a "discount" was applied.

I recommend revisiting the service fee logic to avoid this. Some alternatives:

  • Make the fee a percentage of the bill instead of a flat amount
  • Only add the fee if the discounted total is above some minimum amount
  • Deduct the fee from the bill before applying the discount percent

The goal should be that the loyalty discounts always result in a lower final bill than without the discount. This provides a better, less confusing experience for loyal customers.

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between d29e388 and 4c2df6f.

Files selected for processing (8)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (1 hunks)
  • src/cf/Configuration.xml (2 hunks)
  • src/cf/Roles/пбп_РедактированиеНастроекИнтеграции/Ext/Rights.xml (3 hunks)
  • src/cf/Roles/пбп_РедактированиеПользовательскихФункций/Ext/Rights.xml (3 hunks)
  • src/cf/Roles/пбп_ЧтениеКонстантыИспользоватьПользовательскиеФункции.xml (1 hunks)
  • src/cf/Roles/пбп_ЧтениеКонстантыИспользоватьПользовательскиеФункции/Ext/Rights.xml (1 hunks)
Files skipped from review due to trivial changes (2)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form/Module.bsl
  • src/cf/Roles/пбп_ЧтениеКонстантыИспользоватьПользовательскиеФункции.xml
Files skipped from review as they are similar to previous changes (3)
  • src/cf/Configuration.xml
  • src/cf/Roles/пбп_РедактированиеНастроекИнтеграции/Ext/Rights.xml
  • src/cf/Roles/пбп_РедактированиеПользовательскихФункций/Ext/Rights.xml
Additional comments not posted (8)
src/cf/Roles/пбп_ЧтениеКонстантыИспользоватьПользовательскиеФункции/Ext/Rights.xml (3)

1-2: LGTM!

The XML declaration and root element are correctly defined.


3-5: LGTM!

The Rights element attributes are correctly defined.


6-12: LGTM!

The object element correctly defines the read right for the constant пбп_ИспользоватьПользовательскиеФункции.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаЗагрузкиВнешнейКомпоненты/Ext/Form.xml (5)

1-2: LGTM!

The XML declaration and root Form element are correctly defined.


3-18: LGTM!

The AutoCommandBar element and its child Button elements are correctly defined.


22-186: LGTM!

The form's main content, including the UsualGroup, RadioButtonField, InputField, and Button elements, is correctly defined and well-structured.


188-244: LGTM!

The Attributes element and its child Attribute elements are correctly defined.


245-316: LGTM!

The Commands element and its child Command elements are correctly defined.

Copy link

Passed

Analysis Details

5 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 5 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

<CommonTemplate>пбп_BSLEditor</CommonTemplate>
<CommonTemplate>пбп_JSONEditor</CommonTemplate>
<CommonTemplate>пбп_XMLEditor</CommonTemplate>
<CommonTemplate>пбп_SimpleKafkaAdapter</CommonTemplate>
Copy link
Member

Choose a reason for hiding this comment

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

По всем типам метаданных сделать сортировку по наименованию

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
Copy link
Member

Choose a reason for hiding this comment

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

Добавить роль в нужную подсистему. В целом проверить все объекты не входящие в подсистемы и разместить их в нужные

@@ -139,6 +140,14 @@
|ИТОГИ ПО
| Ссылка ИЕРАРХИЯ";

Если пбп_ОбщегоНазначенияПовтИсп.ПолучитьЗначениеКонстанты("пбп_ИспользоватьПользовательскиеФункции") Тогда
Copy link
Member

Choose a reason for hiding this comment

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

Тут нужно переделать, логика такая что мы вызываем функцию которая в случае существования БСП вызывает метод БСП, а в случае отсутствия БСП вызывает метод библиотеки. Посмотри тут

@ivanmolodec
Copy link
Member

Ещё нужно повысить версию конфигурации до 1.0.2.3 и в общем модуле

…добавлены в составы подсистем. Добавлены настройки для подключения прямого подключения к базе данных
Copy link

Passed

Analysis Details

9 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 9 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

Passed

Analysis Details

8 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 8 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

Passed

Analysis Details

6 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 6 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

1 similar comment
Copy link

Passed

Analysis Details

6 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 6 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

@ivanmolodec ivanmolodec merged commit 22a7181 into develop Sep 13, 2024
4 checks passed
@ivanmolodec ivanmolodec deleted the architectural-refactoring-to-integrations-management-subsystem branch September 13, 2024 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Улучшение существующей функциональности
Projects
None yet
2 participants