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

Parameters and variables in custom func #67

Merged
merged 5 commits into from
May 7, 2024
Merged

Conversation

denisushakov
Copy link
Contributor

@denisushakov denisushakov commented May 6, 2024

Changed substitution of parameters and variables in the code console. Changed forms.

Summary by CodeRabbit

  • New Features

    • Enhanced user interface with a new command bar location and additional buttons for better navigation and accessibility.
    • Updated event handling for improved user interaction and response.
    • Improved form functionalities with new opening modes and streamlined command sets for a more intuitive user experience.
  • Bug Fixes

    • Adjusted parameter handling and function behaviors to fix issues related to value processing and form operations.
  • Refactor

    • Optimized code for handling tree structures, including new procedures for expanding and collapsing nodes.
  • Documentation

    • Updated metadata descriptions and attributes for clearer understanding and better integration.
  • Chores

    • General improvements in module functionalities to enhance performance and reliability.

@denisushakov denisushakov added the enhancement Улучшение существующей функциональности label May 6, 2024
@denisushakov denisushakov self-assigned this May 6, 2024
Copy link

coderabbitai bot commented May 6, 2024

Walkthrough

The recent changes across various files aim to refine user interactions, optimize logic, and introduce new features within the 1C:Enterprise platform. These updates encompass UI enhancements, event handling improvements, command structure modifications, and parameter management enhancements to streamline operations and enhance user experience.

Changes

File Path Change Summary
.../__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form.xml
.../__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl
UI enhancements, new command locations, buttons, event handling updates, and logic improvements.
.../CommonForms/__ФормаВыбораПоля/Ext/Form.xml UI redesign, command set updates, and attribute modifications.
.../CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl Function updates for parameter handling and string manipulation.
.../__СтандартныеПодсистемыКлиент.xml
.../__СтандартныеПодсистемыСлужебныйКлиент.xml
.../__СтандартныеПодсистемыКлиент/Ext/Module.bsl
.../__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl
Metadata and library enhancements for subsystem management and module expansion.
Configuration.xml Addition of new common modules for client and service client subsystems.

Poem

"In the code's dance, changes play, 🐇💻
Buttons bloom, forms find their way.
Logic twists, UIs gleam,
A tech symphony, like a dream.
With each tweak, a tale we sow,
In bits and bytes, our system's glow."


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.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration 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.

This comment has been minimized.

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: 10

Out of diff range and nitpick comments (1)
src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl (1)

2433-2433: Add a description for the parameter "Префикс".

Please add a description for the parameter "Префикс" in the function signature to improve code readability and maintainability.

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 45faad3 and 22f1ce2.
Files selected for processing (11)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form.xml (4 hunks)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form/Module.bsl (4 hunks)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (3 hunks)
  • src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form.xml (4 hunks)
  • src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl (5 hunks)
  • src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl (6 hunks)
  • src/cf/CommonModules/__СтандартныеПодсистемыКлиент.xml (1 hunks)
  • src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент.xml (1 hunks)
  • src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl (1 hunks)
  • src/cf/Configuration.xml (1 hunks)
Files skipped from review due to trivial changes (2)
  • src/cf/CommonModules/__СтандартныеПодсистемыКлиент.xml
  • src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент.xml
Additional Context Used
GitHub Check Runs (1)
1C: Project SubSystems Library Sonarqube Results success (20)

src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl: [notice] 606-606: src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl#L606
Справа от ',' не хватает пробела


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


src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl: [notice] 256-256: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl#L256
Справа от ',' не хватает пробела


src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl: [notice] 256-256: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl#L256
Справа от ',' не хватает пробела


src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl: [notice] 256-256: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl#L256
Справа от ',' не хватает пробела


src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl: [notice] 256-256: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl#L256
Справа от ',' не хватает пробела


src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl: [notice] 261-261: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl#L261
Справа от ',' не хватает пробела


src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl: [notice] 261-261: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl#L261
Справа от ',' не хватает пробела


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2469-2469: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2469
Создайте константу с понятным названием, присвойте ей значение "127" и используйте эту константу вместо магического числа.


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2470-2470: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2470
Создайте константу с понятным названием, присвойте ей значение "46" и используйте эту константу вместо магического числа.


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2470-2470: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2470
Создайте константу с понятным названием, присвойте ей значение "34" и используйте эту константу вместо магического числа.


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2447-2447: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2447
Пропущена точка с запятой в конце выражения


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2433-2433: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2433
Необходимо добавить описание параметра "Префикс"


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2467-2467: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2467
Выделите условие оператора Если в отдельный метод или переменную


src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl: [notice] 21-21: src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl#L21
Область "ПрограммныйИнтерфейс" не содержит функций или процедур


src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl: [warning] 32-32: src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl#L32
Длина строки 127 превышает максимально допустимую 120


src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl: [warning] 42-42: src/cf/CommonModules/__СтандартныеПодсистемыКлиент/Ext/Module.bsl#L42
Длина строки 128 превышает максимально допустимую 120


src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl: [warning] 30-30: src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl#L30
Необходимо добавить описание всех параметров метода


src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl: [notice] 21-21: src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl#L21
Область "ПрограммныйИнтерфейс" не содержит функций или процедур


src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl: [warning] 30-30: src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl#L30
Длина строки 128 превышает максимально допустимую 120

Additional comments not posted (14)
src/cf/CommonModules/__СтандартныеПодсистемыСлужебныйКлиент/Ext/Module.bsl (1)

43-45: The function ПолучитьМодуль is implemented correctly and adheres to best practices.

src/cf/Catalogs/__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form/Module.bsl (3)

28-29: The change in parameter handling from "Переменные" to "ЗначенияЗаполнения" is implemented correctly and aligns with the PR objectives.


91-91: The modification in the КомандаОК procedure to use a new notification structure aligns with the PR objectives and is implemented correctly.


117-120: The handling of the АдресЗначений parameter in the ОткрытьФормуВыбораПоля procedure is correctly implemented and enhances the functionality as per the PR objectives.

src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl (1)

78-91: The procedures РазвернутьСтроки and СвернутьСтроки are implemented correctly and enhance user interaction as per the PR objectives.

src/cf/Catalogs/__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form.xml (3)

17-49: The addition of new command bar locations and buttons in the form configuration is implemented correctly and enhances the user interface as per the PR objectives.


230-244: The addition of the АдресЗначений attribute is implemented correctly and aligns with the PR objectives to handle new parameters.


52-52: The addition of new events in the form configuration is implemented correctly and enhances event handling as per the PR objectives.

src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form.xml (5)

13-13: Locking the owner window during form operation enhances user experience by preventing interaction with the underlying window until the form is closed.


17-27: The exclusion of several commands like 'Abort', 'Cancel', 'OK', etc., simplifies the command set, potentially improving user focus on relevant actions. Ensure that this aligns with user requirements and does not remove necessary functionality.

Verification successful

The exclusion of commands like 'Abort', 'Cancel', and 'OK' from the XML configuration in src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form.xml is also reflected in another part of the codebase, specifically in src/cf/Catalogs/__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form.xml. This suggests a consistent approach across different forms regarding the exclusion of these commands.

  • src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form.xml
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/УсловныйОператор/Ext/Form.xml
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the removal of commands does not affect required functionalities.

# Test: Check for any dependencies on the removed commands in the codebase.
rg --type xml --type bsl '<ExcludedCommand>(Abort|Cancel|OK)</ExcludedCommand>'

Length of output: 109



Script:

#!/bin/bash
# Description: Re-verify that the removal of commands does not affect required functionalities.

# Test: Check for any dependencies on the removed commands in the entire codebase.
rg '<ExcludedCommand>(Abort|Cancel|OK)</ExcludedCommand>'

Length of output: 697


29-75: The addition of new buttons and a button group for expanding and collapsing tree nodes enhances user interaction capabilities. Ensure tooltips and extended tooltips provide adequate guidance to users.


284-326: Addition of new attributes like 'ОписаниеСправочники', 'ОписаниеДокументы', and 'ИмяПриемника' with appropriate localizations and data types. This change likely supports new functionalities or data handling features. Confirm that these attributes are utilized correctly in the backend logic.

Verification successful

The search results confirm that the new attributes 'ОписаниеСправочники', 'ОписаниеДокументы', and 'ИмяПриемника' are indeed utilized in the backend logic. The attributes are referenced in various BSL (Business Scripting Language) files, indicating their integration into the system's functionality. This includes parameter insertion, conditional checks, and attribute handling in forms and modules.

  • The attribute 'ИмяПриемника' is used in procedures and parameter settings in Module.bsl files.
  • 'ОписаниеСправочники' and 'ОписаниеДокументы' are used to handle catalog and document types, and their usage is checked in conditional statements.

This confirms that the addition of these attributes supports new functionalities or data handling features as intended.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of new attributes in backend logic.

# Test: Search for the usage of new attributes in the backend code.
rg --type bsl 'ОписаниеСправочники|ОписаниеДокументы|ИмяПриемника'

Length of output: 96



Script:

#!/bin/bash
# Description: Re-verify the usage of new attributes in backend logic without specifying file type.

# Test: Search for the usage of new attributes in the backend code without file type restriction.
rg 'ОписаниеСправочники|ОписаниеДокументы|ИмяПриемника'

Length of output: 1673


351-387: The commands 'СвернутьСтроки' and 'РазвернутьСтроки' have been added with detailed tooltips and actions. This is a positive change for user interaction, allowing more control over the UI elements. Ensure the actions linked to these commands are implemented correctly on the server side.

Verification successful

The server-side implementations for the actions 'СвернутьСтроки' and 'РазвернутьСтроки' have been successfully located in the Module.bsl file under the src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/ directory. Both procedures are defined, which aligns with the expectations set in the review comment.

  • File: src/cf/CommonForms/__ФормаВыбораПоля/Ext/Form/Module.bsl
    • Procedures: Процедура РазвернутьСтроки(Команда) and Процедура СвернутьСтроки(Команда)
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the server-side implementation of the actions for the new commands.

# Test: Search for the implementation of 'СвернутьСтроки' and 'РазвернутьСтроки' actions.
rg --type bsl 'СвернутьСтроки|РазвернутьСтроки'

Length of output: 77



Script:

#!/bin/bash
# Description: Verify the server-side implementation of the actions for the new commands.

# Test: Search for the implementation of 'СвернутьСтроки' and 'РазвернутьСтроки' actions.
# Since the previous attempt failed due to an unrecognized file type, let's try a more general search.
rg 'СвернутьСтроки|РазвернутьСтроки'

Length of output: 1244

src/cf/Configuration.xml (1)

314-316: The addition of new common modules __СтандартныеПодсистемыКлиент and __СтандартныеПодсистемыСлужебныйКлиент aligns with the PR's objective to enhance modular architecture. Ensure these modules are properly integrated and utilized within the application.

Verification successful

The search results confirm that the new common modules __СтандартныеПодсистемыКлиент and __СтандартныеПодсистемыСлужебныйКлиент are indeed referenced and utilized within the application's codebase. These modules are not only listed in the Configuration.xml but also appear in specific XML and BSL files, indicating their integration into the system's functionality.

  • The module __СтандартныеПодсистемыКлиент is referenced in its own XML definition and indirectly in a BSL script under __СтандартныеПодсистемыСлужебныйКлиент.
  • The module __СтандартныеПодсистемыСлужебныйКлиент is used in a BSL script associated with a common form, which suggests that it plays a role in the application's user interface logic.

This evidence supports the conclusion that these modules are properly integrated and utilized within the application, aligning with the PR's objective to enhance the modular architecture.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the integration and utilization of new common modules.

# Test: Search for references to the new common modules in the application code.
rg --type xml --type bsl '__СтандартныеПодсистемыКлиент|__СтандартныеПодсистемыСлужебныйКлиент'

Length of output: 125



Script:

#!/bin/bash
# Description: Re-verify the integration and utilization of new common modules by searching all files.

# Test: Search for references to the new common modules in all files.
rg '__СтандартныеПодсистемыКлиент|__СтандартныеПодсистемыСлужебныйКлиент'

Length of output: 937

@@ -151,6 +151,16 @@
Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.ФормаМассива" Тогда
текДанные = Элементы.ПараметрыФункции.ТекущиеДанные;
текДанные.АдресЗначения = ВыбранноеЗначение.Адрес;
ИначеЕсли ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Copy link

Choose a reason for hiding this comment

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

Consider refactoring to avoid duplicate code blocks in conditional structures.

- Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
+ Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") И (ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор") Тогда

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.

Suggested change
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") И (ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор") Тогда

Для Каждого ТекСтрока Из Объект.Переменные Цикл
МассивИменПеременных.Добавить(ТекСтрока.Имя);
КонецЦикла;
ЗначенияЗаполнения.Вставить("Переменные",МассивИменПеременных);
Copy link

Choose a reason for hiding this comment

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

Add a space after the comma for better readability.

- МассивИменПеременных.Добавить(ТекСтрока.Имя);
+ МассивИменПеременных.Добавить(ТекСтрока.Имя); 

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.

Suggested change
ЗначенияЗаполнения.Вставить("Переменные",МассивИменПеременных);
ЗначенияЗаполнения.Вставить("Переменные", МассивИменПеременных);

Если ЭтоДопустимыйСимвол(КодДо) И ЭтоДопустимыйСимвол(КодПосле) Тогда
Текст = СтрЗаменить(Текст, СимволДо + Ключ + СимволПосле, СимволДо + Префикс + Ключ + СимволПосле);
ДлинаПрефикса = СтрДлина(Префикс)
Copy link

Choose a reason for hiding this comment

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

Missing semicolon at the end of the expression.

- ДлинаПрефикса = СтрДлина(Префикс)
+ ДлинаПрефикса = СтрДлина(Префикс);

Please add a semicolon at the end of the line to correct the syntax error.


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.

Suggested change
ДлинаПрефикса = СтрДлина(Префикс)
ДлинаПрефикса = СтрДлина(Префикс);

#Область ПереадресацияМетодов

// См. __СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева.
Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
Copy link

Choose a reason for hiding this comment

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

Add descriptions for all parameters in the РазвернутьУзлыДерева procedure to enhance code readability and maintainability.


Consider breaking the long line into multiple shorter lines to adhere to the maximum line length standard of 120 characters, improving code readability.

// РазвернутьСПодчиненными - Булево - если Истина, то следует раскрыть также и все подчиненные узлы.
// По умолчанию Ложь.
//
Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
Copy link

Choose a reason for hiding this comment

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

Consider breaking the long line into multiple shorter lines to adhere to the maximum line length standard of 120 characters, improving code readability.

Comment on lines +256 to +261
ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ,,,,, БиблиотекаКартинок.__Реквизиты);

Коллекция = ЭлементВерх.ПолучитьЭлементы();

Для Каждого ТекущаяПеременная Из Пара.Значение Цикл
ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная,,, Истина, Истина);
Copy link

Choose a reason for hiding this comment

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

Add spaces after commas in the parameters of the ЗаполнитьЭлементДерева calls to improve readability and maintain coding standards.

- ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ,,,,, БиблиотекаКартинок.__Реквизиты);
- ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная,,, Истина, Истина);
+ ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ, , , , , , БиблиотекаКартинок.__Реквизиты);
+ ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная, , , Истина, Истина);

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.

Suggested change
ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ,,,,, БиблиотекаКартинок.__Реквизиты);
Коллекция = ЭлементВерх.ПолучитьЭлементы();
Для Каждого ТекущаяПеременная Из Пара.Значение Цикл
ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная,,, Истина, Истина);
ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ, , , , , , БиблиотекаКартинок.__Реквизиты);
Коллекция = ЭлементВерх.ПолучитьЭлементы();
Для Каждого ТекущаяПеременная Из Пара.Значение Цикл
ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная, , , Истина, Истина);

This comment has been minimized.

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: 3

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 22f1ce2 and 2eb33ec.
Files selected for processing (2)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (3 hunks)
  • src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl (6 hunks)
Additional Context Used
GitHub Check Runs (1)
1C: Project SubSystems Library Sonarqube Results success (17)

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


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2471-2471: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2471
Создайте константу с понятным названием, присвойте ей значение "46" и используйте эту константу вместо магического числа.


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2468-2468: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2468
Выделите условие оператора Если в отдельный метод или переменную


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2471-2471: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2471
Создайте константу с понятным названием, присвойте ей значение "34" и используйте эту константу вместо магического числа.


src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2470-2470: src/cf/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2470
Создайте константу с понятным названием, присвойте ей значение "127" и используйте эту константу вместо магического числа.

Additional comments not posted (1)
src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)

155-163: Consider refactoring to avoid duplicate code blocks in conditional structures.

- Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
+ Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") И (ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор") Тогда


Если КодСимвола >= 48 И КодСимвола <= 57 // Цифры
Или КодСимвола >= 97 И КодСимвола <= 122 // (en) буквы
Или КодСимвола > 127 Тогда // региональные коды
Или КодСимвола > 127 // региональные коды
Copy link

Choose a reason for hiding this comment

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

Replace magic number with a named constant.

+ const REGIONAL_CODE_THRESHOLD = 127;
- Или КодСимвола > 127 // региональные коды
+ Или КодСимвола > REGIONAL_CODE_THRESHOLD // regional codes

Consider replacing the magic number 127 with a named constant to enhance code readability and maintainability.


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.

Suggested change
Или КодСимвола > 127 // региональные коды
const REGIONAL_CODE_THRESHOLD = 127;
Или КодСимвола > REGIONAL_CODE_THRESHOLD // regional codes


Если КодСимвола >= 48 И КодСимвола <= 57 // Цифры
Или КодСимвола >= 97 И КодСимвола <= 122 // (en) буквы
Или КодСимвола > 127 Тогда // региональные коды
Или КодСимвола > 127 // региональные коды
Или КодСимвола = 46 Или КодСимвола = 34 Тогда // точка(.), кавычка(")
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.

+ const DOT_CODE = 46;
+ const QUOTE_CODE = 34;
- Или КодСимвола = 46 Или КодСимвола = 34 Тогда // точка(.), кавычка(")
+ Или КодСимвола = DOT_CODE Или КодСимвола = QUOTE_CODE Тогда // dot (.), quote (")

Consider replacing the magic numbers 46 and 34 with named constants to enhance code readability and maintainability.


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.

Suggested change
Или КодСимвола = 46 Или КодСимвола = 34 Тогда // точка(.), кавычка(")
const DOT_CODE = 46;
const QUOTE_CODE = 34;
Или КодСимвола = DOT_CODE Или КодСимвола = QUOTE_CODE Тогда // dot (.), quote (")

@@ -2462,9 +2465,10 @@
//
Функция ЭтоДопустимыйСимвол(КодСимвола)

Если КодСимвола >= 48 И КодСимвола <= 57 // Цифры
Copy link

Choose a reason for hiding this comment

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

Extract condition into a separate method or variable.

Consider extracting the condition in the If statement into a separate method or variable for clarity and to reduce complexity.

@ivanmolodec
Copy link
Member

При выборе в параметрах типа ТаблицаЗначений выпадает ошибка:

Тип не определен (ТаблицаЗначений)
{Справочник.__ПользовательскиеФункции.Форма.ФормаЭлемента.Форма(257)}:ПустаяКоллекция = Новый(Тип(ВыбранныйЭлемент.Значение));

This comment has been minimized.

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

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 2eb33ec and fc0f070.
Files selected for processing (5)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаМассива/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form.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/Module.bsl (5 hunks)
Files skipped from review due to trivial changes (1)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаТаблицыЗначений/Ext/Form.xml
Additional Context Used
GitHub Check Runs (1)
1C: Project SubSystems Library Sonarqube Results success (17)

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

Additional comments not posted (4)
src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаТаблицыЗначений/Ext/Form/Module.bsl (1)

28-28: Proper handling of 'ТаблицаЗначений' type.

This change aligns with the PR's objective to refine the handling of specific types like 'ТаблицаЗначений', ensuring that the type is correctly identified and processed.

src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаМассива/Ext/Form.xml (1)

19-29: Correct configuration of the 'Close' button.

The button is appropriately configured with the standard close command and labeled 'Отмена', which correctly reflects its functionality.

src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаСтруктуры/Ext/Form.xml (1)

19-29: Correct configuration of the 'Close' button.

The button is appropriately configured with the standard close command and labeled 'Отмена', which correctly reflects its functionality.

src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)

154-154: Ensure proper initialization during form opening.

@ivanmolodec
Copy link
Member

Есть ещё один нюанс. На форме есть реквизит "Контекст" и при его смене заполняются параметры (это нужно для того чтобы можно было добавлять предопределенные контексты с набором заранее прописанных параметров) и при этом не присваивается гуид ну и дальше всё работать начинает некорректно. Было бы неплохо доработать чтобы при смене контекста параметрам тоже проставлялся гуид ну и чтобы можно было тип параметров прописать предустанавливаемых тоже

This comment has been minimized.

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: 4

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between fc0f070 and 42a466a.
Files selected for processing (2)
  • src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl (3 hunks)
  • src/cf/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (9 hunks)
Additional Context Used
GitHub Check Runs (1)
1C: Project SubSystems Library Sonarqube Results success (20)

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


src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl: [warning] 404-404: src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl#L404
Необходимо добавить описание параметра "Объект"


src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl: [warning] 404-404: src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl#L404
Необходимо добавить описание параметра "ИмяПараметра"


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

Additional comments not posted (2)
src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl (2)

58-59: Modification to copy the list of types appears correct and should function as intended.


386-387: Clearing and conditional addition of parameters are implemented correctly.

Comment on lines +155 to +163
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;
ИначеЕсли ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;
Copy link

Choose a reason for hiding this comment

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

Refactor to avoid duplicate code blocks in conditional structures.

- Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
+ Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") И (ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор") Тогда

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.

Suggested change
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;
ИначеЕсли ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") И (ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;

//
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра)
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)
Copy link

Choose a reason for hiding this comment

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

Add descriptions for the parameters Объект and ИмяПараметра to improve code readability and maintainability.

- Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)
+ // Объект - ДанныеФормыСтруктура, СправочникОбъект.__ПользовательскиеФункции - the object to which the parameter is added.
+ // ИмяПараметра - Строка - the name of the parameter to add.
+ Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)

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.

Suggested change
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)
// Объект - ДанныеФормыСтруктура, СправочникОбъект.__ПользовательскиеФункции - the object to which the parameter is added.
// ИмяПараметра - Строка - the name of the parameter to add.
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)

КонецЕсли;

СписокДобавленныхТипов = Новый СписокЗначений;
Справочники.__ПользовательскиеФункции.СформироватьСписокТипов(СписокДобавленныхТипов);
Copy link

Choose a reason for hiding this comment

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

Remove redundant module name in the call to СформироватьСписокТипов, as it's unnecessary and can lead to confusion.

- Справочники.__ПользовательскиеФункции.СформироватьСписокТипов(СписокДобавленныхТипов);
+ СформироватьСписокТипов(СписокДобавленныхТипов);

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.

Suggested change
Справочники.__ПользовательскиеФункции.СформироватьСписокТипов(СписокДобавленныхТипов);
СформироватьСписокТипов(СписокДобавленныхТипов);

Comment on lines +2073 to +2081
&НаСервереБезКонтекста
Функция СоздатьКоллекциюИПоместитьВХранилище(Знач Значение)

ПустаяКоллекция = Новый(Тип(Значение));
АдресЗначения = ПоместитьВоВременноеХранилище(ПустаяКоллекция, Новый УникальныйИдентификатор);

Возврат АдресЗначения;

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

Choose a reason for hiding this comment

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

Consider using a factory pattern to handle object creation based on type.

- ПустаяКоллекция = Новый(Тип(Значение));
+ ПустаяКоллекция = СоздатьКоллекциюПоТипу(Тип(Значение));

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.

Suggested change
&НаСервереБезКонтекста
Функция СоздатьКоллекциюИПоместитьВХранилище(Знач Значение)
ПустаяКоллекция = Новый(Тип(Значение));
АдресЗначения = ПоместитьВоВременноеХранилище(ПустаяКоллекция, Новый УникальныйИдентификатор);
Возврат АдресЗначения;
КонецФункции
&НаСервереБезКонтекста
Функция СоздатьКоллекциюИПоместитьВХранилище(Знач Значение)
ПустаяКоллекция = СоздатьКоллекциюПоТипу(Тип(Значение));
АдресЗначения = ПоместитьВоВременноеХранилище(ПустаяКоллекция, Новый УникальныйИдентификатор);
Возврат АдресЗначения;
КонецФункции

Copy link

Passed

Analysis Details

17 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 17 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

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 42a466a and bfd46a4.
Files selected for processing (1)
  • src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl (3 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/cf/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl

@ivanmolodec ivanmolodec merged commit f17690e into develop May 7, 2024
4 checks passed
@ivanmolodec ivanmolodec deleted the ParamVarCustomFun branch May 7, 2024 14:12
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